全部文档
当前文档

暂无内容

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

文档中心

行处理函数

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

drop函数

函数介绍

根据条件判断是否丢弃该数据

语法描述

drop(condition)

参数说明

参数名称 参数类型 是否必填 参数描述
condition bool 是否丢弃该数据,一般传入一个条件判断函数的结果

示例1

原始日志

{"status":true, "k1":"v1"},
{"status":false, "k1":"v1"}

加工规则

if(v("status"),drop())

加工结果

{"status":false, "k1":"v1"}

keep函数

函数介绍

根据条件判断是否保留该数据

语法描述

keep(condition)

参数说明

参数名称 参数类型 是否必填 参数描述
condition bool 是否保留该数据,一般传入一个条件判断函数的结果,默认为true

示例

原始日志

{"status":true, "k1":"v1"},
{"status":false, "k1":"v1"}

加工规则

keep(v("status"))

加工结果

{"status":true, "k1":"v1"}

split函数

函数介绍

基于日志字段的值分裂出多条日志,并且支持通过JMES提取字段后再进行分裂。分裂失败返回原日志。

语法描述

split(key, sep=",", quote="\"", lstrip=true,jmes="", output="")

参数说明

参数名称 参数类型 是否必填 参数描述
key string 需要分裂的字段名。字段值必须是字符串或数组。
sep string 分割多个值的分隔符。必须是单个字符。默认","
quote string 包裹值的引用符。必须是单个字符。默认"
lstrip bool 是否将值左边的空格去掉。默认true
jmes string 将字段转换为json对象,再根据JMES提取的值进行分裂。支持字符串和数组。
output string 为分裂值设置新的字段名。默认会直接使用key参数传入的字段名称

示例1

原始日志

{"from":"a,b,c","name":"ks","age":23}

加工规则

split("from")

加工结果

[
    {"from":"a","name":"ks","age":23},
    {"from":"b","name":"ks","age":23},
    {"from":"c","name":"ks","age":23}
]

示例2

将分裂值输出到新的字段名。

原始日志

{"from":"a,b,c","name":"ks","age":23}

加工规则

split("from",output="new_column")

加工结果

[
    {"from":"a,b,c","new_column":"a","name":"ks","age":23},
    {"from":"a,b,c","new_column":"b","name":"ks","age":23},
    {"from":"a,b,c","new_column":"c","name":"ks","age":23}
]

示例3

自定义分隔符和引用符。

原始日志

{"from":"*a*|*b*|*c*","name":"ks","age":23}

加工规则

split("from",sep="|",quote="*")

加工结果

[
    {"from":"a","name":"ks","age":23},
    {"from":"b","name":"ks","age":23},
    {"from":"c","name":"ks","age":23}
]

output函数

函数介绍

将日志输出到指定目标日志池。如果目标日志池不存在,日志将被输出到错误日志池。

语法描述

output(name,stop=true)

参数说明

参数名称 参数类型 是否必填 参数描述
name string 数据加工任务中配置的输出目标的名称。
stop bool 是否终止之后的函数执行。默认true

示例1
根据条件将日志输出到指定日志池

原始日志

{"level":"info","content":"123"}

加工规则

switch(op_eq(v("level"),"info"),output("log_info"),op_eq(v("level"),"error"),output("log_error"))

加工结果

日志被输出到目标名称为“log_info”的日志池。

示例2
设置stop为false,继续处理日志并将其插入到默认日志池。

原始日志

{"level":"info","content":"123"}

加工规则

if(op_eq(v("level"),"info"),output("log_info",stop=false))
set("content","456")

加工结果

{"level":"info","content":"123"}:被输出到目标名称为“log_info”的日志池。
{"level":"info","content":"456"}:被输出到默认日志池
文档导读
纯净模式常规模式

纯净模式

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