-
Notifications
You must be signed in to change notification settings - Fork 256
[convert]Transformer
Sun Jianbo edited this page Oct 10, 2017
·
4 revisions
数据转换的Transformer
可以在Parser后使用,针对dsl指定的字段和类型做数据格式转换。
配置如下:
{
"type":"convert",
"dsl":"field1 string"
}
该功能可以将指定dsl
将数据进行格式转换。dsl
中可以包含多个数据字段和类型。dsl
的语法与Pandora sender中创建repo的dsl语法相同。
-
dsl
指定要进行数据转换的dsl。
DSL规则为<字段名称> <类型>,字段名称和类型用空格符隔开,不同字段用逗号隔开。若字段必填,可以转换的类型包括:
- long类型(int64):long,LONG,l,L
- float类型(float64): float,FLOAT,F,f
- string类型: string,STRING,S,s
- bool类型: bool,BOOL,B,b,boolean
- array类型: array,ARRAY,A,a;括号中跟具体array元素的类型,如a(l),表示array里面都是long。同时,也可以省略小括号前的array类型申明,直接写(l),表示 array类型,里面的元素是long
- map类型: map,MAP,M,m;使用花括号表示具体类型,表达map里面的元素,如map{a l,b map{c b,x s}}, 表示map结构体里包含a字段,类型是long,b字段又是一个map,里面包含c字段,类型是bool,还包含x字段,类型是string。同时,也可以省略花括号前面的map类型,直接写{s l},表示map类型,里面的元素s为long类型。
一份带有convert Transformer的完整配置类似如下:
实例的配置会将字段切割,并利用convert Transformer转化为整数。
{
"name":"test2.csv",
"reader":{
"log_path":"./tests/logdir",
"mode":"dir"
},
"parser":{
"name":"jsonps",
"type":"json"
},
"transforms":[{
"type":"split",
"key":"status",
"sep":",",
"newfield":"newarray"
},{
"type":"convert",
"dsl":"newarray array(long)"
}],
"senders":[{
"name":"file_sender",
"sender_type":"file",
"file_send_path":"./test2/test2_csv_file.txt"
}]
}
快速开始 | Pandora | Readers | Parsers | Senders | Download | 七牛智能日志管理平台 | logkit-pro专业版