tencent cloud

日志服务

动态与公告
产品动态
公告
新手指引
产品简介
产品概述
产品优势
地域和访问域名
规格与限制
基本概念
购买指南
计费概述
产品定价
按量计费(后付费)
欠费说明
清理日志服务资源
成本优化
常见问题
快速入门
一分钟入门指南
入门指南
使用 Demo 日志快速体验 CLS
操作指南
资源管理
权限管理
日志采集
指标采集
日志存储
指标存储
检索分析(日志主题)
检索分析(指标主题)
仪表盘
数据处理
投递与消费
监控告警
云产品中心
DataSight 独立控制台
历史文档
实践教程
日志采集
检索分析
仪表盘
监控告警
投递和消费
成本优化
开发者指南
通过 iframe 内嵌 CLS(旧方案)
通过 Grafana 使用 CLS
API 文档
History
Introduction
API Category
Making API Requests
Topic Management APIs
Log Set Management APIs
Index APIs
Topic Partition APIs
Machine Group APIs
Collection Configuration APIs
Log APIs
Metric APIs
Alarm Policy APIs
Data Processing APIs
Kafka Protocol Consumption APIs
CKafka Shipping Task APIs
Kafka Data Subscription APIs
COS Shipping Task APIs
SCF Delivery Task APIs
Scheduled SQL Analysis APIs
COS Data Import Task APIs
Data Types
Error Codes
常见问题
健康监测问题解释
采集相关
检索分析相关
其他问题
服务等级协议
CLS 政策
隐私协议
数据处理和安全协议
联系我们
词汇表

创建加工任务

PDF
聚焦模式
字号
最后更新时间: 2026-03-30 18:16:21
本文将为您介绍如何创建加工任务。

前提条件

已开通日志服务,创建源日志主题、并成功采集到日志数据。
创建目标日志主题。建议目标日志主题为空主题,便于加工好的数据写入。
确保当前操作账号拥有配置数据加工任务的权限,请参见 CLS 访问策略模板

操作步骤

1. 登录 日志服务控制台,在左侧导航栏中选择数据加工
2. 单击新建。配置基本信息:
前置数据加工
非前置数据加工
前置数据加工的价值:
在前置加工中做日志过滤,可有效降低日志索引流量、索引存储量、日志存储量。
前置数据加工的使用场景:
日志采集至 CLS,需要先进行数据加工(过滤、结构化),再写入日志主题。例如:日志主题名为"test",使用 LogListener 采集了数据,现需将 loglevel="Error"的日志写入"test",其余的日志不上报,那么可以创建一个前置数据加工任务"my_transform"来完成。
前置数据加工
前置数据加工


说明:
每个日志主题仅能配置一个前置加工任务。
前置加工暂不支持分发日志到多个固定日志主题,或动态日志主题。因此您无法在前置加工任务中使用 log_output 和 log_auto_output 函数。
若您新增/修改了采集配置,会导致采集的数据发生变化,因此需要同时调整前置加工的加工语句。
前置加工任务和非前置的加工任务不支持互转。

配置项:

配置项
说明
任务名称
数据加工任务的名称,示例:my_transform。
启用状态
任务启动/停止,默认启动。
前置数据加工
打开开关。
前置数据加工的功能入口:
入口1:在新建数据加工任务时,打开前置数据加工的开关。
入口2:您也可以在 采集配置 页面底部,单击数据加工,进入前置数据加工编辑页面。
日志主题
指定前置加工结果写入的日志主题。
关联外部数据
添加外部数据源,可用于维度表 join 场景。当前仅支持腾讯云 MySQL,请参见 res_rds_mysql 函数。
地域:云 MySQL 所在地域
云数据库 MySQL实例:请在下拉菜单中勾选
用户名/密码:输入您的数据库用户名/密码。数据加工仅需查询权限,无需编辑及删除权限,配置方式请参见 云数据库 MySQL 修改账号权限。请妥善保管账号信息,不要泄露。
别名:您的 MySQL 的别名,您将在 res_rds_mysql 中使用该别名作为参数。
数据加工服务日志
数据加工任务运行日志,保存在 cls_service_log 服务日志主题(免费),数据加工任务监控图表中的告警功能依赖该日志主题,默认开启。
上传加工失败日志
开启后,加工失败的日志,将写入目标主题;关闭该选项后,会丢弃加工失败的日志。
加工失败日志字段名
如您选择将加工失败的日志写入目标日志主题,失败日志将保存在该字段中,字段名默认为 ETLParseFailure。
高级配置
添加环境变量:添加数据加工任务运行时的环境变量。
例如添加一对变量,名称 ENV_MYSQL_INTERVAL,值 300,然后您可在 res_rds_mysql 函数中,使用 refresh_interval=ENV_MYSQL_INTERVAL,任务将解析为 refresh_interval=300。
非前置数据加工主要用于日志分发的场景:
分发至固定日志主题的使用场景。
用于分发的目标日志主题确定的场景。示例:将源日志主题中的 loglevel= warning 日志输出到名称为 WARNING 的日志主题,将 loglevel=error 日志输出到名称为 ERROR 的日志主题,将 loglevel=info 的日志输出到名称为 INFO 的日志主题。请参见 log_output 函数。

