最近更新时间:2023-04-26 15:40:39
函数介绍
根据条件确定是否执行操作,可同时传入多组条件和操作,条件和操作必须成对出现。
语法描述
if(条件, 操作)
if(条件1, 操作1, 条件2, 操作2...)
参数说明
参数名称 | 参数类型 | 是否必填 | 参数描述 |
---|---|---|---|
条件 | 任意 | 是 | 表达式或其组合 |
操作 | 全局操作函数 | 是 | 全局操作函数 |
示例1
根据条件提取需要的字段
原始日志
{"k1":"v1","k2":"v2","k3":"v3"}
加工规则
if(op_eq(v("k1"),"v1"),keep_fields("k1","k2"))
加工结果
{"k1":"v1","k2":"v2"}
示例2
根据条件删除行
原始日志
{"k1":"v1","k2":"v2","k3":"v3"},
{"k1":"v1.1","k2":"v2","k3":"v3"}
加工规则
if(op_eq(v("k1"),"v1"),drop())
加工结果
{"k1":"v1.1","k2":"v2","k3":"v3"}
函数介绍
根据条件执行相应的操作。
语法描述
if(条件, 真时操作,假时操作)
参数说明
参数名称 | 参数类型 | 是否必填 | 参数描述 |
---|---|---|---|
条件 | any | 是 | 表达式或其组合 |
真时操作 | 全局操作函数 | 是 | 全局操作函数 |
假时操作 | 全局操作函数 | 全局操作函数 | 是 |
示例
原始日志
{"gender":0}
加工规则
if_else(v("gender"),set("dis_gender","男"),set("dis_gender","女"))
加工结果
{"gender":0,"dis_gender":"女"}
函数介绍
多组条件和操作,满足其中任一条件,执行对应操作并返回。
语法描述
switch(条件1,操作1,条件2,操作2...,default=null)
参数说明
参数名称 | 参数类型 | 是否必填 | 参数描述 |
---|---|---|---|
条件 | any | 是 | 表达式或其组合 |
操作 | 全局操作函数 | 是 | 全局操作函数 |
default | 全局操作函数 | 是 | 全局操作函数 |
示例1
根据age的值设置age_group,如果age小于18设置为未成年,如果age大于等于18设置为成年。
原始日志
{"name":"ks","age":17},
{"name":"mike","age":35}
加工规则
switch(op_lt(v("age"),18),set("age_group","未成年"),op_ge(v("age"),18),set("age_group","成年"))
加工结果
{"name":"ks","age":17,"age_group":"未成年"}
{"name":"mike","age":35,"age_group":"成年"}
示例2
丢弃不符合要求的日志。
原始日志
{"type":"goods","size":123,"data":"content"},
{"type":"store","size":123,"data":"content"},
{"type":"unkonw","size":123,"data":"content"}
加工规则
switch(eq(v("type"),"goods"),keep(),eq(v("type"),"store"),keep(),default=drop())
加工结果
{"type":"goods","size":123,"data":"content"}
{"type":"store","size":123,"data":"content"}
函数介绍
组合多个操作,多用于传参。
语法描述
compose(操作1,操作2...)
参数说明
参数名称 | 参数类型 | 是否必填 | 参数描述 |
---|---|---|---|
操作 | 全局操作函数 | 是 | 全局操作函数 |
示例
如果content的值为123,则增加k1字段,然后删除name字段。
原始日志
{"name":"ks","content":"123"}
加工规则
if(op_eq(v("content"),"123"),compose(set("k1","v1"),drop_fields("name")))
加工结果
{"k1":"v1","content":"123"}
纯净模式