数据加工函数总览
更新时间:2025-11-05
描述
数据加工函数可以自由组合,来完成日志的清洗、结构化、过滤、分发、脱敏等场景。
函数概览
字段值提取函数
从日志文本中提取字段/字段值。
| 函数名称 | 函数功能 | 函数语法描述 | 返回值类型 |
|---|---|---|---|
| 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 | 基于多分支条件,分别进行不同的函数处理,如果存在不符合所有条件的数据,将被丢弃 | e_switch(条件1, 函数1, 条件2, 函数2, ...) | 返回提取后的日志(LOG) |
事件操作函数
用于日志的分发、丢弃、拆分。
| 函数名称 | 函数功能 | 函数语法描述 | 返回值类型 |
|---|---|---|---|
| e_drop | 丢弃符合条件的日志 | e_drop(条件) | 返回提取后的日志(LOG) |
| e_keep | 保留符合条件的日志 | e_keep(条件) | 返回提取后的日志(LOG) |
字段操作函数
用于字段的增删改查、重命名。
| 函数名称 | 函数功能 | 函数语法描述 | 返回值类型 |
|---|---|---|---|
| v | 获取字段值,返回对应字符串 | v("字段名") | 返回字段的值 |
| e_set | 用来设置字段值,或者增加新字段 | e_set("字段名1", "字段值1", "字段名2", "字段值2", ..., mode="overwrite") | 返回提取后的日志(LOG) |
| e_drop_fields | 根据字段名进行匹配,删除匹配到的字段 | e_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"} |
