日志服务数据加工:规则场景概述,


使用场景1:自由编排

通过一个简单的类Python风格的配置文件进行编排,一般情况下不需要写代码即可达到80%的数据加工的需求和自由度:
image

提供内置的编排能力包括如下,并具备扩展能力:

  • 赋值字段
  • 提取字段
  • 通用操作
  • 分派转换
  • 串联转换
  • 分裂事件
  • 保留事件
  • 丢弃事件
  • 保留字段
  • 丢弃字段
  • 自动提取KV
  • 重命名字段
  • 输出(复制)事件

使用场景2:使用内置转换模块

日志服务数据加工功能提供了完整的内置的处理模块,尤其对于正则表达式、KV、JSON、Lookup等支持灵活且完整。总体内置转换模块对常规数据加工转换支持度完整,可以覆盖总体80%的转换需求:

  • 设置列值(静态/复制/UDF):各种函数计算支持
  • 正则提取列:正则的完整支持,包括动态提取字段名等
  • CSV格式提取:CSV标准的支持
  • 字典映射:直接字段映射
  • 外部OSS多列映射:从外部OSS上的CSV关联对数据进行富化,支持增量刷新、宽匹配等。
  • 外部数据库多列映射:从外部数据库关联对数据进行富化,支持动态刷新、宽匹配等。
  • 外部Logstore多列映射:从外部logstore关联对数据进行富化,支持增量刷新、宽匹配等。
  • 自动KV:自动提取KV,也支持自定义分隔符auto-escape场景
  • JSON自动展开:支持自动展开JSON内容,包括数组,支持展开过程的定制。
  • JSON-JMES过滤:支持基于JMES的动态选择与计算后再处理。
  • 分裂事件(基于JSON数组或字符串):基于字符串数组或JSON数组进行事件分裂
  • 多列合并(基于JSON数组或字符串):基于字符串数组或JSON数组进行多字段合并

使用场景3:使用内置表达式函数

目前日志服务对外的插件编写尚未开放,但提供了内置150种函数,基本覆盖了主流的数据加工的需求,包括:

  • 基本操作函数: 字段取值, 控制, 比较, 容器判断, 多字段操作等
  • 转换函数: 基础类型转换, 数字转换
  • 算术函数: 基础计算, 多值计算比较, 数学计算, 数学参数等
  • 字符串函数: 多字段操作, 编码/解码, 排序、倒叙、替换, 常规规整, 查找判断, 切分, 格式化, 字符集判断等
  • 日期时间函数: 智能日期时间转换, 获取日期时间属性, 获取日期时间, 获取Unix时间戳, 获取日期时间字符串, 修改日期时间, 修改日期时间, 比较日期时间等
  • 正则表达式函数: 字段提取, 匹配判断, 替换, 切分等
  • JSON与XML函数: 提取过滤等
  • 其他高阶函数: Syslog函数等

使用场景4:扩展插件或UDF

底层目前采用Python引擎,理论上任意Python的库都可以稍加包装即可进入日志服务的数据加工,目前自定义UDF功能,尚未开放,但外部客户使用内置的150+函数(持续增加)基本完成完成大部分工作,不能满足需求的,可以提工单并获得及时支持。

进一步参考

  • 日志服务数据加工 - 功能概述
  • 日志服务数据加工 - 快速开始(SLB日志加工实战)
  • 日志服务数据加工 - 规则场景概述
  • 日志服务数据加工 - 语法框架与样例
  • 日志服务数据加工 - 作业诊断指南
  • 日志服务数据加工 - 权限配置指南

欢迎扫码加入官方钉钉群 (11775223)获得实时更新与linuxboy工程师的及时直接的支持:
image

相关内容