DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS 等各种异构数据源之间高效的数据同步功能。
数据源 | Reader(读) | Writer(写) |
---|---|---|
Kafka | √ | |
Redis | √ | |
ClickHouse | √ | √ |
Greenplum | √ |
-
HdfsWriter可以不配置columns,减少配置文件的负担;
-
HdfsReader的splitNumber优先使用设置的channel,其次再根据文件数设置;
-
MysqlWriter增加values配置,支持insert常量;
-
修复统计数量不正确的问题;
终止task的时,会调用this.channel.pushTerminate(TerminateRecord.get()),push一个没有元素的TerminateRecord到queue中,所以pull时,每有1个task统计就会多1个。
在入库时,TerminateRecord会被排除掉,但是在统计时没有处理,引起了该问题;
-
支持hive的\u0001分隔符;
-
移除useTextQualifier配置代码,通过json配置动态获取,并且修复csvReaderConfig设置无效的bug;
-
把close放到send操作后,保证所有消息正常生产后再关闭task。
KafkaWriter producer.send后,数据并不会立即全部生产,这时候没有东西阻塞,datax会关闭task,再调用destroy。