当前位置: > > > DataX - 数据库离线数据采集工具使用详解1(基本介绍、安装配置)

DataX - 数据库离线数据采集工具使用详解1(基本介绍、安装配置)

一、基本介绍

1,什么是 DataX?

(1)DataX 是阿里云 DataWorks 数据集成的开源版本,主要就是用于实现数据间的离线同步。目前 DataX 在阿里巴巴集团内被广泛使用。 
(2)DataX 致力于实现包括关系型数据库(MySQLOracle 等)、HDFSHiveODPSHBaseFTP 等 各种异构数据源(即不同的数据库) 间稳定高效的数据同步功能。

2,DataX 的原理分析

(1)端与端的数据源类型种类繁多,在没有 DataX 之前,端与端的链路会组成一个复杂的网状结构,非常零散,无法将数据同步的核心逻辑抽象出来。

(2)DataX 将复杂的网型同步链路变成了星型数据链路,它作为中间传输载体负责连接各种数据源。当需要接入一个新的数据源时,只需要将此数据源对接到 DataX,便能跟已有的数据源做到无缝的数据同步。
说明DataX 作为数据同步框架,将不同数据源的同步抽象为从源头数据源读取数据的 Reader 插件,以及向目标端写入数据的 Writer 插件,理论上可以支持任意数据源类型的数据同步。另外,DataX 插件体系作为一套生态系统,在每接入一个新数据源时,该新加入的数据源则即可实现和现有的数据源的互通。

3,DataX 的架构设计

(1)DataX 采用“Framework + Plugin”架构构建,会将数据源读取和写入抽象为 Reader/Writer 插件,并将其纳入整个同步框架中。
(2)下面以 MySQL 数据同步到 HDFS 为例来分析 DataX 的架构:
  • ReaderPlugin:数据读取模块,负责读取数据源的数据,并将数据发送给 Framework
  • WriterPlugin:数据写入模块,负责不断从 Framework 读取数据,并将数据写入目的地。
  • Framework:用于连接 ReaderPluginWriterPlugin,作为两者的数据传输通道,并处理缓冲、流控、并发、数据转换等核心技术问题。
注意:可以把 Framework 理解为 Flume 中的 Channel 组件,负责 ReaderPluginWriterPlugin 数据的临时缓冲存储。

4,DataX 的核心模块

(1)DataX 3.0 开源版本支持以单机多线程模式完成同步作业运行。下面是一个 DataX 作业生命周期的时序图,利用它可以从整体架构设计层面简要说明 DataX 各个模块的关系。

(2)各核心模块介绍如下:
  • DataX 的单个数据同步作业被称为 JobDataX 在接收到一个 Job 后,会启动一个进程来完成整个作业同步过程。Job 模块是单个作业的中枢管理节点,承担数据清理、子任务切分(将单一作业计算切分为多个子 Task)、TaskGroup 管理等功能。
  • Job 在启动后,会根据不同的源端切分策略被切分为多个小的 Task(子任务),以便于并发执行。TaskDataX 作业的最小单元,每一个 Task 负责一部分数据的同步工作。
  • 被切分为多个 Task 之后,Job 会调用 Scheduler 模块,根据配置的并发数据量,将拆分的 Task 重新组装成 TaskGroup(任务组)。每一个 TaskGroup 负责以一定的并发数量运行分配好的所有 Task,默认单个 TaskGroup 的并发数量为 5
  • 每一个 Task 都由 TaskGroup 负责启动。Task 在启动后,会固定启动 ReaderChannelWriter 的线程来完成任务同步工作。
  • DataX 作业运行起来后,Job 监控并等待多个 TaskGroup 模块任务完成。等待所有 TaskGroup 任务完成后,Job 成功退出。否则,Job 异常退出,进程退出值非 0

附:安装配置

1,准备工作

(1)服务器需要安装 JDK,版本 1.8 以上(推荐 1.8
(2)服务器需要安装 Python(版本 23 都可以)
注意:如果是 CentOS 7 系统, 就已经自带 Python 2.7 的软件包,不需要进行安装。

2,下载安装包

(1)访问 DataXGitHub 主页(点击访问),获取下载地址并下载:
wget https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202309/datax.tar.gz

(2)然后将 DataX 安装包解压即可:
tar -zxvf datax.tar.gz

(3)最后将解压出来的文件夹拷贝到指定目录(这个可以根据习惯调整目录的位置):
mv datax /usr/local/datax

3,运行测试

(1)进入 dataxbin 目录:
cd /usr/local/datax/bin

(2)执行一下安装包提供的示例任务:
python datax.py ../job/job.json

(3)控制台输出如下内容则说明任务执行完毕,DataX 安装成功。
评论0