2019独角兽企业重金招聘Python工程师标准>>>

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

概述

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

DataX本身作为数据同步框架,将不同数据源的同步抽象为从源头数据源读取数据的Reader插件,以及向目标端写入数据的Writer插件,理论上DataX框架可以支持任意数据源类型的数据同步工作。同时DataX插件体系作为一套生态系统, 每接入一套新数据源该新加入的数据源即可实现和现有的数据源互通。

离线数据同步在大数据分析,数据备份,数据同步等应用场景中都会被用到,所以本文特别介绍阿里开源的这款神器:DataX!

准备工作

  1. 环境准备:Linux服务器一台,安装有JDK8,maven和python 2.6+;

  2. 下载源码:https://github.com/alibaba/DataX.git

  3. 解压后编译源码:mvn -U clean package assembly:assembly -Dmaven.test.skip=true

出现以下信息,表示编译成功(编译时间稍长,由于DataX支持的数据源很多,对应的依赖包也比较多,所以可能需要20min左右编译时间,具体视下载速度和机器性能而定):

常见错误:

  • 在第3步可能会出现无法编译tablestore-streamclient的错误,请到https://mvnrepository.com/artifact/com.aliyun.openservices/tablestore-streamclient/1.0.0 下载相应的包并放到maven相应路径下;

工具使用

