基于DataX实现数据互通

基于DataX实现数据互通

更新时间:2017-06-07 13:26:11

一、简介

DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQLSQL ServerOraclePostgreSQLHDFSHiveOceanBaseHBaseOTSODPS 等各种异构数据源之间高效的数据同步功能。

二、环境要求

1Linux

2JDK(1.6以上,推荐1.6.x)

3Python(推荐Python2.6.X)

4Apache Maven 3.x (若不编译DataX不需要)

三、工具部署

方法一、直接下载DataX工具包:DataX

下载后解压至本地某个目录,进入bin目录,即可运行同步作业

$ cd  {YOUR_DATAX_HOME}/bin

$ python datax.py {YOUR_JOB.json}

同步作业配置模板,请参考DataX各个插件配置模板和参数说明

方法二、下载DataX源码,自己编译:DataX源码

(1)、下载DataX源码:

$ git clone git@github.com:alibaba/DataX.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/ ,结构如下:

$ cd  {DataX_source_code_home}

$ ls ./target/datax/datax/

bin        conf              job         lib          log         log_perf       plugin          script           tmp

四、配置示例

例:从stream读取数据并打印到控制台

第一步、创建创业的配置文件(json格式)

#stream2stream.json

{

  “job”: {

    “setting”: {

      “speed”: {

        “channel”: 5

      }

    },

    “content”: [

      {

        “reader”: {

          “name”: “streamreader”,

          “parameter”: {

            “sliceRecordCount”: 10,

            “column”: [

              {

                “type”: “long”,

                ”value”: “10”

              },

              {

                “type”: “string”,

                “value”: “hello,你好,世界-DataX”

              },

              {

                “type”: “double”,

                “value”: “3.141592653”

              },

              {

                “type”: “bytes”,

                “value”: “image”

              },

              {

                “type”: “bool”,

                “value”: “true”

              },

              {

                “type”: “bool”,

                “value”: “5678true”

              },

              {

                “type”: “date”,

                “value”: “2014-10-10”,

                “dateFormat”: “yyyy-MM-dd”

              }

            ]

          }

        },

        “writer”: {

          “name”: “streamwriter”,

          “parameter”: {

            “encoding”: “UTF-8”,

            “print”: true

          }

        }

      }

    ]

  }

}

第二步:启动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开源地址

DataX各个插件配置模板和参数说明