- Linux
- JDK(1.6以上,推荐1.6)
- Python(推荐Python2.6.X)
- Apache Maven 3.x (Compile DataX)
-
工具部署
-
方法一、直接下载Datax-bin工具包:DataX-bin
下载后解压至本地某个目录,进入bin目录,即可运行同步作业:
$ cd {YOUR_DATAX_HOME}/bin $ python datax.py {YOUR_JOB.json}
-
方法二、下载DataX-src源码,自己编译:DataX-src源码
(1)、下载DataX源码:
$ git clone [email protected]:Arvin-Mark/DataX-src.git
(2)、通过maven打包:
$ cd {DataX_source_code_home} $ mvn -U clean package assembly:assembly -Dmaven.test.skip=true
打包成功,日志显示如下:
[INFO] BUILD SUCCESS [INFO] ----------------------------------------------------------------- [INFO] Total time: 08:12 min [INFO] Finished at: 2015-12-13T16:26:48+08:00 [INFO] Final Memory: 133M/960M [INFO] -----------------------------------------------------------------
打包成功后的DataX包位于 {DataX_source_code_home}/target/datax/datax-bin/ ,结构如下:
$ cd {DataX_source_code_home} $ ls ./target/datax/datax-bin/ bin conf job lib log log_perf plugin script tmp
-
-
配置示例:从stream读取数据并打印到控制台
-
第一步、创建创业的配置文件(json格式)
可以通过命令查看配置模板: python datax.py -r {YOUR_READER} -w {YOUR_WRITER}
例如:python datax.py -r streamreader -w streamwriter
$ cd {YOUR_DATAX_HOME}/bin $ python datax.py -r streamreader -w streamwriter DataX (UNKNOWN_DATAX_VERSION), From Alibaba ! Copyright (C) 2010-2015, Alibaba Group. All Rights Reserved. Please refer to the streamreader document: * [streamreader.md](https://github.com/Arvin-Mark/DataX-src/blob/master/streamreader/doc/streamreader.md) Please refer to the streamwriter document: * [streamwriter.md](https://github.com/Arvin-Mark/DataX-src/blob/master/streamwriter/doc/streamwriter.md) Please save the following configuration as a json file and use python {DATAX_HOME}/bin/datax.py {JSON_FILE_NAME}.json to run the job. { "job": { "content": [ { "reader": { "name": "streamreader", "parameter": { "column": [], "sliceRecordCount": "" } }, "writer": { "name": "streamwriter", "parameter": { "encoding": "", "print": true } } } ], "setting": { "speed": { "channel": "" } } } }
根据模板配置json如下:
#stream2stream.json { "job": { "content": [ { "reader": { "name": "streamreader", "parameter": { "sliceRecordCount": 10, "column": [ { "type": "long", "value": "10" }, { "type": "string", "value": "hello,你好,世界-DataX" } ] } }, "writer": { "name": "streamwriter", "parameter": { "encoding": "UTF-8", "print": true } } } ], "setting": { "speed": { "channel": 5 } } } }
-
第二步:启动DataX
$ cd {YOUR_DATAX_DIR_BIN} $ python datax.py ./stream2stream.json
同步结束,显示日志如下:
... 2015-12-17 11:20:25.263 [job-0] INFO JobContainer - 任务启动时刻 : 2015-12-17 11:20:15 任务结束时刻 : 2015-12-17 11:20:25 任务总计耗时 : 10s 任务平均流量 : 205B/s 记录写入速度 : 5rec/s 读出记录总数 : 50 读写失败总数 : 0
-
目前DataX支持的数据源有:
Reader实现了从数据存储系统批量抽取数据,并转换为DataX标准数据交换协议,DataX任意Reader能与DataX任意Writer实现无缝对接,达到任意异构数据互通之目的。
RDBMS 关系型数据库
- MysqlReader: 使用JDBC批量抽取Mysql数据集。
- OracleReader: 使用JDBC批量抽取Oracle数据集。
- SqlServerReader: 使用JDBC批量抽取SqlServer数据集
- PostgresqlReader: 使用JDBC批量抽取PostgreSQL数据集
- DrdsReader: 针对公有云上DRDS的批量数据抽取工具。
数仓数据存储
- ODPSReader: 使用ODPS Tunnel SDK批量抽取ODPS数据。
NoSQL数据存储
- OTSReader: 针对公有云上OTS的批量数据抽取工具。
- HBaseReader: 针对 HBase 0.94版本的在线数据抽取工具
- MongoDBReader:MongoDBReader
无结构化数据存储
- TxtFileReader: 读取(递归/过滤)本地文件。
- FtpReader: 读取(递归/过滤)远程ftp文件。
- HdfsReader: 针对Hdfs文件系统中textfile和orcfile文件批量数据抽取工具。
- OssReader: 针对公有云OSS产品的批量数据抽取工具。
- streamreader:StreamReader
- rdbmsreader:rdbmsreader
Writer实现了从DataX标准数据交换协议,翻译为具体的数据存储类型并写入目的数据存储。DataX任意Writer能与DataX任意Reader实现无缝对接,达到任意异构数据互通之目的。
RDBMS 关系型数据库
- MysqlWriter: 使用JDBC(Insert,Replace方式)写入Mysql数据库
- OracleWriter: 使用JDBC(Insert方式)写入Oracle数据库
- PostgresqlWriter: 使用JDBC(Insert方式)写入PostgreSQL数据库
- SqlServerWriter: 使用JDBC(Insert方式)写入sqlserver数据库
- DrdsWriter: 使用JDBC(Replace方式)写入Drds数据库
数仓数据存储
- ODPSWriter: 使用ODPS Tunnel SDK向ODPS写入数据。
- ADSWriter: 使用ODPS中转将数据导入ADS。
NoSQL数据存储
- OTSWriter: 使用OTS SDK向OTS Public模型的表中导入数据。
- hbasewriter:hbasewriter
- OCSWriter:OCSWriter
- MongoDBWriter:MongoDBWriter
无结构化数据存储
- TxtFileWriter: 提供写入本地文件功能。
- ftpwriter:ftpwriter
- OssWriter: 使用OSS SDK写入OSS数据。
- HdfsWriter: 提供向Hdfs文件系统中写入textfile文件和orcfile文件功能。
- StreamWriter:StreamWriter
- rdbmswriter:rdbmswriter
- adswriter
- drdsreader
- drdswriter
- ftpreader
- ftpwriter
- hbase
- hbase094xreader
- hbase11xreader
- hbase11xwriter
- hbasereader
- hbasewriter
- hdfsreader
- hdfswriter
- mongodbreader
- mongodbwriter
- mysqlreader
- mysqlwriter
- ocswriter
- odpsreader
- odpswriter
- oraclereader
- oraclewriter
- ossreader
- osswriter
- otsreader
- otswriter
- postgresqlreader
- postgresqlwriter
- rdbmsreader
- rdbmswriter
- sqlserverreader
- sqlserverwriter
- streamreader
- streamwriter
- txtfilereader
- txtfilewriter
Google Groups: DataX-user