Skip to content

Transformers

Sun Jianbo edited this page Oct 8, 2017 · 24 revisions

Transformer是Parser的一个补充,它针对字段进行数据变换。

在大多数场景下,你可能用Parser就解决了全部问题,但是有些场合,你使用的Parser可能比较简单,如json parser,此时你发现数据里面有一部分字段你希望做一些扩展,比如有个ip字符串,你希望将其扩展为 ip 对应的区域、城市、省份、运营商等信息,此时你就可以配置一个Transformer,对IP字段进行转换。

再比如,当你希望做一些字符串替换的时候,你又不想写一个Parser,只希望对某个字段做一个字符串替换处理,那就可以写配置一个replace transformer。

Transform既可以在Parser前调用,也可以在Parser后调用。同样,也可以连着调用,调用顺序就是你在配置文件中配置的顺序。

一份带有 Transformer的配置如下:

{
                "name":"test2.csv",
		"reader":{
			"log_path":"./tests/logdir",
			"mode":"dir"
		},
		"parser":{
			"name":"jsonps",
			"type":"json"
		},
		"transforms":[{
			"type":"replace",
			"stage":"before_parser",
			"old":"\\x",
			"new":"\\\\x"
		}],
		"senders":[{
			"name":"file_sender",
			"sender_type":"file",
			"file_send_path":"./test2/test2_csv_file.txt"
		}]
}

可以看到,在reader、parser 和 sender 同级别下面,增加一个 transforms 字段,对应的就是不同transformer对应的列表。

type 字段是固定的,每个Transformer都有,表示Transformer的类型名称,其他字段则根据Transformer表达的转换行为各不相同。可以参见每个Transformer的介绍页。

已有 Transformers 列表

目前支持的Transformer有:

如何贡献更多 Transformer ?

to be comming soon...

Clone this wiki locally