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

简介: 概述 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左右编译时间,具体视下载速度和机器性能而定):

fb3a20a220799ae3b890ea64cdd2f86d5cd2e430

常见错误:

  • 在第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),如下:

53a3f40cd498be6ac0825de03e1ed70815a36cf8

不在这个表格中的数据源格式你可以通过自定义插件编写,具体编码可参考: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,执行后控制台输出:038be265e5cb239b0be5f6e6f31c7295550d1021

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

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

95185e59281f49e696c40cdffb235d7ac88430b5

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

9f9ed3e3b0ed82de488fd772b3a40c55de1e2094


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


文章转自:空山雪林 Sumslack团队


更多交流咨询欢迎加入“MaxCompute开发者社区”钉钉群,群号: 11782920,或扫描二维码入群。

https://www.aliyun.com/product/odps
image

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
1月前
|
DataWorks 安全 关系型数据库
DataWorks常见问题之使用公共数据集成资源组进行同步失败如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
|
28天前
|
SQL 分布式计算 DataWorks
DataWorks提供的数据同步类型不仅包括整库离线同步
【2月更文挑战第31天】DataWorks提供的数据同步类型不仅包括整库离线同步
21 8
|
6月前
|
SQL 分布式计算 DataWorks
可以使用HiveSyncTask任务将HDFS中的数据同步到MaxCompute中
可以使用HiveSyncTask任务将HDFS中的数据同步到MaxCompute中
51 2
|
28天前
|
SQL 分布式计算 DataWorks
DataWorks不仅提供单表离线模式,还支持多种数据同步任务类型。
【2月更文挑战第31天】DataWorks不仅提供单表离线模式,还支持多种数据同步任务类型。这些类型包括整库离线同步(一次性全量同步、周期性全量同步、离线全增量同步、一次性增量同步、周期性增量同步)以及一键实时同步(一次性全量同步,实时增量同步)。此外,DataWorks还提供了数据类型转换的功能,您可以选择在源端和目标端使用相同的数据类型以避免数据类型转换,或者在源端和目标端使用不同的数据类型,然后在同步时手动转换数据类型。
23 6
|
1月前
|
DataWorks NoSQL MongoDB
DataWorks常见问题之如何集成离线数据
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
43 1
|
4月前
|
消息中间件 DataWorks NoSQL
dataworks离线数据集成,源库或目标库是MC时,走的是Tunnel? 还是走的是datax啊?
dataworks离线数据集成,源库或目标库是MC时,走的是Tunnel? 还是走的是datax啊?
111 0
|
4月前
|
存储 DataWorks NoSQL
在DataWorks的数据集成中,对于Tablestore数据源的增量同步,你可以按照以下步骤进行配置:
在DataWorks的数据集成中,对于Tablestore数据源的增量同步,你可以按照以下步骤进行配置:
32 2
|
5月前
|
分布式计算 DataWorks 关系型数据库
MaxCompute支持通过DataWorks数据集成功能将其他数据源数据同步至MaxCompute
MaxCompute支持通过DataWorks数据集成功能将其他数据源数据同步至MaxCompute
36 1
|
8月前
|
SQL 消息中间件 JSON
4、离线数仓数据同步策略(全量表数据同步、增量表数据同步、首日同步、采集通道脚本)(二)
4、离线数仓数据同步策略(全量表数据同步、增量表数据同步、首日同步、采集通道脚本)(二)
|
8月前
|
消息中间件 canal SQL
4、离线数仓数据同步策略(全量表数据同步、增量表数据同步、首日同步、采集通道脚本)(一)
4、离线数仓数据同步策略(全量表数据同步、增量表数据同步、首日同步、采集通道脚本)(一)

相关产品

  • 云原生大数据计算服务 MaxCompute