*编排
通过一个Python兼容ETL语言进行*编排,对各种逻辑进行复杂组合, 可以满足大部分数据加工的需求和*度.
例如, 可以*编排达到如下一个场景:
完整的加工功能
支持近30种全局步骤函数, 支持通过各种参数调节行为, 且可以接受其他表达式函数的调用组合的结果作为参数, 其中控制的函数不仅可以搭配表达式函数, 也可以搭配其他步骤函数操作.
- 控制: 支持基于条件判断后的流程分支, 包括if-else, if条件-操作配对组合, switch分派, compose组合等场景. 借助e_search等简单搜索语法可以对不同类型日志进行灵活的加工.
- 事件操作: 支持对事件进行丢弃, 保留, 分裂, 输出, 复制等
- 字段操作: 支持保留, 删除, 重命名字段等
- 字段赋值: 支持基于任意表达式组合结果设置字段的值
- 字段值提取: 支持基于正则表达式, GROK, KV, KV分隔符, CSV, TSV, PSV, syslog等方式提取字段中的多个值或键值对. 支持JSON提取并展开的完整攻略.
- 字段富化: 支持基于字典, 表格进行映射或搜索, 其中搜索表格的映射方式尤其强. 支持从规则配置, 外部OSS, RDS, Logstore等资源获取富化的维表信息. 支持基于全量, 增量或改动日志对外部资源进行自动刷新.
灵活的函数库
目前提供近200个内置的表达式函数, 以便转换事件或控制全局函数的行为,覆盖了主流的数据加工的需求,包括:
- 事件搜索: 提供类似Lucene语法的, 完整的正则表达式, 字符串, 泛字符, 数值比较, and/or/not等组合的条件过滤机制
- 基本操作函数: 字段取值, 控制, 比较, 容器判断, 多字段操作等
- 转换函数: 基础类型转换, 数字转换, 字典, 列表操作.
- 算术函数: 基础计算, 多值计算比较, 数学计算, 数学参数等
- 字符串函数: 多字段操作, 编码/解码, 排序、倒叙、替换, 常规规整, 查找判断, 切分, 格式化, 字符集判断等
- 日期时间函数: 智能日期时间转换, 获取日期时间属性, 获取日期时间, 获取Unix时间戳, 获取日期时间字符串, 修改日期时间, 修改日期时间, 比较日期时间等
- 正则表达式函数: 字段提取, 匹配判断, 替换, 切分
- GROK支持: 支持GROK模式替换, 提供400种GROK内置模式.
- JSON与XML函数: 提取过滤等
- Protobuf: 支持基于Protobuf配置对Protobuf格式的内容进行转换与提取
- 编解码: 支持SHA1/256/512等, MD5, HTML, URL, Base64等格式的文本进行单项或双向的编解码.
支持动态分发
支持根据业务需求, 将数据按照特定逻辑分发到不通的目标logstore. 目标logstore的名称甚至是动态计算或者外部第三方获取到的.
支持灵活富化
支持从本地资源, 外部资源(包括OSS, RDS, 日志服务Logstore)来获取, 支持从字典, 表格的常规映射到搜索表格的复杂映射. 外部资源加载支持自动刷新, snapshot
支持自定义UDF扩展
使用内置的200个函数(持续增加)基本可以完成大部分工作,因特殊场景, 不能满足需求的,可以提工单并获得及时支持。另一方面, 底层目前采用Python引擎,理论上任意Python的库稍加包装即可进入日志服务的数据加工,自定义UDF功能尚未全面开放,需提工单申请,
进一步参考
欢迎扫码加入官方钉钉群获得实时更新与阿里云工程师的及时直接的支持: