更新时间:2024-08-02 GMT+08:00
场景四:转换日志参数类型(v函数、cn_int函数和dt_totimestamp函数)
- 场景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:运用字段操作函数和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:调用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 }
- 原始日志
父主题: 使用DSL加工函数清洗LTS日志数据