异构跨库数据同步还在用Datax?来看看这几个开源的同步方案

news2024/9/30 19:33:36

在遇到跨库或者异库数据同步时,我们一般都会借助ETL工具来实现数据同步功能。比如目前大家较为熟知的KettleDatax。但是,这两个需要定时去查询数据库的数据,会存在一定的延迟,而且,默认采用全量同步的方式,想要增量,需要自己做特殊的处理。那么,有没有开源的工具,既能满足全量和增量,又能达到相对比较实时的呢?接下来,我们继续往下看。

Kettle

在ETL行列中,kettle算是人气比较旺的一款工具,功能多且强大,开源,可视化。使用方便、简洁,但是,体量越来越大,性能一般。

可以自己下载源码编译,要求Maven 3+Java JDK 11

GitHub - pentaho/pentaho-kettle: Pentaho Data Integration ( ETL ) a.k.a Kettle

DataX

DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS, databend 等各种异构数据源之间高效的数据同步功能。

类型数据源Reader(读)Writer(写)文档
RDBMS 关系型数据库MySQL读 、写
Oracle读 、写
OceanBase读 、写
SQLServer读 、写
PostgreSQL读 、写
DRDS读 、写
Kingbase读 、写
通用RDBMS(支持所有关系型数据库)读 、写
阿里云数仓数据存储ODPS读 、写
ADB
ADS
OSS读 、写
OCS
Hologres
AnalyticDB For PostgreSQL
阿里云中间件datahub读 、写
SLS读 、写
阿里云图数据库GDB读 、写
NoSQL数据存储OTS读 、写
Hbase0.94读 、写
Hbase1.1读 、写
Phoenix4.x读 、写
Phoenix5.x读 、写
MongoDB读 、写
Cassandra读 、写
数仓数据存储StarRocks读 、写
ApacheDoris
ClickHouse
Databend
Hive读 、写
kudu
无结构化数据存储TxtFile读 、写
FTP读 、写
HDFS读 、写
Elasticsearch
时间序列数据库OpenTSDB
TSDB读 、写
TDengine读 、写

GitHub - alibaba/DataX: DataX是阿里云DataWorks数据集成的开源版本。

DataX-Web

前面提到DataX,那么就不得不提一下DataX-Web,DataX没有可视化界面,不过目前,已经有热心开基于DataX开发了对应的Web界面。DataX Web是在DataX之上开发的分布式数据同步工具,提供简单易用的 操作界面,降低用户使用DataX的学习成本,缩短任务配置时间,避免配置过程中出错。用户可通过页面选择数据源即可创建数据同步任务,支持RDBMS、Hive、HBase、ClickHouse、MongoDB等数据源,RDBMS数据源可批量创建数据同步任务,支持实时查看数据同步进度及日志并提供终止同步功能,集成并二次开发xxl-job可根据时间、自增主键增量同步数据。

任务”执行器”支持集群部署,支持执行器多节点路由策略选择,支持超时控制、失败重试、失败告警、任务依赖,执行器CPU.内存.负载的监控等等。后续还将提供更多的数据源支持、数据转换UDF、表结构同步、数据同步血缘等更为复杂的业务场景。

GitHub - WeiYe-Jing/datax-web: DataX集成可视化页面,选择数据源即可一键生成数据同步任务,支持RDBMS、Hive、HBase、ClickHouse、MongoDB等数据源,批量创建RDBMS数据同步任务,集成开源调度系统,支持分布式、增量同步数据、实时查看运行日志、监控执行器资源、KILL运行进程、数据源信息加密等。

Airbyte

一款开源的可视化ETL功能,支持很多数据源,并且支持全量及增量同步。

GitHub - airbytehq/airbyte: Data integration platform for ELT pipelines from APIs, databases & files to warehouses & lakes.

benthos

Benthos 是一个开源的、高性能和弹性的数据流处理器,支持多种方式的数据接入、加工、转换。

GitHub - benthosdev/benthos: Fancy stream processing made operationally mundane

canal

阿里巴巴开源的MySQL binlog 增量订阅&消费组件,基于日志只能做增量同步,很多工作需要自己处理。

