前言
大数据部门现阶段ETL按同步方式分为两种:
- 实时同步:DTS、CloudCanal
- 离线同步:dataworks-DI节点
但CloudCanal在使用中出现了部分问题,归纳总结后主要为以下几点:
- 部分使用场景获取不到binlog点位
- 停止任务,修改数据源ip后,重启任务源端ip不变
- 业务库增加,会导致表数据终止增量同步任务
- 停止任务后,启动任务或进行位点回溯,任务异常无法恢复
基于以上背景,需要调研新的同步工具用于辅助或取代CloudCanal工具的使用
一 DataX 简介及架构原理
1.1 概述
DataX是阿里巴巴使用 Java 和 Python 开发的一个异构数据源离线同步工具;致力于实现包括关系型数据库MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute、DRDS等各种异结构数据源之间稳定高效的数据同步功能。下图为DataX支持的数据源:
类型 |
数据源 |
Reader(读) |
Writer(写) |
RDBMS 关系型数据库 |
MySQL |
√ |
√ |
Oracle |
√ |
√ |
|
OceanBase |
√ |
√ |
|
SQLServer |
√ |
√ |
|
PostgreSQL |
√ |
√ |
|
DRDS |
√ |
√ |
|
通用RDBMS |
√ |
√ |
|
阿里云数仓数据存储 |
ODPS |
√ |
√ |
ADS |
√ |
||
OSS |
√ |
√ |
|
OCS |
√ |
√ |
|
NoSQL数据存储 |
OTS |
√ |
√ |
Hbase0.94 |
√ |
√ |
|
Hbase1.1 |
√ |
√ |
|
Phoenix4.x |
√ |
√ |
|
Phoenix5.x |
√ |
√ |
|
MongoDB |
√ |
√ |
|
Hive |
√ |
√ |
|
Cassandra |
√ |
√ |
|
无结构化数据存储 |
TxtFile |
√ |
√ |
FTP |
√ |