t_table_map 函数
函数定义
与目标表格进行映射,根据输入的字段名称返回字段值,可简单理解为日志和维度表关联。
语法描述
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":"原神"}]
enrich_table 函数
函数定义
使用 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"}
enrich_dict 函数
函数定义
使用 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"}