https://github.com/alibaba/canal.git

Maxwell

也是监听MySQL binlog,并将数据更解析为JSON写入到Kafka等其他流媒体平台。

GitHub - zendesk/maxwell: Maxwell's daemon, a mysql-to-json kafka producer

debezium

Debezium是一个捕获数据更改(CDC)平台,并且利用Kafka和Kafka Connect实现了自己的持久性、可靠性和容错性。每一个部署在Kafka Connect分布式的、可扩展的、容错性的服务中的connector监控一个上游数据库服务器,捕获所有的数据库更改,然后记录到一个或者多个Kafka topic(通常一个数据库表对应一个kafka topic)。Kafka确保所有这些数据更改事件都能够多副本并且总体上有序(Kafka只能保证一个topic的单个分区内有序),这样,更多的客户端可以独立消费同样的数据更改事件而对上游数据库系统造成的影响降到很小(如果N个应用都直接去监控数据库更改,对数据库的压力为N,而用debezium汇报数据库更改事件到kafka,所有的应用都去消费kafka中的消息,可以把对数据库的压力降到1)。另外,客户端可以随时停止消费,然后重启,从上次停止消费的地方接着消费。每个客户端可以自行决定他们是否需要exactly-once或者at-least-once消息交付语义保证,并且所有的数据库或者表的更改事件是按照上游数据库发生的顺序被交付的。

GitHub - debezium/debezium: Change data capture for a variety of databases. Please log issues at https://issues.redhat.com/browse/DBZ.

Apache Flink®的CDC连接器集成了Debezium作为捕获数据更改的引擎。虽然功能强大,但是比较重。
 

GitHub - ververica/flink-cdc-connectors: CDC Connectors for Apache Flink®

目前,异构数据ETL同步,一般基于两种方式:查询和日志,基于查询做全量同步,基于日志做增量同步,日志方式延迟会比较小,查询来做增量,延迟会比较大,查询频率越高,对数据库性能也会有影响。随着各种热门技术的兴起,在Github中也有越来越多的解决方案,我们可以根据自己的实际情况选择合适自己的工具。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/585525.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java Spring概述

文章目录 1、Spring是什么?2、Spring 的狭义和广义3、Spring Framework特点4、Spring模块组成5、Spring6版本要求 1、Spring是什么? Spring 是一款主流的 Java EE 轻量级开源框架 ,Spring 由“Spring 之父”Rod Johnson 提出并创立&#xff…

AD原理图元器件封装绘制

元器件封装界面 1.元器件可以新建原理图库,然后在新建的库中添加 2.采用下图中的方式,随便右键某个库中的元器件,选择“Edit…”,进入到元器件封装绘制界面 元器件封装设计步骤 1.点击工具——新器件 输入新器件ID&#xff0c…

性能测试监控平台:InfluxDB+Grafana+Jmeter

前言 性能测试工具jmeter自带的监视器对性能测试结果的实时展示,在Windows系统下的GUI模式运行,渲染和效果不是太好,在linux环境下又无法实时可视化。 2023年最新出炉性能测试教程,真实企业性能压测全流程项目实战训练大合集&am…

软件测试:测试用例详解

一、通用测试用例八要素   1、用例编号;    2、测试项目;   3、测试标题; 4、重要级别;    5、预置条件;    6、测试输入;    7、操作步骤;    8、预期输出 二、具体分析通…

微信支付Native下单API V3接口开发详解

这几天做微信支付Native下单接口调用、签名这块,弄的我焦头烂额,翻了很多网上配置,各有不同,写的不清不楚,只能自己慢慢研究,尝试了无数种解决坑的方案,嚼文咬字看官方的文档调试,文…

从零开始学Android开发期末复习重点

目录 前言作业1作业2作业3作业4作业5作业6 前言 物联网应用技术课程期末复习重点——学习通作业: 操作系统:Ubuntu22.04 作业1 简述Android系统架构。 Android 的系统架构和它的操作系统一样&#xff…

