概述
数据加工提供对日志数据的过滤、清洗、脱敏、富化、分发等能力。从数据处理的角度而言,数据加工可以对标开源组件 Logstash,但数据加工的 input 和 output 均为 CLS 日志主题。
用户选择一个源日志主题,编写一段 DSL(Domain Specific Language)加工函数的语句,DSL 函数将针对一行一行的日志,进行加工,最后可以根据一定的条件,将满足条件的日志发送到指定的目标日志主题中。如果您的业务只使用处理后的日志,则推荐您将源日志主题的日志保存时间配置为1天,不开启索引,以此有效节约费用。
费用说明
数据加工会产生相关的费用,例如:您的日志主题在广州,原始数据是100GB,经过数据加工(假定您是过滤场景,过滤后有50GB 的数据写入目标主题,且目标主题没有开启索引),则您的相关费用是:
数据加工费:100GB × 0.026美元/GB =2.6美元
目标主题的写流量:50GB × 0.3(压缩率) × 0.032美元/GB =0.48美元
目标主题的存储费:50GB × 0.3(压缩率) × 0.0024美元/GB = 0.036美元
总计3.116美元。 国内大部分地域可参考这个计费,特殊地域参考 产品定价。 适用场景
对于大部分用户而言,数据加工的目标可能是下面的几种:
提取结构化的数据,方便后续检索分析,生成仪表盘等。
日志减肥瘦身,节约后续使用成本。丢弃不需要的日志数据,节约存储成本、流量成本。
敏感数据脱敏,例如:将用户的身份证、手机号码脱敏。
日志分类投递,例如:按照日志级别:ERROR、WARNING、INFO 将日志分类,然后分发到不同的日志主题。
常见的 DSL 函数
根据不同的数据加工场景,介绍一些常见的 DSL 加工函数,这些函数可以在新建数据加工任务 > 编辑加工语句页面的DSL 语句生成器中看到使用示例。用户可以直接复制示例,将示例中的参数修改为自己实际的参数,即可快速使用。
提取结构化数据:按照分隔符提取 ext_sep(),json 提取 ext_json,ext_json_jmes,正则提取 ext_regex()。
日志减肥瘦身:丢弃一行日志 log_drop,丢弃日志字段 fields_drop()。
敏感数据脱敏:regex_replace()。
日志分类:先使用条件判断语句 t_if_else(),t_switch(),然后分发日志 log_output()。
字段编辑:新增(重置)字段 fields_set(),重命名字段 fields_rename()。
判断日志中有某个字段或者某种数据:存在某个字段 has_field(),存在某个数据 regex_match()。
判断日志中数值的大小:大于 op_gt(),大于等于 op_ge(),等于 op_eq(),可能还会对其进行加减乘除,如 op_mul(),op_add()。
对日志中文字进行处理:大小写 str_uppercase(),文字替换 str_replace()。
对日志时间进行处理:转 UTC 时间戳,dt_to_timestamp()。
以上是一些常见的日志数据加工场景所用到的 DSL 函数。此外,我们还提供了其他 DSL 函数,均在 DSL 语句生成器中,方便用户查看。如有需要,将其复制到 DSL 函数编辑框中,修改参数,即可使用。
下面将为您详细介绍如何创建数据加工任务。
前提条件
已开通日志服务,创建源日志主题、并成功采集到日志数据。
已创建目标日志主题。建议目标日志主题为空主题,便于加工好的数据写入。
确保当前操作账号拥有配置数据加工任务的权限。
注意:
数据加工只能处理实时日志流,不能处理历史日志。
如果数据加工的控制台没有自动加载原始日志数据,那么可能是您的日志主题没有实时日志流。需要您手动添加 JSON 格式的自定义日志,来完成数据加工脚本的撰写。
操作步骤
2. 在左侧导航栏中,单击数据加工。
任务名称:请输入自定义的任务名称。
源日志主题:请选择源日志主题。
目标日志主题:请输入目标名称,选择日志主题。其中,目标名称可以理解为目标日志主题的别名,主要用作为编写 DSL 函数的入参。目标日志主题最多可以输入10个。
5. 单击下一步。
6. 在编辑加工语句页面,进行如下操作:
测试 DSL 函数的数据有两种,第一种是原始日志数据, 第二种是自定义数据。 系统会自动加载原始日志数据,默认100条,如果您觉得原始数据不能满足测试 DSL 函数的需求,可以直接在自定义数据页签,输入自定义数据(只支持 JSON 格式)。您也可以在原始数据页签,单击加入自定义数据,然后对其进行修改,作为您的自定义数据。
自定义的数据如有多条,可参照如下格式添加:
[
{
"content": "2021-10-07 13: 32: 21|100|客人未入住|韦小宝|北京|101123199001230123|"
},
{
"content": "2021-10-07 13: 32: 21|500|入住成功|阿珂|三亚|501123199001230123|"
},
{
"content": "2021-10-07 13: 32: 21|1000|退房|韦春花|三亚|101123196001230123|"
}
]
7. 单击 DSL语句生成器。
8. 在弹出的窗口中,选择函数,单击插入函数。
DSL 语句生成器提供了多种函数的说明和示例,您可以将示例复制/粘贴到加工语句的编辑框中,修改对应的参数,完成 DSL 函数的编写;也可以参考 加工示例 文档,帮助您更快地理解 DSL 函数的编写。 9. 完成 DSL 加工语句的编写后,单击预览或者断点调试,运行和调试 DSL 函数。
运行结果会在右下方展示,您可以针对运行结果,调整 DSL 语句,直到满足您的需求。
10. 单击确定,提交数据加工任务。
本页内容是否解决了您的问题?