文档首页/ 云日志服务 LTS/ 最佳实践/ 日志加工(邀测)/ 使用DSL加工函数清洗LTS日志数据/ 场景四:转换日志参数类型(v函数、cn_int函数和dt_totimestamp函数)
更新时间:2024-08-02 GMT+08:00
分享

场景四:转换日志参数类型(v函数、cn_int函数和dt_totimestamp函数)

  1. 场景1:调用op_add函数进行字符拼接和数据相加。

    op_add函数既可以接收字符串类型,也可以接受数值类型,因此不需要做参数类型转换。

    示例如下所示:

    • 原始日志
      {
          "a":"1",
          "b":"2"
      }
    • 加工规则
      e_set("d",op_add(v("a"), v("b")))
      e_set("e",op_add(ct_int(v("a")), ct_int(v("b"))))
    • 加工结果
      {
      	"a": 1,
      	"b": 2,
      	"d": 12,
      	"e": 3
      }
  2. 场景2:运用字段操作函数和ct_int函数进行类型转换并调用op_mul函数进行数据相乘。

    示例如下所示:

    • 原始日志
      {
          "a":"2",
          "b":"5"
      }
    • 加工规则
      e_set("c",op_mul(ct_int(v("a")), ct_int(v("b"))))
      e_set("d",op_mul(v("a"), ct_int(v("b"))))
    • 加工结果
      {
      	"a": 2,
      	"b": 5,
      	"c": 10,
      	"d": 22222
      }
  3. 子场景3:调用dt_parse函数和dt_parsetimestamp函数将字符串或日期时间转换为标准时间。

    dt_totimestamp函数接收的参数类型为日期时间对象,不是字符串。因此需要调用dt_parse函数将time1的字符串值类型转化为日期时间对象类型。您也可以直接使用dt_parsetimestamp函数,它既能接收日期时间对象,也能接收字符串。

    示例如下所示:

    • 原始日志
      {
          "time1":"2019-09-17 9:00:00"
      }
    • 加工规则:将time1表示的日期时间转化为Unix时间戳。
      e_set("time2", dt_totimestamp(dt_parse(v("time1"))))
    • 加工结果
      {
      	"time1": "2019-09-17 9:00:00",
      	"time2": 1568710800
      }

相关文档