-
Notifications
You must be signed in to change notification settings - Fork 255
[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专业版