前端开发需要学什么?零基础前端学习路线看这一篇就够了!

是的,自学前端可以帮助您找到工作,参加培训是根据个人学习能力和经济实力来自己决定的。前端开发是一个相对容易入门的领域,并且许多人通过自学成功地找到了前端开发的工作。以下是好程序员的一些建议,可以帮助您在自学前端时提高…

离线语音控制新方案,NRK3303语音识别芯片在智能风扇的应用

随着科技的不断发展,智能家居已经成为人们日常生活中不可或缺的一部分,涌现出越来越多的智能设备,如智能门锁、智能灯泡、智能冰箱等,这些设备为人们的生活带来了更多的便利和创新。其中作为常见的风扇通过添加智能语音控制功能&a…

分布式运用之Filebeat+Kafka+ELK 的服务部署

1. Kafka 架构深入了解 1.1 Kafka 工作流程及文件存储机制 Kafka 中消息是以 topic 进行分类的,生产者生产消息,消费者消费消息,都是面向 topic 的。 topic 是逻辑上的概念,而 partition 是物理上的概念,每个 parti…

路径规划算法:基于哈里斯鹰优化的路径规划算法- 附代码

路径规划算法:基于哈里斯鹰优化的路径规划算法- 附代码 文章目录 路径规划算法:基于哈里斯鹰优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化…

leetcode 2.两数相加(链表操作)

题目描述跳转到leetcode 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&#xff0…

消除字母-第14届蓝桥杯省赛Scratch中级组真题第6题

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第141讲。 消除字母,本题是2023年5月7日举行的第14届蓝桥杯省赛Scratch图形化编程中级组真题第6题&#xf…

Windows提权:利用MySQL数据库

目录 数据库提权的基本条件 MySQL UDF提权 什么是UDF UDF如何应用到提权 利用思路 MSF提权实战 MySQL 启动项提权 原理:通过MySQL数据库把木马写到Windows启动项中 Windows启动项位置 MSF提权利用实战 MySQL 反弹shell提权 数据库提权的基本条件 知道数据…

路径规划算法:基于鸟群优化的路径规划算法- 附代码

路径规划算法:基于鸟群优化的路径规划算法- 附代码 文章目录 路径规划算法:基于鸟群优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化算法鸟群…

Linux:centos:计划任务管理《at》

date 查看当前时间或管理时间 年-月-日 周几 时间 时间标准 如果想把他改成2024年6月1日12:30 使用 date 060112302024 06 6月 01 1日 1230 12:30 2024 2024年 使用at之前要安装他 有些用户没有安装的情况下 最好使…

死锁的成因和解决方案

死锁🔒的成因和解决方案📑 锁是操作系统和程序语言中常用的同步机制,用于保证共享资源的互斥访问,防止多个线程或进程同时访问共享资源,导致数据不一致或程序崩溃。 死锁是我们在进行并发编程中需要时刻避免的一个问…

路径规划算法:基于引力搜索优化的路径规划算法- 附代码

路径规划算法:基于引力搜索优化的路径规划算法- 附代码 文章目录 路径规划算法:基于引力搜索优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化…

iPhone遇到错误53该如何快速修复?

在所有手机中,iphone是出现问题较少的一款手机,但有时候用户会偶尔遇到一些系统问题。例如,错误53是许多用户常见反馈问题之一。如果你还得到错误53 今天小编的就分享如果iphone遇到系统错误53的解决办法。 当我们尝试通过iTunes工具来恢复或…

TDengine 时序数据的保留策略

“TDengine除vnode分片之外,还对时序数据按照时间段进行分区。每个数据文件只包含一个时间段的时序数据,时间段的长度由DB的配置参数days决定。这种按时间段分区的方法还便于高效实现数据的保留策略,只要数据文件超过规定的天数(系…

win10 Mysql8.0以上重置初始密码

第一步:关闭Mysql服务 首先,确保自己已经关闭了Mysql的服务 net stop mysql 问题:关闭时报错 原因是:因为net start 服务名,启动的是win下注册的服务。此时,系统中并没有注册mysql到服务中。即当前路径下…