本文档介绍富化映射函数的语法与格式、相关的场景示例。
f_table_map 函数用于映射表格数据,根据指定的字段名返回表格中对应的字段值。
f_table_map(value, field, output_fields, missing=None, mode="overwrite")
参数说明如下:
参数 | 参数类型 | 是否必选 | 默认值 | 说明 |
---|---|---|---|---|
value | String | 是 | / | 目标表格。 |
field | String | 是 | / | 与表格数据映射的源日志字段。多个字段之间使用半角逗号(,)分隔,例如 |
output_fields | String | 是 | / | 映射后,待输出的字段。多个字段之间使用半角逗号(,)分隔,例如 |
missing | String | 否 | / | 缺省值。无匹配的字段值时,将 missing 参数的取值赋值给 output_fields。 |
mode | String | 否 | overwrite | 字段的覆盖模式。包括:
|
场景:与火山引擎 MySQL 数据库 test_sql 中的 table_tls 表进行映射,根据 id
、age
字段返回 name
、desc
字段的值。
加工规则:
f_table_map( res_rds_mysql( address="192.168.**.**", username="test_username", password="****", database="test_sql", vpc="vpc-xxxxx", table="table_tls", primary_keys="id", update_time_key="update_time", refresh_interval=10 ), "id,age", "name,desc" )
数据库数据样例:
id | age | name | desc |
---|---|---|---|
1 | 10 | zhangsan | Man out of law |
2 | 18 | lisi | Hey man, what can i say! |
日志样例:
[ { "id":1, "age":10 }, { "id":2, "age":18 } ]
加工结果:
[ { "id":1, "age":10, "name":"zhangsan", "desc":"Man out of law" }, { "id":2, "age":18 } ]
场景:与火山引擎 MySQL 数据库 test_sql 中的 table_tls 表进行映射,根据 id
、age
字段返回 name
、desc
字段的值,且设置 missing 参数为 unknown。
加工规则:
f_table_map( res_rds_mysql( address="192.168.**.**", username="test_username", password="****", database="test_sql", vpc="vpc-xxxxx", table="table_tls", primary_keys="id", update_time_key="update_time", refresh_interval=10 ), "id,age", "name,desc", missing='unknown' )
数据库数据样例:
id | age | name | desc |
---|---|---|---|
1 | 10 | zhangsan | Man out of law |
日志样例:
[ { "id":1, "age":10 }, { "id":2, "age":18 } ]
加工结果:
[ { "id":1, "age":10, "name":"zhangsan", "desc":"Man out of law" }, { "id":2, "age":18, "name":"unknown", "desc":"unknown" } ]
f_dict_map 函数用于与指定字典进行映射,根据映射关系将输入的字段映射为一个新字段。
f_dict_map(value=映射的字典,fields=映射字段,output_field=输出字段,missing=缺省填充字段,mode="fill")
参数说明如下:
参数 | 参数类型 | 是否必选 | 默认值 | 取值范围 | 说明 |
---|---|---|---|---|---|
value | Dict | 是 | / | / | 用于映射的字符串字典。其中 key 和 value 必须为字符串格式。 |
fields | String | 是 | / | / | 字段名或字段名列表,多个字段名之间通过英文逗号分隔。指定为多个字段名时:
|
output_field | String | 是 | / | / | 输出字段名称。 |
missing | String | 否 | / | / | 如果没有匹配到默认字段,则将该参数的值赋予输出字段 output_field。默认为 None 表示不做映射赋值操作。 |
mode | String | 否 | overwrite |
| 指定值对输出字段的覆盖模式。
|
场景:用 dict 中的映射把日志内容 status
字段,映射到 status_msg
字段。
加工规则:
f_dict_map(dict_make("200","成功","400","参数异常"),"status","status_msg","未知状态")
日志样例:
{ "status": "200" }
加工结果:
{ "status": "200", "status_msg": "成功" }