分发至动态日志主题的使用场景。
用于分发目标日志主题较多或者无法确定的场景。示例:您的日志中有一个名为"AppName "的 Key (字段), 这个字段由于业务的原因,会随着时间不断的新增 Value,而您需要按照"AppName"来分发日志,适合使用此选项。请参见 log_auto_output 函数。

配置项:
分发至固定日志主题
分发至动态日志主题
配置项
说明
任务名称
数据加工任务的名称,例如 my_transform。
启用状态
任务启动/停止,默认启动。
前置数据加工
关闭开关。
源日志主题
数据加工任务的数据源。
关联外部数据
添加外部数据源,可用于维度表 join 场景,当前仅支持腾讯云 MySQL,请参见 res_rds_mysql 函数。
地域:云 MySQL 所在地域。
云数据库 MySQL 实例:请在下拉菜单中勾选。
用户名/密码:输入您的数据库用户名/密码。数据加工仅需查询权限,无需编辑及删除权限,配置方式请参见 云数据库 MySQL 修改账号权限。请妥善保管账号信息,不要泄露。
别名:您的 MySQL 的别名,您将在 res_rds_mysql 中使用该别名作为参数。
加工时间范围
指定数据加工处理的日志范围。
注意:
仅处理日志主题生命周期内的数据。
目标日志主题
选择固定日志主题
日志主题:数据加工结果的输出目标,可配置为1个或多个。
目标主题归属: 可选择当前账号/其他主账号的日志主题。
当前账号
其他主账号
加工结果写入当前账号的日志主题。

