Flinkx/Datax/Flink-CDC 优劣势对比

news2024/11/18 9:38:39

Flinkx/Datax/Flink-CDC 优劣势对比_HiBoyljw的博客-CSDN博客

一、FlinkX简介

       FlinkX是一款基于Flink的分布式离线/实时数据同步插件,可实现多种异构数据源高效的数据同步,其由袋鼠云于2016年初步研发完成,目前有稳定的研发团队持续维护,已在Github上开源(开源地址详见文章末尾),并维护该开源社区。目前已完成批流统一,离线计算与流计算的数据同步任务都可基于FlinkX实现。

       FlinkX是一个基于Flink的批流统一的数据同步工具,既可以采集静态的数据,比如MySQL,HDFS等,也可以采集实时变化的数据,比如MySQL binlog,Kafka等。

FlinkX将不同的数据源库抽象成不同的Reader插件,目标库抽象成不同的Writer插件,具有以下特点:

  • 基于Flink开发,支持分布式运行;
  • 双向读写,某数据库既可以作为源库,也可以作为目标库;
  • 支持多种异构数据源,可实现MySQL、Oracle、SQLServer、Hive、Hbase等20多种数据源的双向采集。
  • 高扩展性,强灵活性,新扩展的数据源可与现有数据源可即时互通。

FlinkX目前包含下面这些特性:

● 大部分插件支持并发读写数据,可以大幅度提高读写速度;
● 部分插件支持失败恢复的功能,可以从失败的位置恢复任务,节约运行时间;失败恢复
● 关系数据库的Reader插件支持间隔轮询功能,可以持续不断的采集变化的数据;间隔轮询
● 部分数据库支持开启Kerberos安全认证;Kerberos
● 可以限制reader的读取速度,降低对业务数据库的影响;
● 可以记录writer插件写数据时产生的脏数据;
● 可以限制脏数据的最大数量;
● 支持多种运行模式;

FlinkX目前支持下面这些数据库:

在这里插入图片描述

github:https://github.com/oceanos/flinkx

二、DataX简介

DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。

在这里插入图片描述

● 设计理念

为了解决异构数据源同步问题,DataX将复杂的网状的同步链路变成了星型数据链路,DataX作为中间传输载体负责连接各种数据源。当需要接入一个新的数据源的时候,只需要将此数据源对接到DataX,便能跟已有的数据源做到无缝数据同步。

● 当前使用现状

DataX在阿里巴巴集团内被广泛使用,承担了所有大数据的离线同步业务,并已持续稳定运行了6年之久。目前每天完成同步8w多道作业,每日传输数据量超过300TB。
DataX本身作为离线数据同步框架,将数据源读取和写入抽象成为Reader/Writer插件,纳入到整个同步框架中。

在这里插入图片描述

  • Reader:Reader为数据采集模块,负责采集数据源的数据,将数据发送给Framework。
  • Writer: Writer为数据写入模块,负责不断向Framework取数据,并将数据写入到目的端。
  • Framework:Framework用于连接reader和writer,作为两者的数据传输通道,并处理缓冲,流控,并发,数据转换等核心技术问题。
  • github:https://github.com/alibaba/DataX

三、FlinkX与DataX对比

在Flink的生态圈里面与DataX对标的就是FlinkX,有可能就是同一批开发人员。

3.1 相同点:

● 支持多种数据库的数据同步
● 支持高并发数据读写
● 支持大批量数据批量读写

3.2 不同点:

  • DataX任务是单机多线程的,资源占用多。FlinX提交Flink 任务至Flink 集群,可以分布式运行,且可以使用Yarn进行任务调度,与Hadoop生态无缝结合。
  • DataX只支持离线批处理
  • FlinkX支持批处理和部分数据库的流式处理

3.3 总结:

  1. FlinkX与DataX 都数据大数据数据同步的第三方插件,但是FlinX很多功能都是对标DataX的,并在其原有基础上进行了改进。
  2. DataX是一个单机同步工具,核心底层通道的分布式支持不友好,而FlinkX任务是基于Flink集群的,可以无缝结合Hadoop生态。所以在分布式、高效性和易于拓展方面 FlinX是优于DataXD的。

四、Flink-CDC 简介

Flink CDC 连接器是 Apache Flink 的一组源连接器,使用变更数据捕获 (CDC) 从不同数据库中获取变更。

● 支持读取数据库快照并继续读取binlog,即使发生故障也只处理一次。
● DataStream API 的 CDC 连接器,用户可以在单个作业中使用对多个数据库和表的更改,而无需部署 Debezium 和 Kafka。
● Table/SQL API 的 CDC 连接器,用户可以使用 SQL DDL 创建 CDC 源来监视单个表上的更改

