使用DataX进行数据同步

DataX 是一个异构数据源离线同步工具,可以实现数据源之间的数据同步。
ODPSWriter插件适合于TB,GB数量级的数据传输,如果需要传输PB量级的数据,可以选择dt task工具 ;

工具下载

  • 下载DataX
    wget http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz
  • 解压DataX
    tar zxvf datax.tar.gz
  • 修改权限
    chmod R 755 datax

使用方法

通过json文件进行配置,直接通过datax\bin下的datax.py文件启动
因为datax.py中的print方式为python2的方式,所以使用python2启动脚本。
python datax.py ..\job\job.json

官方git地址:https://github.com/alibaba/DataX

配置样例

  1. 内存同步到控制台
{
    "job": {
        "setting": {
            "speed": {"channel": 1}
        },
        "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
               }
        }
    }
}
  1. Mysql之间的同步
{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                        "column": [              
                            "id",
                            "name"
                        ],
                        "connection": [
                            {
                                "jdbcUrl": ["jdbc:mysql://<主机>:<端口号>/<数据库>"],     #作为reader的jdbcUrl需要是数组的形式,可以传入多个。
                                "table": ["表名"]
                            }
                        ],
                        "password": "",
                        "username": ""
                    }

                },
                "writer": {
                    "name": "mysqlwriter",
                    "parameter": {
                        "column": [
                            "id",
                            "name"
                        ],
                        "connection": [
                            {
                                "jdbcUrl": "jdbc:mysql://<主机>:<端口号>/<数据库>",
                                "table": ["表名"]
                            }
                        ],
                        "password": "",
                        "username": ""
                    }

                }
            }
        ],
        "setting": {
            "speed": {
                "channel": 1
           }
        }
    }
}
  1. MySQL同步到ODPS
{
    "job": {
        "setting": {
            "speed": {"byte": 1048576}
        },
        "content": [
            {
                "reader": {
                    "name": "mysqlreader",
                    "parameter": {
                        "column": [ # 对应的列名 "id", "name" ],
                        "connection": [ { "jdbcUrl": ["jdbc:mysql://<主机>:<端口号>/<数据库>"], "table": ["表名"] } ],
                        "password": "",
                        "username": "" }
                },
               "writer": {
                    "name": "odpswriter",
                    "parameter": {
                        "project": "",
                        "table": "",
                        "column": ["id", "name"],
                        "accessId": "",
                        "accessKey": "",
                        "truncate": true,
                        "odpsServer": "http://service.odps.aliyun.com/api",
                        "tunnelServer": "http://dt.odps.aliyun.com",
                        "accountType": "aliyun" }
                }
            }
        ]
    }
}

你可能感兴趣的:(数据库)