数据过滤是数据清洗中的常见操作,您可以通过日志服务数据加工功能来过滤日志主题中存储的日志数据,实现日志数据的字段级、行级的过滤。本文档介绍字段过滤和日志过滤的典型示例。
以下示例演示如何过滤键值提取后冗余的字段。对字段 URI content 进行键值提取后,content 字段被拆分为了多个子字段。后续不再使用 content 字段,所以建议在日志数据中过滤掉该字段,以免下游系统存储冗余字段。
[ { "content":"Method=CreateTask&TaskName=MyTask&TaskType=1&Enable=true&StartTime=1672057815" }, { "content":"Method=ModifyTask&TaskID=1234&Enable=false" }, { "content":"Method=DeleteTask&TaskID=1236" } ]
# 按kv拆分content字段 ext_kv("content", pair_sep="&", kv_sep="=", prefix="", suffix="", mode="overwrite") # 删除content字段 f_drop("content")
[ { "Method": "CreateTask", "TaskName": "MyTask", "TaskType": "1", "Enable": "true", "StartTime": "1672057815" }, { "Method": "ModifyTask", "TaskID": "1234", "Enable": "false" }, { "Method": "DeleteTask", "TaskID": "1236" } ]
以下示例演示如何删除 log-level 为 DEBUG 的日志。通常情况下,日志等级为 DEBUG 的日志相对来说无需过多关注,所以可以删除该等级的日志,长久保存 INFO 及以上等级日志,以避免非必要的日志信息长期占用存储资源。
[ { "log-level":"DEBUG", "msg": "This is a debug msg,line 1", }, { "log-level":"DEBUG", "msg": "This is a debug msg,line 2", }, { "log-level":"INFO", "msg": "This is a info msg,line 3", } ]
# 丢弃log-level为DEBUG的日志 c_if(op_eq(v("log-level"), "DEBUG"), e_drop())
[ { "log-level":"INFO", "msg": "This is a info msg,line 3", } ]