DataX 简介

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

 

安装与使用

环境要求

– JDK(1.8以上,推荐1.8)
– Python(推荐Python2.6.X)

 

下载解压

 下载地址

 源码地址

 

下载后直接解压,解压后目录如下

进入 bin 目录

 

使用方法

直接执行如下命令即可

python datax.py test.json

test.json 为配置文件,标明了 数据源 和 迁移后的路径

 

datax json 配置示例

本地到本地

复制代码
{
    "setting": {},
    "job": {
        "setting": {
            "speed": {
                "channel": 2
            }
        },
        "content": [
            {
                "reader": {
                    "name": "txtfilereader",
                    "parameter": {
                        "path": ["E:\\test.csv"],
                        "encoding": "UTF-8",
                        "column": [
                            {
                                "index": 0,
                                "type": "long"
                            },
                            {
                                "index": 1,
                                "type": "long"
                            },
                            {
                                "index": 2,
                                "type": "long"
                            }
                        ],
                        "fieldDelimiter": ",",
                        "skipHeader": "False"
                    }
                },
                "writer": {
                    "name": "txtfilewriter",
                    "parameter": {
                        "path": "E:\\test",
                        "fileName": "test",
                        "writeMode": "truncate",
                        "format": "yyyy-MM-dd",
                        "header":['id', 'name', 'age']
                    }
                }
            }
        ]
    }
}
复制代码

更多示例见参考文档,或者查阅官网,即 “了解更多” 章节

 

使用异常记录

1. 默认支持的是 python2,如果想用 python3,需要把 datax.py 等文件的代码改成 python3 语法,不过貌似只是 print 加 括号就行了

2. 数据库中的数据中文乱码解决:在 json 文件中 jdbcUrl 项加上:?characterEncoding=utf8

"jdbcUrl": ["jdbc:mysql://127.0.0.1:3306/dq?characterEncoding=utf8"]

3. 运行 datax.py 后出现乱码,在 cmd 中 输入 CHCP 65001    【仅适用于 windows】 

 

了解更多

 阿里云开源离线同步工具DataX3.0介绍

 

原理篇

未完待续...

 

 

 

参考资料:

https://zhuanlan.zhihu.com/p/163710564   最简使用教程

https://www.cnblogs.com/longbing/p/9430084.html  dataX json配置    mysql2mysql、mysql到本地、HDFS打印到本地控制台、orcle打印到Linux

https://www.cnblogs.com/qingyunzong/p/9759993.html  DataX的使用