DataX入门
1.DataX
1.1介绍
DataX 是阿里巴巴集团内被广泛使用的异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、MaxCompute(原ODPS)、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。
DataX本身作为离线数据同步框架,采用Framework + plugin架构构建。将数据源读取和写入抽象成为Reader/Writer插件,纳入到整个同步框架中。目前已经有了比较全面的插件体系,主流的RDBMS数据库、NOSQL、大数据计算系统都已经接入。
DataX目前支持数据如下:
1.2设计理念
为了解决异构数据源同步问题,DataX将复杂的网状的同步链路变成了星型数据链路,DataX作为中间传输载体负责连接各种数据源。当需要接入一个新的数据源的时候,只需要将此数据源对接到DataX,便能跟已有的数据源做到无缝数据同步。
1.3框架设计
DataX本身作为离线数据同步框架,采用Framework + plugin架构构建。将数据源读取和写入抽象成为 Reader/Writer插件,纳入到整个同步框架中。
Reader:Reader为数据采集模块,负责采集数据源的数据,将数据发送给Framework。
Writer: Writer为数据写入模块,负责不断向Framework取数据,并将数据写入到目的端。
Framework:Framework用于连接reader和writer,作为两者的数据传输通道,并处理缓冲,流控,并发,数据转换等核心技术问题。
DataX 3.0 开源版本支持单机多线程模式完成同步作业运行。详情参考:点我
1.4 优点
1、可靠的数据质量监控(让数据可以完整无损的传输到目的端)
2、丰富的数据转换功能
3、精准的速度控制
4、新版本DataX3.0提供了包括通道(并发)、记录流、字节流三种流控模式,可以随意控制你的作业速度,让你的作业在库可以承受的范围内达到最佳的同步速度。
5、强劲的同步性能
每一种读插件都有一种或多种切分策略,都能将作业合理切分成多个Task并行执行,单机多线程执行模型可以让DataX速度随并发成线性增长。
6、健壮的容错机制(多层次局部/全局的重试)
7、极简的使用体验
下载即可用、详细的日志信息。
2.相关概念
异构数据源
指不同的数据库管理系统之间的数据。在企业信息化建设过程中,由于各业务系统建设和实施数据管理系统的阶段性、技术性以及其它经济和人为因素等因素影响,导致企业在发展过程中积累了大量采用不同存储方式的业务数据,包括采用的数据管理系统也大不相同,从简单的文件数据库到复杂的网络数据库,它们构成了企业的异构数据源。
企业数据源异构性主要表现在3方面:
1. 系统异构,即数据源所依赖的业务应用系统、数据库管理系统乃至操作系统之间的不同构成了系统异构。
2. 模式异构,即数据源在存储模式上的不同。存储模式主要包括关系模式、 对象模式、对象关系模式和文档嵌套模式等几种,其中关系模式(关系数据库)为主流存储模式。同时,即便是同一类存储模式,它们的模式结构可能也存在着差异。例如不同的关系数据管理系统的数据类型等方面并不是完全一致的,如DB2、Oracle、Sybase、Informix、SQL Server 、Foxpro等。
3. 来源异构,即企业内部数据源和外部数据源之间的异构。
3.搭建DataX测试
官网步骤:https://github.com/alibaba/DataX/blob/master/userGuid.md
装完测试了Demo,效果如下:
图中结果和DataX的工作原理是吻合的,加深了理解,另外结果中把任务的执行时间等指标列出来,很清楚。接下来要开始真正运用到项目中配置了。
参考文章:异构数据库、异构数据源、分布式数据库三者的辨析区别
推荐一个公众号,免费领架构师学习资料,每周更新优质文章,能学到很多。