本文介绍数据加工(新版)与数据加工(旧版)服务的差异,以及如何选择数据加工(新版)与数据加工(旧版)。
新旧版本对比
对比项 | 数据加工(新版) | 数据加工(旧版) |
对比项 | 数据加工(新版) | 数据加工(旧版) |
数据处理语法 | 数据处理SPL,参考SPL语法。
| 数据加工DSL,参考数据加工语法。 |
支持场景 |
|
|
CreateETL - 创建数据加工任务(接口对比) |
|
|
源数据Logstore消费组依赖 | 不依赖 | 依赖 |
新旧版本选择
场景考量
目前,数据加工(新版)暂未支持数据富化等场景。如果需要从SLS Logstore,OSS Object、RDS Table等数据源关联维表信息,进行IP地理位置解析,或者跨地域同步数据,请选择数据加工(旧版)。
计费考量
通过数据加工服务的技术迭代升级,数据加工(新版)提供了更具优势的使用成本,仅为数据加工(旧版)的1/3,具体参考按使用功能计费模式计费项。所以,在需求场景已经支持时,推荐使用数据加工(新版)。
新旧版本语法对比
相对于数据加工(旧版)DSL语言,日志服务SPL语法提升了易用性,具体如下:
数据加工(旧版)DSL语法作为Python语法子集,需要函数式编程,使用过程中存在较多语法符号冗余。相较而言,日志服务SPL语言是类Shell指令式语法,在最大程度减少语法符号的冗余。
旧版本使用函数
v
引用字段值v("field")
,SPL则直接引用字段,比如| where field='ERROR'
。旧版本函数调用
func(arg1, arg2)
,转为SPL指令| cmd arg1, arg2
,编写更简洁。
数据加工(旧版)DSL的定义中,字段值固定为字符串类型,类型转换的中间结果不支持保留。SPL语言支持处理过程中临时字段类型保持,请参见类型保持。
数据加工(旧版):
如下DSL脚本,需两次调用ct_int函数。
e_set("ms", ct_float(v("sec"))*1000) e_keep(ct_float(v("ms")) > 500)
数据加工(新版):
对应的SPL逻辑则更为简洁,无需两次转换类型。
| extend ms=cast(sec as double)*1000 | where ms>1024
复用日志服务SQL函数,无需额外的理解成本,详情请参考SQL函数。
- 本页导读 (1)
- 新旧版本对比
- 新旧版本选择
- 场景考量
- 计费考量
- 新旧版本语法对比