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

这篇具有很好参考价值的文章主要介绍了Flinkx/Datax/Flink-CDC 优劣势对比。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

一、FlinkX简介(已改名为chunjun)

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

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

       GItHub地址: GitHub - DTStack/chunjun: A data integration framework

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

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

datax 对比,Flink,大数据框架,flink,大数据

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

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

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

datax 对比,Flink,大数据框架,flink,大数据

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

二、DataX简介

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

datax 对比,Flink,大数据框架,flink,大数据

● 设计理念

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

● 当前使用现状

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

datax 对比,Flink,大数据框架,flink,大数据

  • 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还是有所区别的

具体对比如下:

datax 对比,Flink,大数据框架,flink,大数据

5.5 总结:

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

到了这里,关于Flinkx/Datax/Flink-CDC 优劣势对比的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 大数据技术之 Flink-CDC

    CDC 是 Change Data Capture(变更数据获取)的简称。在广义的概念上,只要是能捕获数据变更的技术,我们都可以称之为 CDC 。核心思想是,监测并捕获数据库的变动(包括数据或数据表的插入、更新以及删除等),将这些变更按发生的顺序完整记录下来,写入到消息中间件中以

    2024年02月05日
    浏览(55)
  • flink-cdc之读取mysql变化数据

    pom 代码 注意开启checkpoint 和不开启是有区别的(savepoint也可以 启动的flink指定时候 -s savepath) 不开启,如果项目重启了,会重新读取所有的数据 开启了,项目重启了额,会根据保留的信息去读取变化的数据  mysql   数据库表  增加一条数据 打印日志 op:c 是create ==FlinkCDC==

    2024年02月16日
    浏览(46)
  • 【FLINK】Kafka数据源通过Flink-cdc进行实时数据同步

    CDC是Change Data Capture的缩写,中文意思是 变更数据获取 ,flink-cdc的作用是,通过flink捕获数据源的事务变动操作记录,包括数据的增删改操作等,根据这些记录可作用于对目标端进行实时数据同步。 下图是flink-cdc最新支持的数据源类型: kafka的数据源要通过flink-cdc进行实时数

    2024年02月12日
    浏览(58)
  • flink-cdc同步mysql数据到elasticsearch

    CDC是(Change Data Capture 变更数据获取)的简称。核心思想是,监测并捕获数据库的变动(包括数据 或 数据表的插入INSERT、更新UPDATE、删除DELETE等),将这些变更按发生的顺序完整记录下来,写入到消息中间件中以供其他服务进行订阅及消费。 cdc项目地址:https://github.com/ver

    2024年02月13日
    浏览(87)
  • 大数据ETL工具对比(Sqoop, DataX, Kettle)

    前言 在实习过程中,遇到了数据库迁移项目,对于数据仓库,大数据集成类应用,通常会采用 ETL 工具辅助完成,公司和客户使用的比较多的是 Sqoop , DataX 和 Kettle 这三种工具。简单的对这三种ETL工具进行一次梳理。 ETL工具,需要完成对源端数据的抽取(exat), 交互转换(

    2024年02月11日
    浏览(58)
  • 【开发问题】flink-cdc不用数据库之间的,不同类型的转化

    我一开始是flink-cdc,oracle2Mysql,sql 我一开始直接用的oracle【date】类型,mysql【date】类型,sql的校验通过了,但是真正操作数据的时候报错,告诉我oracle的数据格式的日期数据,不可以直接插入到mysql格式的日期数据,说白了就是数据格式不一致导致的 我想的是既然格式不对

    2024年02月12日
    浏览(47)
  • SpringBoot集成Flink-CDC 采集PostgreSQL变更数据发布到Kafka

    最近做的一个项目,使用的是pg数据库,公司没有成熟的DCD组件,为了实现数据变更消息发布的功能,我使用SpringBoot集成Flink-CDC 采集PostgreSQL变更数据发布到Kafka。 监听数据变化,进行异步通知,做系统内异步任务。 架构方案(懒得写了,看图吧): -- 创建pg 高线数据同步用

    2024年02月02日
    浏览(46)
  • Flink-CDC——MySQL、SqlSqlServer、Oracle、达梦等数据库开启日志方法

    目录 1. 前言 2. 数据源安装与配置 2.1 MySQL 2.1.1 安装 2.1.2 CDC 配置 2.2 Postgresql 2.2.1 安装 2.2.2 CDC 配置 2.3 Oracle 2.3.1 安装 2.3.2 CDC 配置 2.4 SQLServer 2.4.1 安装 2.4.2 CDC 配置 2.5达梦 2.4.1安装 2.4.2CDC配置 3. 验证 3.1 Flink版本与CDC版本的对应关系 3.2 下载相关包 3.3 添加cdc jar 至lib目录 3.4 验

    2024年02月05日
    浏览(59)
  • 【Flink-CDC】Flink CDC 介绍和原理概述

    CDC是( Change Data Capture 变更数据获取 )的简称。 核心思想是, 监测并捕获数据库的变动(包括数据 或 数据表的插入INSERT、更新UPDATE、删除DELETE等),将这些变更按发生的顺序完整记录下来,写入到消息中间件中以供其他服务进行订阅及消费。 CDC 主要分为基于查询和基于

    2024年01月20日
    浏览(46)
  • flink-cdc-学习笔记(一)

    Flink 1.11 引入了 CDC. Flink CDC 是一款基于 Flink 打造一系列数据库的连接器。Flink 是流处理的引擎,其主要消费的数据源是类似于一些点击的日志流、曝光流等数据,但在业务场景中,点击流的日志数据只是一部分,具有更大价值的数据隐藏在用户的业务数据库中。Flink CDC 弥补

    2024年04月10日
    浏览(83)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包