github:https://github.com/oceanos/flinkx/blob/1.8_release/docs/rdbwriter.md

五、FlinkX与Flink-CDC对比

5.1 相同点:

● 都是基于Flink,提交Flink 任务
● 对MySQL/Kafka/Postgres 都支持流式变更(CDC),数据实时变更、实时抓取
● 针对流式处理都是基于日志的CDC

5.2 不同点:

● FlinkX属于第三方插件,而Flink-CDC属于Flink的一组连接器。相对而言,Flink-CDC更轻,且使用更方便
● FlinkX支持的数据源更多,Flink-CDC目前只支持MySQL/Kafka/Postgres的实时CDC
● FlinkX支持批处理和流处理、Flink-CDC只支持流处理

5.3 实时处理:

如果需要对数据同步采用实时处理的话,由于数据是存储在Mysql中,所以无论是FlinkX和Flink-CDC都是支持的。它们的底层都是基于Debezium 的binlog来进行数据同步的。

5.4 缺点:

● 需要修改binlog模式,日志存储空间需要增大。

  • 离线批处理:

如果需要采用离线批处理方式,建议采用FlinkX。因为其高效、稳定,且支持多种数据源。
缺点:
● 采用离线批处理的话,其本质是基于查询的CDC。与基于日志的CDC还是有所区别的

具体对比如下:

在这里插入图片描述

5.5 总结:

● 实时数据同步带来的风险是需要修改binlog模式,导致日志存储空间增大。且支持的数据库比较少。
● 离线批量同步的本质是基于查询的CDC,需要部署第三方插件,同时其带来的风险是无法实时捕获所有数据变化、相对基于日志的CDC延迟性更高、高频率和大批量的数据同步会增加数据库的负担,因为它在同步的时候需要一直去连接数据库进行数据查询、无法捕获删除事件和旧记录状态。

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

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

相关文章

微前端解决方案

目录 微前端解决方案微前端的整体架构微前端部署平台 微前端解决方案 在理想的情况下,期望能达到,将一个复杂的单体应用以功能或业务需求垂直的切分成更小的子系统,并且能够达到以下能力: 子系统间的开发、发布从空间上完成隔离…

java学员学生综合测评管理系统

目 录 摘 要 I ABSTRACT II 第一章 绪论 1 1.1课题背景 1 1.2目的和意义 1 1.3开发工具及技术 2 1.3.1开发工具 2 1.3.2 JSP技术 2 1.4软硬件需求 3 第二章 系统分析 5 2.1可行性分析 5 2.1.1技术可行性 5 2.1.2经济可行性 5 2.1.3操…

GrassRouter多链路聚合通信系统保障公路网络稳定全面覆盖解决方案

近年来国内经济不断发展,城市道路交通能力迅速提高,各省市道路交通体系不断完善,促使高速公路运能得到极大提高,公路运输的通达性、舒适性得到明显提高。随着现代化高速公路的建设,新一代无线网络监控系统,…

Jmeter控制器 Logic Controller

控制器包含: 1.Loop Controller 作⽤:指定其⼦节点运⾏的次数,可以使⽤具体的数值,也可以使⽤变量    Forever选项:表示⼀直循环下去   如果同时设置了线程组的循环次数和循环控制器的循环次数,那循环…

大屏使用echart开发省市地图,并点击省获取市地图

1. 本文在基础上进行改进,后端使用若依后端 IofTV-Screen: 🔥一个基于 vue、datav、Echart 框架的物联网可视化(大屏展示)模板,提供数据动态刷新渲染、屏幕适应、数据滚动配置,内部图表自由替换、Mixins注…

ZooKeeper的安装和配置过程

ZooKeeper的安装和配置过程 ZooKeeper服务器是用Java创建的,它需要在JVM上运行,所以需要使用JDK1.6及以上版本。 查看是否安装了Java环境: java -version没有安装的先去安装JDK:Linux 安装 JDK 官网下载zooKeeper 官网下载zooKeeper&…

基于 YOLOv8 的自定义数据集训练

图1.1:YOLOv8初始测试 YOLOv8🔥于 2023年1月10日由Ultralytics发布。它在计算机视觉方面提供了进展,带来了对我们感知、分析和理解视觉世界的巨大创新。它将为各个领域带来前所未有的可能性。 在速度、准确性和架构方面进行了相当大的改进。它…

vs的常用配置【以及vs常用的快捷键】