加工结果写入其他主账号的日志主题
。例如 A 账号的源日志主题,经过加工之后,写入 B 账号的日志主题,需要 B 账号在 CAM(访问管理)侧配置访问 角色,配置完成之后,由 A 账号将角色 ARN 和外部 ID 填写到 CLS 控制台,方将加工结果写入 B 账号的日志主题。配置角色的步骤如下:
1. 新建角色。账号 B 登录 CAM 角色管理页面
1.1 新建跨账号访问策略,策略名称例如:cross_account,策略语法参考如下:
说明:
示例中的授权按照最小权限的原则,resource 配置为仅可以将加工结果写入 B 账号(100012345678) 在广州地域的日志主题(主题 ID 为 ab3456-123a-56bc-d789-abc654321),请您按照实际情况进行授权。
{
"statement": [
{
"action": [
"cam:GetRole",
"cam:GetPolicy",
"cam:ListAttachedRolePolicies"
],
"effect": "allow",
"resource": [
"*"
]
},
{
"action": [
"cls:UploadLog",
"cls:DescribeTopics"
],
"effect": "allow",
"resource": [
"qcs::cls:ap-guangzhou:uin/100012345678:topic/ab3456-123a-56bc-d789-abc654321"
]
],
"version": "2.0"
}
1.2 新建角色,选择腾讯云账户角色载体,云账号类型选择其他主账号,然后输入 A 账号的 ID,例如100012345678,勾选开启校验并配置外部 ID,例如:Hello123
1.3 配置角色策略,配置角色的访问策略,选择第一步配置好的访问策略cross_account(示例)。
1.4 保存该角色,例如:A_ds-cross-account_B
2. 为角色配置载体。在 CAM 角色列表中找到 A_ds-cross-account_B(示例),单击该角色,选中下方的角色载体 > 管理载体 > 添加产品服务 > 选中日志服务,然后单击更新
可以看到当前角色的载体是两个:一个是 A 账号,另一个是 cls.cloud.tencent.com(CLS 日志服务)。
3. A 账号登录 CLS,填入角色 ARN 外部 ID
该两项信息需 B 账号来提供
B 账号在 CAM 角色列表中找到角色 A_ds-cross-account_B(示例),单击可查看该角色的 RoleArn,例如 qcs::cam::uin/10001234567:roleName/A_ds-cross-account_B。
角色载体中可看到外部 ID,例如 Hello123。
注意:
填写角色 ARN、外部 ID 时,注意不要输入多余的空格,会导致权限校验失败。
跨账号写入目标日志主题,会在 B 账号下产生日志写流量费用。数据加工的费用计入 A 账号。
目标名称:例如在源日志主题中,将 loglevel= warning 日志输出到日志主题 A,将 loglevel=error 日志输出到日志主题 B,将 loglevel=info 的日志输出到日志主题 C。您可将日志主题 A、B、C 的目标名称分别配置为 warning、error、info。
数据加工服务日志
数据加工任务运行日志,保存在 cls_service_log 服务日志主题(免费),数据加工任务监控图表中的告警功能依赖该日志主题, 默认开启。
上传加工失败日志
开启后,加工失败的日志,将写入目标主题,关闭该选项后,会丢弃加工失败的日志。
加工失败日志字段名
如您选择将加工失败的日志写入目标日志主题,失败日志将保存在该字段中,字段名默认为 ETLParseFailure。
高级配置
添加环境变量:添加数据加工任务运行时的环境变量。
例如添加一对变量,名称 ENV_MYSQL_INTERVAL,值 300,然后您可在 res_rds_mysql 函数中,使用 refresh_interval=ENV_MYSQL_INTERVAL,任务将解析为 refresh_interval=300。
配置项
说明
任务名称
数据加工任务的名称,例如 my_transform。
启用状态
任务启动/停止,默认启动。
前置数据加工
关闭开关。
源日志主题
数据加工任务的数据源。
关联外部数据
添加外部数据源,可用于维度表 join 场景。当前仅支持腾讯云 MySQL,请参见 res_rds_mysql 函数。
地域:云 MySQL 所在地域。
云数据库 MySQL 实例:请在下拉菜单中勾选。
用户名:输入您的数据库用户名。
密码:输入您的数据库密码。
别名:您的 MySQL 的别名,您将在 res_rds_mysql 中使用该别名作为参数。
加工时间范围
指定数据加工处理的日志范围。
注意:
仅处理日志主题生命周期内的数据。
目标日志主题
选择动态日志主题。无需配置目标日志主题,会按照指定的字段值,自动生成。
超限处理
当您的数据加工任务生成的主题个数超出了 产品规格,您可以选择:
创建兜底日志集、日志主题并将日志写入兜底主题(创建任务时创建)。
兜底日志集:auto_undertake_logset,单地域单账号下一个。
兜底日志主题:auto_undertake_topic_$(数据加工任务名称)。例如用户创建了两个数据加工任务 etl_A 和 etl_B,那么会产生两个兜底主题:auto_undertake_topic_etl_A、auto_undertake_topic_etl_B。
丢弃日志数据:不创建兜底主题,直接丢弃日志。
数据加工服务日志
数据加工任务运行日志,保存在 cls_service_log 服务日志主题(免费),数据加工任务监控图表中的告警功能依赖该日志主题,默认开启。
上传加工失败日志
开启后,加工失败的日志,将写入目标主题,关闭该选项后,会丢弃加工失败的日志。
加工失败日志字段名
如您选择将加工失败的日志写入目标日志主题,失败日志将保存在该字段中,字段名默认为 ETLParseFailure。
高级配置
添加环境变量:添加数据加工任务运行时的环境变量
例如添加一对变量,名称 ENV_MYSQL_INTERVAL,值 300,然后您可在 res_rds_mysql 函数中,使用 refresh_interval=ENV_MYSQL_INTERVAL,任务将解析为 refresh_interval=300。
3. 配置完成后单击下一步
4. 编辑/调试加工语句。在页面左下方,您可以看到原始日志测试数据两个标签,页面右下方是加工结果。支持通过对比原始/测试数据和加工结果,来调试您的加工语句。
原始日志:系统会自动加载原始日志数据,默认100条。
测试数据:系统随机加载的原始数据,可能无法满足您的调试需求,那么您可在原始数据页签,单击加入测试数据,将原始日志加入到测试数据中,然后在测试数据页签,修改这些数据,使其满足您的调试需求。
您可选择语句模式交互模式来编写加工语句。
语句模式
交互模式
方法一:使用 AI 生成加工语句(推荐)
单击原始日志右上角的 AI 图标,可将该原始日志加入到日志服务 AI 助手的对话框,然后用自然语言描述您的加工需求,例如“保留 Loglevel=Error 的日志”,“对该日志进行结构化”,然后单击发送图标,AI 助手会给出加工的语句,您可复制该语句到加工语句编辑框。如果 AI 给出的语句不准确,您可通过多轮对话来获取准确的加工语句,举例说明如下。
原始日志中的待加工的日志:
{
"content": "[2021-11-24 11:11:08,232][328495eb-b562-478f-9d5d-3bf7e][INFO] curl -H 'Host: ' http://abc.com:8080/pc/api -d {\\"version\\": \\"1.0\\",\\"user\\": \\"CGW\\",\\"password\\": \\"123\\"}"
}
和 AI 多轮对话:
对话轮次
用户问题
AI 助手答复
第一轮对话
结构化该日志
// 提取时间、请求ID、日志级别
ext_regex("content", regex="\\[(\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2},\\d{3})\\]\\[(\\w+-\\w+-\\w+-\\w+-\\w+)\\]\\[([A-Z]{4})\\]", output="time,requestid,level")
// 提取请求URL
ext_regex("content", regex="curl -H 'Host: ' (http://[^\\s]+)", output="url")
// 提取请求体中的JSON数据
ext_json("content", prefix="request_")
第二轮对话
content 不是标准 JSON,使用 ext_json 报错了,您把 content 中的 json 部分先提取出来,然后再从 json 中提取节点
// 第一步:提取JSON部分
ext_regex("content", regex=" -d (\\{.*\\})", output="json_content")

// 第二步:从提取的JSON中解析字段
ext_json("json_content")

// 第三步:删除中间字段
fields_drop("json_content")
加工结果:
{
"level":"INFO",
"password":"123",
"requestid":"328495eb-b562-478f-9d5d-3bf7e",
"time":"2021-11-24 11:11:08,232",
"user":"CGW",
"version":"1.0"
}
方法二:手动编写语句
您可在编辑加工语句页面切换至交互模式

添加可视化函数:单击

,选中您需要添加的可视化函数大类、可视化函数名称。
调试可视化函数:单击可视化函数右上角的▶️。
删除可视化函数:单击可视化函数右上角的 X。
编辑可视化函数:单击可视化函数右上角的

当前支持的可视化函数如下:
函数大类
可视化函数名称
使用场景
提取键值
JSON:从 JSON 节点中提取字段和字段值
分隔符:根据分隔符提取字段值,需要用户填字段名
正则:根据正则公式提取字段值,需要用户填写字段名
日志结构化
日志处理
过滤日志:配置过滤日志的条件(多个条件为 OR 的关系)。例如字段 A 存在,或者字段 B 不存在,则过滤掉该条日志。
分发日志:配置分发日志的条件
例如 status="error"且 message 中包含 "404"的,分发至 A 主题
例如 status="running"且 message 中包含 "200"的,分发至 B 主题
保留日志:配置保留日志的条件
删除/保留日志
字段处理
删除字段
重命名字段
删除/重命名字段
详细函数使用案例,请参见 可视化函数
完成 DSL 加工语句的编写后,单击页面左上角执行预览或者断点调试(交互模式下为可视化函数右上角的▶️),运行和调试 DSL 函数。运行结果会在右侧展示,您可以根据运行结果,调整 DSL 语句,直到满足您的需求。
注意:
语句模式:支持所有加工函数,推荐您使用 AI 编写加工语句。
交互模式:仅支持部分函数,请参见 可视化函数。目标日志主题配置为动态日志主题时,不支持交互模式。
5. 单击确定,提交数据加工任务。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