前言:
最近比较清闲,又是学习的一天,今天来和大家分享一下阿里的离线数据同步神器——DataX3.0。
目前来说,虽然DataX具有一个全面的插件体系,几乎涵盖了所有的主流数据源,但因为其在使用过程中,编写配置文件其实是一件比较麻烦的事,所以我司只在一些特别的数据源同步任务的时候对其进行了使用,例如今天要和大家分享的,如何使用DataX同步Mogodb的数据到Hive与Mysql。废话不多说,献上干货。
DataX3.0概览
Github主页地址:https://github.com/alibaba/DataX/blob/master/introduction.md
DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。
设计理念
为了解决异构数据源同步问题,DataX将复杂的网状的同步链路变成了星型数据链路,DataX作为中间传输载体负责连接各种数据源。当需要接入一个新的数据源的时候,只需要将此数据源对接到DataX,便能跟已有的数据源做到无缝数据同步。
DataX3.0框架设计
DataX本身作为离线数据同步框架,采用Framework + plugin架构构建。将数据源读取和写入抽象成为Reader/Writer插件,纳入到整个同步框架中。
Reader:Reader为数据采集模块,负责采集数据源的数据,将数据发送给Framework。
Writer:Writer为数据写入模块,负责不断向Framework取数据,并将数据写入到目的端。
Framework:Framework用于连接reader和writer,作为两者的数据传输通道,并处理缓冲,流控,并发,数据转换等核心技术问题。