DataX
离线数据同步框架采用FrameWork+plugin架构
将数据源读取和写入抽象成Reader/Writer插件,纳入到整个同步框架中
Reader:为数据采集模块,负责采集数据源的数据,将数据发送给rameWork
Writer:为数据写入模块,负责不断想FrameWork取数据,将数据写入达到目的端
FrameWork:用户连接 Reader 和 Writer ,作为两者的数据传输通道,并处理缓冲,流控,并发,数据转换等核心技术问题
核心架构:
1、DataX完成单个数据通过的作业,我们称之为job,DataX 接受到一个job之后将启动一个进程来完成整个作业的同步过程。DataX job 模块是单个作业的中枢管理节点,承担了数据清理,子任务切分(将单一作业计算转换为多个子 Task )TaskGroup管理等
2、DataX job 启动后会根据不同的远端切分策略,将job切分成多个晓得task 任务,以便于并发执行,Task 便是 DataX作业的最小单元,每一个task都会负责一部分数据的同步工作。
3、切分多个task之后,DataX job会调用 Scheduler模块,根据配置的并发数据量,将拆分的task重新组合,组装成TaskGroup(task 组),每个taskgroup负责一定的并发运行完毕分配好的所以task,默认单个任务组的并发数量为5
4、每一个task都是由TaskGroup负责启动,task启动后,会启动 Reader -> Channel -> Writer 的线程来完成任务同步工作
5、DataX作业运行起来之后, Job监控并等待多个TaskGroup模块任务完成,等待所有TaskGroup任务完成后Job成功退出。否则,异常退出,进程退出值非0