数据加工新旧版本对比与升级

更新时间:2025-02-14 03:40:59

本文介绍数据加工(新版)与数据加工(旧版)服务的差异,以及如何选择数据加工(新版)与数据加工(旧版)。

新旧版本对比

对比项

数据加工(新版)

数据加工(旧版)

对比项

数据加工(新版)

数据加工(旧版)

数据处理语法

数据处理SPL,参考SPL语法

数据加工DSL,参考数据加工语法

支持场景

  1. 数据规整、信息提取。

  2. 数据清洗与过滤。

  3. 数据分发至多目标或动态目标。

  4. 跨地域同步数据(支持中国内地区域之间)。

  1. 数据规整、信息提取。

  2. 数据清洗与过滤。

  3. 数据分发至多目标或动态目标。

  4. 信息富化:数据维表,IPv4解析等。

  5. 跨地域同步数据(公网)。

CreateETL - 创建数据加工任务(接口对比)

  1. 添加配置项lang,值为SPL。

  2. 配置项script值为SPL规则。

  3. 输出目标sink中添加配置项datasets。

  1. 无配置项lang。

  2. 配置项script值为DSL脚本。

  3. 输出目标sink中无配置项datasets。

源数据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)
  • 新旧版本对比
  • 新旧版本选择
  • 场景考量
  • 计费考量
  • 新旧版本语法对比