本文档介绍内容洞察数据流处理环节中,可支持的对数据处理的算子能力。
内容洞察字段处理算子目前支持以下4种操作,具体的语法及使用示例见下文:
将某个值赋值,只支持string, bool**,int,float四种类型**
assign a => "123" // 把常量赋值给a,只支持string,bool,int,float
assign a => false
assign a => 1.23
assign a => 123
assign c => $b // b字段的值赋值给c
assign a.b => "123" // a是嵌套结构,赋值a中的b字段为123
assign c.d => $a.b // 嵌套结构,将a.b的值赋值给c.d
说明
int类型只支持最大值: 2,147,483,647 (2^31 - 1)到最小值: -2,147,483,648 (-2^31)范围之间的取值,若超过范围会报错。float类型支持七位精度,超过精度范围也会报错。
若最后落库mysql的字段类型是时间类型的(date,timestamp,time等)需要保障落库字段的类型为string的"YYYY-MM-DD hh:mm:ss"格式,或者是int的timestamp格式,否则会落库失败
将数据中某个字段丢弃
drop a // 丢弃a字段
drop a.b // a是嵌套结构,丢弃a结构中的b字段
drop a if a == "123" // if a == "123" drop a字段,只支持string,bool, int, float
drop a if b != "123" // if b != "123" drop a字段,只支持string,bool, int, float
过滤满足条件的数据
filter if a == "123" // if a == "123" drop a字段,只支持string, bool, int, float
filter if a.b == "123" // a是嵌套结构,若a中的b字段 == "123", 过滤
说明
转换数据类型 如int => bool,string => int,float => int
convert a => bool // 可以使用bool, int, string, float
convert b => int
说明
int类型只支持最大值: 2,147,483,647 (2^31 - 1)到最小值: -2,147,483,648 (-2^31)范围之间的取值,如果string转int后的大小超过范围会报错。float同理。
配置文件如下:
assign a => 12.8
convert a => int
assign c => 2.87
convert c => bool
drop c
assign d.f => true
convert d.f => int if a != $b
assign e => $a if d.f == 1
drop d if b == "123"
// 初始msg
msg = {"a": "x", "b": 123}
// 运行结果by line
assign a => 12.8 //输出 {a=12.8, b=123}
convert a => int //输出 {a=12, b=123}
assign c => 2.87 //输出 {a=12, b=123, c=2.87}
convert c => bool //输出 {a=12, b=123, c=2.87}
drop c //输出 {a=12, b=123}
assign d.f => true //输出 {a=12, b=123, d={f=true}}
convert d.f => int if a != $b //输出 {a=12, b=123, d={f=1}}
assign e => $a if d.f == 1 //输出 {a=12, b=123, d={f=1}, e=12}
drop d if b == "123" //输出 {a=12, b=123, d={f=1}, e=12}
// 最终输出:
msg = {a=12, b=123, d={f=1}, e=12}