DataX使用以及安装

DataX的概述

DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能。

DataX开源地址:https://github.com/alibaba/DataX

安装步骤如下:

1.前置条件

DataX需要有JDK(1.8版本,推荐使用1.8)、Python(推荐使用Python2.7.x)、Apache Maven 3..x(编译打包DataX)。

2.开始安装

   下载DataX包,可以使用开源地址进行下载,下载完成之后,对文件进行解压。

3.测试

进入bin目录下,开始进行测试,运行一下命令

python datax.py ../job/job.json

运行结果如下图,表明DataX已经能够正常使用。

运行期间可能会发生的问题:

命令行中文乱码问题

解决方法:在运行测试命令时,输入CHCP 65001,在执行测试命令即可。

自定义配置文件,以oracle导向MySQL为例,样本如下:

{
    "job": {
        "setting": {
			//配置的是全局的字节速度,也可通过core.json配置每个channel的字节速度。
			//DataX有两种方式控制速度,一种为byte,一种为record
            "speed": {
                "byte":104857
            },
			//脏数据配置,如果超过当前的阈值,会触发回滚。
            "errorLimit": {
                "record": 0,
                "percentage": 0.02
            }
        },
        "content": [
            {	
				//reader和writer的name参数必须
				//和DataX包下的plugin下的reader和writer的用到的相应的plugin.json的name对应
                "reader": {
                    "name": "oraclereader",
                    "parameter": {
                        "username": "",
                        "password": "",
                        "connection": [
                            {
                                "querySql": [
                                    "select name,id from test"
                                ],
                                "jdbcUrl": ["jdbc:oracle:thin:@localhost:1521:orcl"]
                            }
							
                        ]
                    }
                },
                "writer": {
                    "name": "mysqlwriter",
                    "parameter": {
                        "writeMode": "insert",
                        "username": "",
                        "password": "",
                        "column": [
                            "name","id"
                        ],
                        "preSql": [
                            "delete from test"
                        ],
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8",
                                "table": [
                                    "test"
                                ]
                            }
                        ]
                    }
                }
            }
        ]
    }
}

注意:使用样本时,需要把注释行全部删掉,否则会影响之后的Java解析JSON程序。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章