日志服务数据加工:语法功能概述-阿里云开发者社区

开发者社区> 阿里云存储服务> 正文

日志服务数据加工:语法功能概述

简介: 日志服务数据加工上线,本文介绍规则编排的使用场景,覆盖自由编排、内置字段提取、富化,以及使用内置的100多种表达式函数完成自由灵活的数据加工。

自由编排

通过一个Python兼容ETL语言进行自由编排,对各种逻辑进行复杂组合, 可以满足大部分数据加工的需求和自由度.

例如, 可以自由编排达到如下一个场景:
image

完整的加工功能

支持近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功能尚未全面开放,需提工单申请,

进一步参考

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

阿里云存储基于飞天盘古2.0分布式存储系统,产品多种多样,充分满足用户数据存储和迁移上云需求。

官方博客
链接