数据加工函数总览
更新时间:2025-09-28
描述
数据加工函数可以自由组合,来完成日志的清洗、结构化、过滤、分发、脱敏等场景。
函数概览
字段值提取函数
从日志文本中提取字段/字段值。
函数名称 | 函数功能 | 函数语法描述 | 返回值类型 |
---|---|---|---|
e_regex | 基于正则表达式提取字段值 | e_regex(“源字段名”, regex="正则表达式", fields_info="字段和类型的映射列表", mode="overwrite") | 返回提取后的日志(LOG) |
e_json | 提取 JSON 字符串格式的字段值 | ext_json("源字段名",depth=100, prefix="",suffix="",format="simple",sep="", mode="overwrite") | 返回提取后的日志(LOG) |
e_sep | 基于分隔符提取字段值内容 | e_sep("源字段名", "字段和类型的映射列表", sep="", quote="不参与分割的部分", restrict=False, mode="overwrite") | 返回提取后的日志(LOG) |
e_csv | 基于分隔符提取字段值内容,默认分隔符为半角逗号 | e_csv("源字段名", "字段和类型的映射列表", sep=",", quote="不参与分割的部分", restrict=False, mode="overwrite") | 返回提取后的日志(LOG) |
e_psv | 基于分隔符提取字段值内容,默认分隔符为竖线 | e_psv("源字段名", "字段和类型的映射列表", sep="|", quote="不参与分割的部分", restrict=False, mode="overwrite") | 返回提取后的日志(LOG) |
e_tsv | 基于分隔符提取字段值内容,默认分隔符为制表符 | e_tsv("源字段名", "字段和类型的映射列表", sep="\t", quote="不参与分割的部分", restrict=False, mode="overwrite") | 返回提取后的日志(LOG) |
e_kv | 基于两级分割符提取字段值 | e_kv("源字段名", "正则表达式", "key位置", "value位置", fields_info="字段和类型的映射列表", mode="overwrite") | 返回提取后的日志(LOG) |
映射富化函数
在已有字段的基础上,根据规则新增字段。
函数名称 | 函数功能 | 函数语法描述 | 返回值类型 |
---|---|---|---|
e_dict_map | 使用 Dict 结构对日志中的字段值进行匹配。当指定的字段的值和 Dict 中的 Key 相同时,将此 Key 对应的 Value 赋值给日志中的另一字段 | e_dict_map(“JSON 字典”, "源字段名", "目标字段", caseInsensitive=true, missing="", mode="overwrite") | 返回提取后的日志(LOG) |
流程控制函数类
用于条件判断。
函数名称 | 函数功能 | 函数语法描述 | 返回值类型 |
---|---|---|---|
e_compose | 组合操作函数,类似于分支代码块的组合能力,可以组合多个操作函数,并按顺序执行,可以结合分支、输出函数使用 | e_compose("函数1","函数2", ...) | 返回提取后的日志(LOG) |
e_if | 对符合条件的日志,进行相应的函数处理,否则不进行任何处理 | e_if("条件", 函数) | 返回提取后的日志(LOG) |
e_if_else | 基于条件判断,分别进行不同的函数处理 | e_if_else("条件", 函数1, 函数2) | 返回提取后的日志(LOG) |
e_switch | 基于多分支条件,分别进行不同的函数处理,如果存在不符合所有条件的数据,将被丢弃 | t_switch("条件1", 函数1, "条件2", 函数2, ...) | 返回提取后的日志(LOG) |
事件操作函数
用于日志的分发、丢弃、拆分。
函数名称 | 函数功能 | 函数语法描述 | 返回值类型 |
---|---|---|---|
e_drop | 丢弃符合条件的日志 | e_drop(condition="条件") | 返回提取后的日志(LOG) |
e_keep | 保留符合条件的日志 | e_keep(condition="条件") | 返回提取后的日志(LOG) |
字段操作函数
用于字段的增删改查、重命名。
函数名称 | 函数功能 | 函数语法描述 | 返回值类型 |
---|---|---|---|
v | 获取字段值,返回对应字符串 | v(字段名) | 返回字段的值 |
e_set | 用来设置字段值,或者增加新字段 | e_set(字段名1, 字段值1, 字段名2, 字段值2, ..., mode="overwrite") | 返回提取后的日志(LOG) |
e_drop_fields | 根据字段名进行匹配,删除匹配到的字段 | fields_drop(字段名1, 字段名2, ...) | 返回提取后的日志(LOG) |
e_rename | 字段重命名 | e_rename(字段名1, 新字段名1, 字段名2, 新字段名2, ...) | 返回提取后的日志(LOG) |
字段提取模式说明
下表介绍字段提取模式mode参数的不同取值以及说明。 原始日志: { "a": "", "b": 100 }
参数值 | 说明 | 加工语句 | 加工结果 |
---|---|---|---|
fill | 当目标字段不存在或者值为空时,设置目标字段。 | e_set("a", "123",mode="fill") | {"a":"123","b":"100"} |
fill-auto | 当新值非空,且目标字段不存在或者值为空时,设置目标字段。 | e_set("a", "123",mode="fill-auto") | {"a":"123","b":"100"} |
add | 当目标字段不存在时,设置目标字段。 | e_set("c", 200,mode="add") | {"a":"","b":"100","c":"200"} |
add-auto | 当新值非空,且目标字段不存在时,设置目标字段。 | e_set("c", "",mode="add-auto") | {"a":"","b":"100"} |
overwrite | 总是设置目标字段。 | e_set("a", "123",mode="overwrite") | {"a":"123","b":"100"} |
overwrite-auto | 当新值非空,设置目标字段。 | e_set("b", "123",mode="overwrite-auto") | {"a":"","b":"123"} |