文章目录
- DataX和kettle初步了解
- DataX
- DataX特点
- DataX结构模式(框架+插件)
- Kettle
- DataX和kettle对比
DataX和kettle初步了解
DataX
DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。(摘自百科)
DataX是淘宝开源的数据导入导出的工具,支持HDFS集群与各种关系型数据库之间的数据交换。
我们希望在一个很短的时间窗口内,将一份数据从一个数据库同时导出到多个不同类型的数据库。 DataX正是为了解决这些问题而生。
DataX特点
- 在异构的数据库/文件系统之间高速交换数据
- 采用Framework + plugin架构构建,Framework处理了缓冲,流控,并发,上下文加载等高速数据交换的大部分技术问题,提供了简单的接口与插件交互,插件仅需实现对数据处理系统的访问
- 运行模式:stand-alone
- 数据传输过程在单进程内完成,全内存操作,不读写磁盘,也没有IPC
- 开放式的框架,开发者可以在极短的时间开发一个新插件以快速支持新的数据库/文件系统。(具体参见《DataX插件开发指南》)
DataX结构模式(框架+插件)
- Job: 一道数据同步作业
- Splitter: 作业切分模块,将一个大任务与分解成多个可以并发的小任务.
- Sub-job: 数据同步作业切分后的小任务
- Reader(Loader): 数据读入模块,负责运行切分后的小任务,将数据从源头装载入DataX
- Storage: Reader和Writer通过Storage交换数据
- Writer(Dumper): 数据写出模块,负责将数据从DataX导入至目的数据地
DataX框架内部通过双缓冲队列、线程池封装等技术,集中处理了高速数据交换遇到的问题,提供简单的接口与插件交互,插件分为Reader和Writer两类,基于框架提供的插件接口,可以十分便捷的开发出需要的插件。比如想要从oracle导出数据到mysql,那么需要做的就是开发出OracleReader和MysqlWriter插件,装配到框架上即可。并且这样的插件一般情况下在其他数据交换场合是可以通用的。
Kettle
Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。(摘自百科)
Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。
Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。
Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。
kettle的优点:
1.可视化界面。一个可视化界面足以成为选择kettle的首要原因。毕竟,可视化意味着更方便人的使用。
2.元数据库。元 数据库 用来保存kettle任务的元信息,方便管理任务,通常叫做资源库( repository )。
3.自带工作流并且支持增量抽取。
4.可以配置成一套逻辑。例如:抽取数据时,目标表不存在则插入,存在则更新,而目标表中存在并且数据源中不存在的,可以删除
kettle的job中可以嵌套job,job中嵌套t ransformation, t ransformation中嵌套job等,可以满足非常复杂的任务场景。
DataX和kettle对比
1)Kettle拥有自己的管理控制台,可以直接在客户端进行etl任务制定,不过是CS架构,而不支持BS浏览器模式。DataX并没有界面,界面完全需要自己开发,增加了很大工作量。
2)Kettle可以与我们自己的工程进行集成,通过JAVA代码集成即可,可以在java中调用kettle的转换、执行、结束等动作,这个还是有意义的,而DataX是不支持的,DataX是以执行脚本的方式运行任务的,当然完全吃透源码的情况下,应该也是可以调用的。
3)支持的数据库,都支持的比较齐全,kettle支持的应该更多,DataX是阿里开发,可以更好地支持阿里自身的数据库系列,如ODPS、ADS等
4)Kettle已经加入BI组织Pentaho,加入后kettle的开发粒度和被关注度更进一步提升
5)DataX开源的支持粒度不高,关注度远没有kettle高,代码提交次数更是少的很。
6) 根据网上参考信息,网友测试 kettle全量抽取较大数据量时,抽取时间长,对比测试 datax比kettle快。
7) Datax的工作流需要依托于调度工具的流,本身并不具备工作流特性。
参考
阿里出品的ETL工具dataX初体验
参考URL: https://blog.csdn.net/shudaqi2010/article/details/79247468
淘宝DataX 数据交换机制学习总结
参考URL: https://blog.csdn.net/w83304911/article/details/50066641
离线数据同步神器:DataX,支持几乎所有异构数据源的离线同步到MaxCompute
https://yq.aliyun.com/articles/664118
datax源码分析(一)
参考URL: https://blog.csdn.net/chenqu108/article/details/79803718
Datax源码学习
参考URL: https://blog.csdn.net/shuitawuhen/article/details/41944289
[推荐]DataX二次开发小记
参考URL: https://cloud.tencent.com/developer/news/328376
ETL 之初识 Datax
参考URL: https://www.codercto.com/a/45069.html