本文介绍使用映射富化函数e_dict_map进行数据富化的实践案例。
背景信息
普通映射函数
普通映射函数使用文本完全匹配方式来映射,如果需要更丰富的字段匹配方式例如正则表达式匹配、完全匹配、模糊匹配,请使用搜索映射函数。普通映射函数包括e_dict_map函数和e_table_map函数,两者区别在于e_dict_map函数接收的是dict类型的数据,e_table_map函数接收的是通过资源函数获取的table类型的数据。
例如:在nginx日志中,将特定的状态码转换为文本格式,可以使用普通映射函数e_dict_map,
状态码 | 文本 |
200 | 成功 |
300 | 跳转 |
400 | 请求错误 |
500 | 服务器错误 |
使用e_dict_map函数进行数据富化
本案例介绍使用e_dict_map函数完成数据富化的方法。
原始日志
http_host: example.com http_status: 300 request_method: GET http_host: example.org http_status: 200 request_method: POST http_host: example.net http_status: 400 request_method: GET http_host: aliyundoc.com http_status: 500 request_method: GET
加工需求
将http_status字段中的请求状态码转化为文本格式,并添加到status_desc字段中。
加工规则
e_dict_map({"400": "请求错误", "500": "服务器错误", "300": "跳转", "200": "成功"}, "http_status", "status_desc")
说明在实际情况中,HTTP请求状态码不止以上4种,详情请参见HTTP请求状态码。当http_status字段的值为401、404时,需要更新字典覆盖,否则无法匹配。
加工结果
http_host: example.com http_status: 300 request_method: GET status_desc: 跳转 http_host: example.org http_status: 200 request_method: POST status_desc: 成功 http_host: example.net http_status: 400 request_method: GET status_desc: 请求错误 http_host: aliyundoc.com http_status: 500 request_method: GET status_desc: 服务器错误