DataX 采用Java编写的工具,使用Python调用功能,修改JSON配置即可使用
数据同步工具 支持:异构数据源、HDFS等 插件式
常用的数据源:MySQL、SQLServer、HDFS、Hive、Hbase、FTP 等
1. DataX 数据源
几乎所有数据源都支持,不支持的也可以自定义Reader和Writer,来支持!常用数据源有:
常用数据源 | 读 | 写 |
---|---|---|
MySQL、SQLServer、Oracle | √ | √ |
Hbase、Phoenix、MongoDB、Hive | √ | √ |
FTP、HDFS | √ | √ |
ES | √ | |
Clickhouse |
读写插件均在 plugin/reader/ 和 plugin/writer/ 中
reader | writer |
---|---|
cassandrareader clickhousereader drdsreader ftpreader hbase094xreader hbase11xreader hbase11xsqlreader hbase20xsqlreader hdfsreader kingbaseesreader mongodbreader mysqlreader odpsreader opentsdbreader oraclereader ossreader otsreader otsstreamreader postgresqlreader rdbmsreader sqlserverreader streamreader txtfilereader |
adbpgwriter adswriter cassandrawriter clickhousewriter drdswriter elasticsearchwriter ftpwriter hbase094xwriter hbase11xsqlwriter hbase11xwriter hbase20xsqlwriter hdfswriter hologresjdbcwriter kafkawriter kingbaseeswriter mongodbwriter mysqlwriter ocswriter odpswriter oraclewriter osswriter otswriter postgresqlwriter rdbmswriter sqlserverwriter streamwriter tsdbwriter txtfilewriter |
2. DataX 架构
- Reader 读
- Writer 写
- Framework 通道
-
Job 单个作业管理节点
-
Task 有Job Split 而来,最小单元 包括:reader、channel、writer
-
Schedule 将Task组成TaskGroup ,单个TaskGroup 默认并发为5
-
TaskGroup 启动内部的Task
3. DataX VS Sqoop
DataX:Java 单进程多线程,单机,数据源种类众多
Sqoop:MR,分布式,数据源种类较少
功能 | DataX | Sqoop |
---|---|---|
MySQL读写 | 单机压力大,粒度容易控制 | MR 模式重,写出错处理困难 |
Hive读写 | 单机压力大 | 很好 |
文件格式 | 支持ORC | 默认不支持ORC,可以添加 |
流控、信息、校验 | 有流控、有一些、core有校验功能 | 需要定制,没有 |
监控 | 需要定制 | 需要定制 |
后续 | 有改动,持续优化 | 基本完善,已经停止 |
4. DataX 安装
- 从Github下载tar.gz,并解压安装包方式
- 使用测试
python datax.py ../job/job.json
- 报错问题
经DataX智能分