本文档介绍内容洞察数据流处理环节中,可支持的对数据处理的算子能力。
内容洞察字段处理算子目前支持以下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}