日志服务 富化函数

与目标表格进行映射,根据输入的字段名称返回字段值,可简单理解为日志和维度表关联。

相关产品
日志服务 产品页,含版本规格、价格与购买入口。

一、语法描述

t_table_map(data, field, output_fields, missing=None, mode="fill-auto")

二、参数说明

参数名称 参数描述 参数类型 是否必须 参数默认值 参数取值范围
data 目标表格(维度表) table 是 – –
field 日志中映射到表格的源字段。如果日志中不存在对应字段,则不进行任何操作。支持 String 和 String List any 是 – –
output_fields 映射后的字段。例如["province", "pop"]。支持 String 和 String List any 是 – –
missing 无匹配字段时,将该参数的取值赋给输出字段 output_fields String 否 – –
mode 字段的覆盖模式。默认为 fill-auto String 否 fill-auto 字段提取模式说明

三、示例1:从 MySQL 中富化多个新的字段

MySQL 中新建一个表 test,添加如下数据:

原始日志:

[ { "user_id": 1 }, { "user_id": 3 }]

加工规则:

res_rds_mysql 用于从 MySQL 中获取维度表数据。

//在控制台将外部数据 MySQL 的别名配置为 hm,mysql 的 db 为 test222,表名为 test//从 MySQL 拉取全部数据,使用 t_table_map 函数完成维度表关联t_table_map( res_rds_mysql(alias="hm",database="test222",sql="select * from test"), "user_id", ["gameid", "game"])

加工结果:

[{"user_id":"1"},{"game":"wangzhe","gameid":"123","user_id":"3"}]

四、示例2:关联的字段名称不同,重命名富化的字段

日志字段 Pid 和 MySQL 中的 id 字段关联,名称不同。从 MySQL 中富化的 game_details 字段,在日志中重命名为 game_info。

MySQL 中新建一个表 test,添加如下数据:

原始日志:

[ { "Pid": 1 }, { "Pid": 2 }, { "Pid": 3 }]

加工规则:

//在控制台将外部数据 MySQL 的别名配置为 hm,mysql 的 db 为 test222,表名为 test//从 MySQL 拉取部分数据,使用 t_table_map 函数完成维度表关联//日志字段Pid和MySQL中的id字段关联, 名称不同//从 MySQL 中富化的 game_details 字段,在日志中重命名为 game_infot_table_map( res_rds_mysql(alias="hm",database="test222",sql="select * from test where region='CN'"), [["Pid", "id"]], ["game_name",["game_details","game_info"]])

加工结果:

[{"Pid":"1""game_info":"MOBA手游""game_name":"王者荣耀"},{"Pid":"2"},{"Pid":"3""game_info":"开放世界RPG游戏""game_name":"原神"}]

五、函数定义

使用 CSV 结构数据对日志中的字段进行匹配,当值相同时,可以将 CSV 中的其他字段和值添加到源日志中。

六、语法描述

enrich_table(“csv 源数据”, “csv 富化字段”, output=“目标字段1,目标字段2,目标字段….”, mode="overwrite")

七、参数说明

参数名称 参数描述 参数类型 是否必须 参数默认值 参数取值范围
data 输入的 CSV 数据,第一行为列名,其余行对应值。例如:region,count\\nbj, 200\\ngz, 300 String 是 – –
fields 待匹配列名称。CSV 中的字段名称,与实际日志中同名的字段进行匹配。单个字段名或以英文半角逗号拼接的多个新字段名 String 是 – –
output 输出字段列表,单个字段名或以英文半角逗号拼接的多个新字段名 String 是 – –
mode 新字段的写入模式。默认强制覆盖 String 否 overwrite –

八、示例

原始日志:

{"region": "gz"}

加工规则:

enrich_table("region,count\\nbj,200\\ngz,300", "region", output="count")

加工结果:

{"count":"300","region":"gz"}

九、函数定义

使用 Dict 结构对日志中的字段值进行匹配,当指定的字段的值和 Dict 中的 Key 相同时,将此 Key 对应的 Value 赋值给日志中的另一字段。

十、语法描述

enrich_dict(“JSON 字典”, "源字段名", output=目标字段, mode="overwrite")

十一、参数说明

参数名称 参数描述 参数类型 是否必须 参数默认值 参数取值范围
data 输入的 dict 数据,这里必须是 JSON 对象的转义字符串,例如:{\\"200\\":\\"SUCCESS\\",\\"500\\":\\"FAILED\\"} String 是 – –
fields 待匹配字段名称。当 dict 中的 key 和指定字段对应的值相同时,匹配成功。单个字段名或以英文半角逗号拼接的多个新字段名 String 是 – –
output 目标字段列表。匹配成功后,将 dict 中对应的 value 写入到目标字段列表。单个字段名或以英文半角逗号拼接的多个新字段名 String 是 – –
mode 新字段的写入模式。默认强制覆盖 String 否 overwrite 字段提取模式说明

十二、示例

原始日志:

{"status": "500"}

加工规则:

enrich_dict("{\\"200\\":\\"SUCCESS\\",\\"500\\":\\"FAILED\\"}", "status", output="message")

加工结果:

{"message":"FAILED","status":"500"}

赞 (0)
上一篇 4天前
下一篇 4天前