本文将为您介绍如何创建加工任务。
前提条件
已开通日志服务,创建源日志主题、并成功采集到日志数据。
已 创建目标日志主题。建议目标日志主题为空主题,便于加工好的数据写入。
确保当前操作账号拥有配置数据加工任务的权限,请参见 CLS 访问策略模板。
注意:
数据加工只能处理实时日志流,不能处理历史日志。
操作步骤
1. 登录 日志服务控制台,在左侧导航栏中选择数据加工。
2. 单击新建。
3. 配置基本信息:
前置加工的使用场景:
日志采集至 CLS,先进行数据加工(过滤、结构化),再写入日志主题。
举例:日志主题名为"test",使用 LogListener 采集了数据,现需将 loglevel="Error"的日志写入"test",其余的日志不上报,那么可以创建一个前置数据加工任务"my_transform"来完成。


前置数据加工的价值:
在前置加工中做日志过滤,可有效降低日志写流量、索引流量、索引存储量、日志存储量;
在前置加工中做日志结构化,开启键值索引后,可使用 SQL 对日志进行分析、配置仪表盘和告警。
说明:
每个日志主题仅能配置一个前置加工任务。
前置加工暂不支持分发日志到多个固定日志主题,或动态日志主题。因此您无法在前置加工任务中使用 log_output 和 log_auto_output 函数。
若您新增/修改了采集配置,会导致采集的数据发生变化,因此需要同时调整前置加工的加工语句。
前置加工任务和非前置的加工任务不支持互转。
配置项:
配置项 | 说明 | |
任务名称 | 数据加工任务的名称,示例:my_transform。 | |
启用状态 | 任务启动/停止,默认启动。 | |
前置数据加工 | 打开开关。 前置数据加工的功能入口: 入口1:在新建数据加工任务时,打开前置数据加工的开关。 入口2:您也可以在 采集配置 页面底部,单击数据加工,进入前置数据加工编辑页面。 | |
日志主题 | 指定前置加工结果写入的日志主题。 | |
数据加工服务日志 | 数据加工任务运行日志,保存在 cls_service_log 服务日志主题(免费),数据加工任务监控图表中的告警功能依赖该日志主题, 默认开启。 | |
上传加工失败日志 | 开启后,加工失败的日志,将写入目标主题;关闭该选项后,会丢弃加工失败的日志。 | |
非前置数据加工主要用于日志分发的场景:
分发至固定日志主题的使用场景。
用于分发的目标日志主题确定的场景。示例:将源日志主题中的 loglevel= warning 日志输出到名称为 WARNING 的日志主题,将 loglevel=error 日志输出到名称为 ERROR 的日志主题,将 loglevel=info 的日志输出到名称为 INFO 的日志主题。请参见 log_output 函数。

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

配置项:
配置项 | 说明 |
任务名称 | 数据加工任务的名称,例如 my_transform。 |
启用状态 | 任务启动/停止,默认启动。 |
前置数据加工 | 关闭开关。 |
源日志主题 | 数据加工任务的数据源。 |
目标日志主题 | 选择固定日志主题: 日志主题:数据加工结果的输出目标,可配置为1个或多个。 目标名称:例如在源日志主题中,将 loglevel= warning 日志输出到日志主题 A,将 loglevel=error 日志输出到日志主题 B,将 loglevel=info 的日志输出到日志主题 C。您可将日志主题 A、B、C 的目标名称分别配置为 warning、error、info。 |
数据加工服务日志 | 数据加工任务运行日志,保存在 cls_service_log 服务日志主题(免费),数据加工任务监控图表中的告警功能依赖该日志主题, 默认开启。 |
上传加工失败日志 | 开启后,加工失败的日志,将写入目标主题,关闭该选项后,会丢弃加工失败的日志。 |
配置项 | 说明 |
任务名称 | 数据加工任务的名称,例如 my_transform。 |
启用状态 | 任务启动/停止,默认启动。 |
前置数据加工 | 关闭开关。 |
源日志主题 | 数据加工任务的数据源。 |
目标日志主题 | 选择动态日志主题。无需配置目标日志主题,会按照指定的字段值,自动生成。 |
超限处理 | 创建兜底日志集、日志主题并将日志写入兜底主题(创建任务时创建)。 兜底日志集:auto_undertake_logset,单地域单账号下一个。 兜底日志主题:auto_undertake_topic_$(数据加工任务名称)。例如用户创建了两个数据加工任务 etl_A 和 etl_B,那么会产生两个兜底主题:auto_undertake_topic_etl_A、auto_undertake_topic_etl_B。 丢弃日志数据:不创建兜底主题,直接丢弃日志。 |
数据加工服务日志 | 数据加工任务运行日志,保存在 cls_service_log 服务日志主题(免费),数据加工任务监控图表中的告警功能依赖该日志主题,默认开启。 |
上传加工失败日志 | 开启后,加工失败的日志,将写入目标主题,关闭该选项后,会丢弃加工失败的日志。 |
4. 配置完成后单击下一步。
5. 编辑加工语句。数据加工语句可使用语句模式和交互模式进行编辑。
交互模式下,仅支持部分函数,请参见 可视化函数。
6. 调试加工语句:您可以使用原始日志或测试数据对 DSL 语句进行调试。
原始日志:系统会自动加载原始日志数据,默认100条。
测试数据:系统随机加载的原始数据,可能无法满足您的调试需求,那么您可在原始数据页签,单击加入测试数据,将原始日志加入到测试数据中,然后在测试数据页签,修改这些数据,使其满足您的调试需求。

完成 DSL 加工语句的编写后,单击页面左上角执行预览或者断点调试(交互模式下为可视化函数右上角的▶️),运行和调试 DSL 函数。运行结果会在右侧展示,您可以根据运行结果,调整 DSL 语句,直到满足您的需求。
7. 单击确定,提交数据加工任务。