全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

字段处理函数

最近更新时间:2023-04-26 15:40:34

v函数

函数介绍

获取指定字段的值,可传入多个字段名,返回第一个存在的字段的值。

语法描述

v(key1,key2,...,default=null)

参数说明

参数名称 参数类型 是否必填 参数描述
key string 指定的字段名称
default any 当指定的字段名不存在时,返回default的值。

示例

根据条件提取需要的字段

原始日志

{"name":"ks","age":18}

加工规则

set("new_name",v("name"))

加工结果

{"name":"ks","age":18,"new_name":"ks"}

set函数

函数介绍

添加新的字段或为字段重新赋值,可同时传递多组key和value。

语法描述

set(key1,value1,key2,value2,...,mode="overwrite")

参数说明

参数名称 参数类型 是否必填 参数描述
key string 指定字段名称
value any 指定字段值
mode string 字段覆盖模式,overwrite

示例1

添加一个新字段k2

原始日志

{"k1":"v1"}

加工规则

set("k2","v2")

加工结果

{"k1":"v1","k2":"v2"}

示例2

将k1的字段值赋给新字段k2

原始日志

{"k1":"v1"}

加工规则

set("k2",v("k1"))

加工结果

{"k1":"v1","k2":"v1"}

示例3

如果存在k1字段,将其值赋给新字段k2

原始日志

{"k1":"v1"}

加工规则

if(has_field("k1"),set("k2",v("k1")))

加工结果

{"k1":"v1","k2":"v1"}

drop_fields函数

函数介绍

删除指定的字段。

语法描述

drop_fields(key1,key2,...,regex=false)

参数说明

参数名称 参数类型 是否必填 参数描述
key string 需要删除的字段名称,可以是正则表达式。
regex bool 是否将参数key作为正则表达式进行匹配,设置为false表示不作为正则表达式匹配,默认为false

示例
当存在字段k1时,删除字段k2。

原始日志

{"k1":"v1","k2":"v2","k3":"v3"}

加工规则

if(has_field("k1"),drop_fields("k2"))

加工结果

{"k1":"v1","k3":"v3"}

keep_fields函数

函数介绍

保留指定字段,其它字段将被删除。

语法描述

keep_fields(key1,key2,...,regex=true)

参数说明

参数名称 参数类型 是否必填 参数描述
key string 需要保留的字段名称,可以是正则表达式,其它字段将被删除
regex bool 是否将参数key作为正则表达式进行匹配,设置为false表示不作为正则表达式匹配。默认是true

示例
当存在字段k1时,保留字段k1,k2。

原始日志

{"name":"ks","content":"123"}

加工规则

if(has_field("k1"),keep_fields("k1","k2"))

加工结果

{"k1":"v1","k2":"v2"}

pack_fields函数

函数介绍

将符合条件的字段打包后输出到新的字段中。

语法描述

pack_fields(output_field,include=".*",exclude="",drop_packed=true)

参数说明

参数名称 参数类型 是否必填 参数描述
output_field string 打包后输出的目标字段名称
include string 包含字段的正则表达式,符合该表达式的字段将会被打包
exclude string 排除字段的正则表达式,符合该表达式的字段将不会被打包
drop_packed bool 是否删除被打包的原字段,true表示删除,默认是true

示例1
将所有字段打包输出到新字段k_all中

原始日志

{"k1":"v1","k2":"v2","k3":"v3"}

加工规则

pack_fields("k_all")

加工结果

{"k_all":{"k1":"v1","k2":"v2","k3":"v3"}}

示例2
打包符合正则表达式的字段到新字段k_all中,并保留被打包字段

原始日志

{"k1":"v1","k2":"v2","content":"content"}

加工规则

pack_fields("k_all",include="[a-z]+\d+",drop_packed=false)

加工结果

{"k_all":{"k1":"v1","k2":"v2"},"k1":"v1","k2":"v2","content":"content"}

rename函数

函数介绍

对符合条件的字段进行重命名

语法描述

rename(key1,new_key1,key2,new_key2,...,regex=false)

参数说明

参数名称 参数类型 是否必填 参数描述
key string 字段名,可以为正则表达式。
new_key string 字段新名称
regex bool 设置为true时,表示将key参数作为正则进行匹配,默认为true

示例

将字段名称k1修改为name

原始日志

{"k1":"v1"}

加工规则

rename("k1","name")

加工结果

{"name":"v1"}
文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