1、架构图

DataX架构图.png

  1. DataX接收到一个Job之后,将启动一个进程来完成整个作业同步过程
  2. 会根据不同的源端切分策略,将Job切分成多个小的Task(子任务);
  3. 切分多个Task之后,DataX Job会调用Schedule模块,根据配置的并发数据量,将上一步拆分成的Task重新组合,组装成TaskGroup(任务组),每一个TaskGroup负责以一定并发运行完毕分配好的所有Task,默认单个任务组的并发数量为5;
  4. TaskGroup里面的Task都有TaskGroup来启动,会固定启动Reader->Channel->Writer的线程来完成任务同步工作;
  5. DataX作业运行起来之后,Job监控并等待多个TaskGroup模块任务完成,等待所有TaskGroup任务完成后Job完成退出。否则,异常退出,进行退出值非0

2、运行流程举例

用户提交了一个DataX作业,并配置了20个并发,目的是将一个100张表的mysql同步到mysql里
DataX的调度意思是 :

  1. DataXJob根据表分成100个Task
  2. 根据20个并发,DataX计算供需要分配4个TaskGroup(默认单个任务组的并发数据量为5)
  3. 4个TaskGroup平均切分好100个Task,每一个TaskGroup负责以5个并发共计运行25个Task

3、阐述

DataX是不支持自动创建目标表的

DataX当前只支持一张表的同步,如果是分库分表相同列,是支持多张表同步的(表结构相同)。也就是说目的表的表名称。支持写入一个或者多个表。当配置为多张表时,必须确保所有表结构保持一致

待更新...


journey
32 声望20 粉丝