成功编译DataX后,在cd target/datax/datax/目录下就会生成可执行文件,我们就可以来使用DataX同步各种格式的离线数据(具体看参考:https://github.com/alibaba/DataX/blob/master/userGuid.md),如下:

不在这个表格中的数据源格式你可以通过自定义插件编写,具体编码可参考:https://github.com/alibaba/DataX/blob/master/dataxPluginDev.md

比如我们实现一个最简单的任务,将JSON格式化数据输出到控制台:

  1. 切换目录:cd target/datax/datax/bin,比如在我们的192.168.1.63的服务器,切换到目录:/home/data-transfer/datax/target/datax/datax/bin

  2. 查看配置格式命令:python datax.py -r streamreader -w streamwriter

  3. 编写配置文件,stream2stream.json文件如下:

 1{2  "job": {3    "content": [4      {5        "reader": {6          "name": "streamreader",7          "parameter": {8            "sliceRecordCount": 10,9            "column": [
10              {
11                "type": "long",
12                "value": "10"
13              },
14              {
15                "type": "string",
16                "value": "hello,你好,世界-DataX"
17              }
18            ]
19          }
20        },
21        "writer": {
22          "name": "streamwriter",
23          "parameter": {
24            "encoding": "UTF-8",
25            "print": true
26          }
27        }
28      }
29    ],
30    "setting": {
31      "speed": {
32        "channel": 5
33       }
34    }
35  }
36}
  1. 运行脚本:python datax.py ./stream2stream.json,执行后控制台输出:

再比如mysql到mysql的离线数据同步,可使用:
python datax.py -r mysqlreader -w mysqlwriter 获取配置文件模板;

更多的writer可参看plugins目录下的writer文件夹(官方默认包含的Writer,支持自定义可扩展):

更多的reader可参看plugins目录下的reader文件夹(官方默认包含的Reader,支持自定义可扩展):

注:如果要使用离线增量同步数据,可指定配置文件中的where过滤;

原文链接

转载于:https://my.oschina.net/u/1464083/blog/2875555

离线数据同步神器:DataX,支持几乎所有异构数据源的离线同步到MaxCompute相关推荐

  1. 阿里开源数据同步神器DataX异构数据源间数据同步同步MySQL与HDFS相互实战

    Datax 实战使用 继上一篇 阿里开源数据同步神器DataX异构数据源间数据同步基础介绍与快速入门之后的实战篇 1.MySQL-To-HDFS 环境 & 准备说明: 描述: 为了快速搭建测试 ...

  2. datax 定时执行多个job_数据同步神器Datax源码重构

    每日一句永远不要认为我们可以逃避, 我们的每一步都决定着最后的结局, 我们的脚步正在走向我们自己选定的终点.Do not ever think about that we can escape , o ...

  3. 推荐一个开源数据同步神器,支持多种数据源和预警功能!

    DBSyncer是一款开源的数据同步中间件,提供MySQL.Oracle.SqlServer.PostgreSQL.Elasticsearch(ES).Kafka.File.SQL等同步场景. 支持上 ...

  4. 阿里云DataWorks数据集成(DataX)架构实践分享

    阿里云DataWorks数据集成(DataX)架构&实践分享 分享嘉宾:罗海伟 阿里云 编辑整理:约理 中国科学院大学 目录 ▌为什么需要数据集成 数据集成的应用场景 数据集成的角色和地位 ▌ ...

  5. 大数据项目之电商数仓DataX、DataX简介、DataX支持的数据源、DataX架构原理、DataX部署

    文章目录 1. DataX简介 1.1 DataX概述 1.2 DataX支持的数据源 2. DataX架构原理 2.1 DataX设计理念 2.2 DataX框架设计 2.3 DataX运行流程 2 ...

  6. 数据同步工具—DataX 初识

    DataX 初识 DataX 是阿里云 DataWorks数据集成的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台.DataX 实现了包括 MySQL.Oracle.OceanBase. ...

  7. 使用DB查询分析器实现异构数据源中数据表的相互访问

    1  引言   硕士程序员马根峰(CSDN专访马根峰:海量数据处理与分析大师的中国本土程序员)推出的个人作品----万能数据库查询分析器,中文版本DB 查询分析器.英文版本<DB Query A ...

  8. DataX离线数据同步

    目录 1 DataX 2 ODPS同步数据到HDFS HA 配置 Kerberos 配置 域外访问配置 3 HDFS同步数据到另一个HDFS 4 MongoDB同步数据到HDFS 5 带 Kerber ...

  9. 离线数据同步平台datax+报表可视化平台metabase

    datax DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL.Oracle.SqlServer.Postgre.HDFS.Hive.ADS.HBase.TableS ...

最新文章

  1. Git pull[push] 不用每次输入用户名和密码
  2. 如何和老师沟通好博士的申请呢?
  3. runat=server 所代表及隐含的意义
  4. nginx丢弃http包体处理
  5. SAP Spartacus如何创建自定义route页面
  6. 【C语言】数据结构C语言版 实验5 递归
  7. es6 模块的语法严格模式
  8. ieee期刊的科技写作思路曹文平_科学网—怎样向IEEE期刊投稿* - 吴雄君的博文
  9. kubeadm一键搭建kubernetes1.14.1高可用集群
  10. python装饰器@
  11. python的格式化输入_如何在python中读取格式化的输入?
  12. 苹果手机速度慢_安卓手机用户也想体验一下MagSafe充电器?还是算了吧!
  13. 一个根据SortOrder控制排序的存储过程
  14. 【20保研】四川大学计算机学院(软件学院)2019年全国优秀大学生暑期夏令营招生简章...
  15. 在windows下制作grub2引导的多启动U盘(可启动wepe,安装centos7,debian10等)
  16. 麦语言和python区别_放弃文华财经,自己编程实现期货程序化交易
  17. JAVA之假克隆、浅克隆、深克隆
  18. 计算机病毒及其治疗的教案,计算机病毒教案(公开课)原创配套
  19. [PPPOE]RP-PPPOE脚本分析
  20. 托福高频真词List17 // 附托福TPO阅读真题

热门文章

  1. JVM学习(2)——技术文章里常说的堆,栈,堆栈到底是什么,从os的角度总结
  2. 每个程序员都必读的10篇文章
  3. JavaScript 内置对象(二):Date 对象(构造函数、属性和方法)
  4. Eclipse连接MySQL数据库(傻瓜篇)
  5. Python计算机视觉:第六章 图像聚类
  6. 使用ListView实现汽泡短信聊天
  7. Sed教程(一):简介、环境设置、工作流程
  8. 如何用Python实现八大排序算法
  9. 如何用 CSS 和 D3 创作一个抽象的黑白交叠动画
  10. sqlserver阻止保存要求重新建立表的更改