由于公司数据共享交换产品中需要用到数据交换工具,所以对数据交换工具进行了大量的研究,目前比较流行的数据交换工具有Kittle、Sqoop、Kafka Connect、DataX;
以下是个人的一点比对结果:
如下四款工具除了Kittle其他的共同点都是面向插件方式开发,扩展性都比较好。
Kittle
优点:与大数据Hadoop结合比较好,功能比较齐全,强大,支持数据库,文件数据读写,界面拖拽方式操作;
缺点:灵活性比较差,不利于与系统集成。
Sqoop
优点:数据支持JDBC方式,SINK端对大数据支持比较好,支持数据到HDFS、Hive、HBase等数据存储结构中;
缺点:数据写入时对JDBC方式不支持;
Kafka Connect
优点:支持JDBC、支持增量、与Kafka集成比较好,提供了操作和监控的API,支持文件采集
,支持表级采集,支持sql方式采集;
缺点:工具的比较新,成熟度不够高,但是是一款值得关注的好ETL工具;
DataX
优点:支持关系型数据库到关系型数据型数据之间的数据传输,结构设计上不计较合理,数据监控与数据异常处理的比较好,数据交换的效率比较高;
缺点:分布式模式为被开源,只有Standalone模式,目前没有支持到Hadoop,Kafka等大数据存储。
如下是对DataX工具源码研究后绘制的核心类图和流程