DATAX 数据同步框架入门

一、前言

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

二、下载安装

2.1、Python安装

#Python各个版本下载地址
https://www.python.org/ftp/python/2.7.6/
#下载Python
wget https://www.python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz

2.2、DATAX安装

#下载DATAX
wget http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz
#解压DATAX
tar zxf datax.tar.gz
#删除datax/plugin目录下._文件
rm -rf datax/plugin/*/._*
#检测是否安装成功,打印无报错,安装成功,否则安装失败。
cd  datax/bin
python datax.py ../job/job.json

2.3、测试结果

test.png

2.4、查看数据库之间查询json模板(例如:mysql--->To--->mysql)

python datax.py -r mysqlreader -w mysqlwriter

test.png

test.png

三、数据同步案例

3.1、mysql数据库与mysql数据库 之间数据同步----->mysqlTomysql

3.1.1、mysqlTomysql.json文件

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                     "column": ["a","b","c"],
                        "connection": [
                            {
                                "jdbcUrl": ["jdbc:mysql://127.0.0.1:3306/dd1?useUnicode=true&characterEncoding=utf8"],
                                "table": ["aa"]
                            }
                        ],
                        "password": "12345678",
                        "username": "root",
                        "where": ""
                    }
                },
                "writer": {
                    "name": "mysqlwriter",
                    "parameter": {
                     "column": ["a","b","c"],
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://127.0.0.1:3306/dd2?useUnicode=true&characterEncoding=utf8",
                                 "table": ["aa"]
                            }
                        ],
                        "password": "12345",
                        "preSql": [],
                        "session": [],
                        "username": "root",
                        "writeMode": "update"
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": "1"
            }
        }
    }
}

3.1.2、mysqlTomysql.json测试结果

test.png

3.2、oracle数据库与mysql数据库 之间数据同步----->oracleTomysql

oracleTomysql.json文件

{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "oraclereader", 
                    "parameter": {
					"column": ["*"], 
                        "connection": [
                            {
                                "jdbcUrl": ["jdbc:oracle:thin:@127.0.0.1:1521/orcl"], 
                                "table": ["aa"]
                            }
                        ], 
                        "password": "aaa", 
                        "username": "c##aa"
                    }
                }, 
                "writer": {
                    "name": "mysqlwriter", 
                    "parameter": {
                        "column": ["*"], 
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://127.0.0.1:3306/dzda3?useUnicode=true&characterEncoding=utf8", 
                                 "table": ["aa"]
                            }
                        ], 
                        "password": "123456", 
                        "preSql": [], 
                        "session": [], 
                        "username": "root", 
                        "writeMode": "insert"
                    }
                }
            }
        ], 
        "setting": {
            "speed": {
                "channel": "1"
            }
        }
    }
}

注意:window环境下运行时,会产生乱码,再执行同步前,先执行以下语句,处理乱码CHCP 65001

CHCP 65001

posted on 2026-08-10 15:36  爱河  阅读(2)  评论(0)    收藏  举报

导航