DataX

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

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

二、环境要求

1、Linux

2、JDK(1.6以上,推荐1.6)

3、Python(推荐Python2.6.X)

4、Apache 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各个插件配置模板和参数说明