1、颜色设置 (1) 编译器的主题颜色设置 (2) 字体和颜色设置 (3) 字体大小 更快捷的修改字体大小方式:ctr鼠标滚轮 2、行号设置 默认就有,不用设置了 3、把解决方案资源管理器移动到左边 4、设置打开错误列表 5、自动保存-要手动使用快捷键 ctrs 代码…

DolphinScheduler×T3出行 | 打造车联网一站式数据应用交互体验

点击蓝字 关注我们 用户案例 | T3 出行 业务挑战 作为一家车联网驱动的公司,T3出行汇聚了“人、车、路、云”各端的海量数据。为了承载如此多元化的数据以更好地释放数据价值,T3出行构建了以Apache Hudi为基础的企业级的数据湖,并在此之上搭建…

Nginx rewrite ——重写跳转

Nginx常见模块 http http块是Nginx服务器配置中的重要部分,代理、缓存和日志定义等绝大多数的功能和第三方模块的配置都可以放在这模块中。作用包括:文件引入、MIME-Type定义、日志自定义、是否使用sendfile传输文件、连接超时时间、单连接请求数上限等…

代码随想录算法训练营第三十六天|435. 无重叠区间、763.划分字母区间 、56. 合并区间

文章目录 重叠问题435. 无重叠区间763.划分字母区间:star:56. 合并区间 重叠问题 这几道题都是判断区间重叠,区别就是判断区间重叠后的逻辑。 435. 无重叠区间 链接:代码随想录 解题思路: 这道题和射气球的题几乎思路一样 不断求出重叠的最小右区间&a…

【Spring篇】Spring相关概念

🍓系列专栏:Spring系列 🍉个人主页:个人主页 目录 一、介绍 🍊1.为什么要学? 🍍2.学什么? 🍓3.怎么学? 二、Spring相关概念 🍒1.Spring家族 🍅2.了解Spring发展史 🍐3.Spr…

Centos7 系列:磁盘挂载和磁盘扩容(新加硬盘方式)

磁盘挂载和磁盘扩容 一、系统环境二、磁盘挂载到新目录(磁盘挂载)2.1 查找新硬盘2.2 创建挂载目录2.3 创建新分区2.4 创建新物理卷2.5 创建新卷组2.6 创建新逻辑卷2.7 挂载到空目录 三、挂载到已有目录(磁盘扩容)3.1 查找新硬盘3.…

【Linux】冯诺依曼体系结构与进程的基础知识点

目录 1.冯诺依曼体系结构硬件[2~5]2.为什么要有内存?3.为什么不用CPU中的寄存器做存储单元?4.为什么我们的程序必须先被加载到内存中?5.在硬件层面数据流是如何流向的? 软件[6~10]6.操作系统Operator System7.操作系统的作用8.操作…

能源管理系统在电子厂房中的应用

摘要:以能耗管理系统在工业厂房的应用为例,介绍了系统架构及功能。重点分析能耗管理系统在工业厂房实施过程中遇到的难点,并对系统采集的数据进行分析,提出了相应的节能措施,帮助该业厂房达到节约能耗和运行费用的目的…

tomcat部署应用页面乱码问题解决方案

参考:(129条消息) java jvm字符集 设置_windows/tomcat 修改java虚拟机JVM以utf-8字符集加载class文件的两种方式..._Lemaden的博客-CSDN博客 1、应用部署tomcat启动之后,页面显示乱码,解决方案 设置环境变量: 我的电脑 -> …

转行大数据未来发展怎么样?可行么

近年来越来越多的人选择大数据行业,大数据行业前景不错薪资待遇好,各大名企对于大数据人才需求不断上涨。 大数据从业领域很宽广,不管是科技领域还是食品产业,零售业等都是需要大数据人才进行大数据的处理,以提供更好…

智慧管廊监控与报警管控一体化系统解决方案

摘要:智慧管廊监控与报警管控是一项综合性质较高的管控操作系统。在各项系统结构之间因为技术管理体系之间的差异,所评价的标准也有着不同的区分,导致各项标准之间难以实现相互之间的联通。这种形式下就需要实现环境与设备之间的监控管理、通…

HBuilderX的快捷键

快捷键说明ctrl /添加注释&#xff08;js&#xff1a;// 注释、css&#xff1a;/* 注释 */、vue/nvue模板&#xff1a; <!-- 注释 -->&#xff09;ctrl k格式化代码Ctrl C 拷贝当前行或者所选代码块到剪切板Ctrl X剪切当前行或所选代码块到剪切板Ctrl V粘贴剪切板上…

LeetCode LCP 04. 覆盖【二分图最大匹配,匈牙利算法】困难

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…