首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何通过 Apache Kafka 和 ScyllaDB 使用变更数据捕获

Apache Kafka是一个分布式流处理平台,可以用于处理实时数据流。ScyllaDB是一个高性能的分布式NoSQL数据库,可以用于存储和管理大规模数据。变更数据捕获(CDC)是一种技术,可以捕获数据库中的变更,并将其转换为实时数据流。

使用Apache Kafka和ScyllaDB进行CDC的步骤如下:

  1. 在数据库中启用CDC功能,并配置CDC输出到Kafka主题。
  2. 在Kafka中创建一个主题,并配置ScyllaDB作为主题的消费者。
  3. 在ScyllaDB中创建一个表,用于存储从Kafka中接收到的数据。
  4. 在ScyllaDB中创建一个Kafka连接,用于从Kafka中接收数据。
  5. 在ScyllaDB中创建一个流程,用于将从Kafka中接收到的数据写入表中。

使用Apache Kafka和ScyllaDB进行CDC的优势是可以实现实时数据流处理,并且具有高性能和可扩展性。它适用于需要处理大规模数据的企业和组织,例如金融、电信、物流等行业。

参考链接:

  1. Apache Kafka官网:https://kafka.apache.org/
  2. ScyllaDB官网:https://www.scylladb.com/
  3. Kafka Connect ScyllaDB插件:https://github.com/scylladb/kafka-connect-scylla
  4. ScyllaDB流程编写指南:https://docs.scylladb.com/using-scylla/cdc/cdc-workflow/
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 基于Apache Hudi和Debezium构建CDC入湖管道

    当想要对来自事务数据库(如 Postgres 或 MySQL)的数据执行分析时,通常需要通过称为更改数据捕获[4] CDC的过程将此数据引入数据仓库或数据湖等 OLAP 系统。Debezium 是一种流行的工具,它使 CDC 变得简单,其提供了一种通过读取更改日志[5]来捕获数据库中行级更改的方法,通过这种方式 Debezium 可以避免增加数据库上的 CPU 负载,并确保捕获包括删除在内的所有变更。现在 Apache Hudi[6] 提供了 Debezium 源连接器,CDC 引入数据湖比以往任何时候都更容易,因为它具有一些独特的差异化功能[7]。Hudi 可在数据湖上实现高效的更新、合并和删除事务。Hudi 独特地提供了 Merge-On-Read[8] 写入器,与使用 Spark 或 Flink 的典型数据湖写入器相比,该写入器可以显着降低摄取延迟[9]。最后,Apache Hudi 提供增量查询[10],因此在从数据库中捕获更改后可以在所有后续 ETL 管道中以增量方式处理这些更改下游。

    02

    Flink CDC 新一代数据集成框架

    主要讲解了技术原理,入门与生产实践,主要功能:全增量一体化数据集成、实时数据入库入仓、最详细的教程。Flink CDC 是Apache Flink的一个重要组件,主要使用了CDC技术从各种数据库中获取变更流并接入到Flink中,Apache Flink作为一款非常优秀的流处理引擎,其SQL API又提供了强大的流式计算能力,因此结合Flink CDC能带来非常广阔的应用场景。例如,Flink CDC可以代替传统的Data X和Canal工具作为实时数据同步,将数据库的全量和增量数据同步到消息队列和数据仓库中。也可以做实时数据集成,将数据库数据实时入湖入仓。还可以做实时物化视图,通过SQL对数据做实时的关联、打宽、聚合,并将物化结果写入到数据湖仓中。

    03

    Robinhood基于Apache Hudi的下一代数据湖实践

    Robinhood 的使命是使所有人的金融民主化。Robinhood 内部不同级别的持续数据分析和数据驱动决策是实现这一使命的基础。我们有各种数据源——OLTP 数据库、事件流和各种第 3 方数据源。需要快速、可靠、安全和以隐私为中心的数据湖摄取服务来支持各种报告、关键业务管道和仪表板。不仅在数据存储规模和查询方面,也在我们在数据湖支持的用例方面,我们从最初的数据湖版本[1]都取得了很大的进展。在这篇博客中,我们将描述如何使用各种开源工具构建基于变更数据捕获的增量摄取,以将我们核心数据集的数据新鲜延迟从 1 天减少到 15 分钟以下。我们还将描述大批量摄取模型中的局限性,以及在大规模操作增量摄取管道时学到的经验教训。

    02

    Flink CDC 新一代数据集成框架

    主要讲解了技术原理,入门与生产实践,主要功能:全增量一体化数据集成、实时数据入库入仓、最详细的教程。Flink CDC 是Apache Flink的一个重要组件,主要使用了CDC技术从各种数据库中获取变更流并接入到Flink中,Apache Flink作为一款非常优秀的流处理引擎,其SQL API又提供了强大的流式计算能力,因此结合Flink CDC能带来非常广阔的应用场景。例如,Flink CDC可以代替传统的Data X和Canal工具作为实时数据同步,将数据库的全量和增量数据同步到消息队列和数据仓库中。也可以做实时数据集成,将数据库数据实时入湖入仓。还可以做实时物化视图,通过SQL对数据做实时的关联、打宽、聚合,并将物化结果写入到数据湖仓中。

    08

    基于Apache Hudi的多库多表实时入湖最佳实践

    CDC(Change Data Capture)从广义上讲所有能够捕获变更数据的技术都可以称为CDC,但本篇文章中对CDC的定义限定为以非侵入的方式实时捕获数据库的变更数据。例如:通过解析MySQL数据库的Binlog日志捕获变更数据,而不是通过SQL Query源表捕获变更数据。Hudi 作为最热的数据湖技术框架之一, 用于构建具有增量数据处理管道的流式数据湖。其核心的能力包括对象存储上数据行级别的快速更新和删除,增量查询(Incremental queries,Time Travel),小文件管理和查询优化(Clustering,Compactions,Built-in metadata),ACID和并发写支持。Hudi不是一个Server,它本身不存储数据,也不是计算引擎,不提供计算能力。其数据存储在S3(也支持其它对象存储和HDFS),Hudi来决定数据以什么格式存储在S3(Parquet,Avro,…), 什么方式组织数据能让实时摄入的同时支持更新,删除,ACID等特性。Hudi通过Spark,Flink计算引擎提供数据写入, 计算能力,同时也提供与OLAP引擎集成的能力,使OLAP引擎能够查询Hudi表。从使用上看Hudi就是一个JAR包,启动Spark, Flink作业的时候带上这个JAR包即可。Amazon EMR 上的Spark,Flink,Presto ,Trino原生集成Hudi, 且EMR的Runtime在Spark,Presto引擎上相比开源有2倍以上的性能提升。在多库多表的场景下(比如:百级别库表),当我们需要将数据库(mysql,postgres,sqlserver,oracle,mongodb等)中的数据通过CDC的方式以分钟级别(1minute+)延迟写入Hudi,并以增量查询的方式构建数仓层次,对数据进行实时高效的查询分析时。我们要解决三个问题,第一,如何使用统一的代码完成百级别库表CDC数据并行写入Hudi,降低开发维护成本。第二,源端Schema变更如何同步到Hudi表。第三,使用Hudi增量查询构建数仓层次比如ODS->DWD->DWS(各层均是Hudi表),DWS层的增量聚合如何实现。本篇文章推荐的方案是: 使用Flink CDC DataStream API(非SQL)先将CDC数据写入Kafka,而不是直接通过Flink SQL写入到Hudi表,主要原因如下,第一,在多库表且Schema不同的场景下,使用SQL的方式会在源端建立多个CDC同步线程,对源端造成压力,影响同步性能。第二,没有MSK做CDC数据上下游的解耦和数据缓冲层,下游的多端消费和数据回溯比较困难。CDC数据写入到MSK后,推荐使用Spark Structured Streaming DataFrame API或者Flink StatementSet 封装多库表的写入逻辑,但如果需要源端Schema变更自动同步到Hudi表,使用Spark Structured Streaming DataFrame API实现更为简单,使用Flink则需要基于HoodieFlinkStreamer做额外的开发。Hudi增量ETL在DWS层需要数据聚合的场景的下,可以通过Flink Streaming Read将Hudi作为一个无界流,通过Flink计算引擎完成数据实时聚合计算写入到Hudi表。

    01

    Streaming Data Changes from MySQL to Elasticsearch

    MySQL Binary Log包含了针对数据库执行DDL(Data Definition Language)和DML(Data Manipulation Language)操作的完整事件,其被广泛应用于数据复制和数据恢复场景。本文所分享的就是一种基于MySQL Binary Log特性实现增量数据近实时同步到Elasticsearch的一种技术。要想实现增量数据的同步,仅仅有binary log是不够的,我们还需要一款变更数据捕获(CDC,Change Data Capture)工具,可能大家很快就会想到阿里巴巴开源的Canal。没错,但本文今天给大家分享一款新的开源工具:Debezium。Debezium构建于Kafka之上,它为MySQL、MongoDB、PostgreSQL、Orcale和Cassandra等一众数据库量身打造了一套完全适配于Kafka Connect的source connector。首先,source connector会实时获取由INSERT、UPDATE和DELETE操作所触发的数据变更事件;然后,将其发送到Kafka topic中;最后,我们使用sink connector将topic中的数据变更事件同步到Elasticsearch中去,从而最终实现数据的近实时流转,如下图所示。

    01

    DBLog:一种基于水印的变更数据捕获框架(论文翻译)

    应用程序通常会使用多个异构数据库,每个数据库都用于服务于特定的需求,例如存储数据的规范形式或提供高级搜索功能。因此,对于应用程序而言,将多个数据库保持同步是非常重要的。我们发现了一系列尝试解决此问题的不同方式,例如双写和分布式事务。然而,这些方法在可行性、稳健性和维护性方面存在局限性。最近出现的一种替代方法是利用变更数据捕获(CDC)框架,从数据库的事务日志中捕获变更的行,并以低延迟将它们传递到下游系统。为了解决数据同步的问题,还需要复制数据库的完整状态,而事务日志通常不包含完整的变更历史记录。同时,某些应用场景要求事务日志事件的高可用性,以使数据库尽可能地保持同步。

    05

    大数据开源框架技术汇总

    Hadoop:Apache Hadoop是一个开源的分布式系统基础框架,离线数据的分布式存储和计算的解决方案。Hadoop最早起源于Nutch,Nutch基于2003 年、2004年谷歌发表的两篇论文分布式文件系统GFS和分布式计算框架MapReduce的开源实现HDFS和MapReduce。2005年推出,2008年1月成为Apache顶级项目。Hadoop分布式文件系统(HDFS)是革命性的一大改进,它将服务器与普通硬盘驱动器结合,并将它们转变为能够由Java应用程序兼容并行IO的分布式存储系统。Hadoop作为数据分布式处理系统的典型代表,形了成完整的生态圈,已经成为事实上的大数据标准,开源大数据目前已经成为互联网企业的基础设施。Hadoop主要包含分布式存储HDFS、离线计算引擎MapRduce、资源调度Apache YARN三部分。Hadoop2.0引入了Apache YARN作为资源调度。Hadoop3.0以后的版本对MR做了大量优化,增加了基于内存计算模型,提高了计算效率。比较普及的稳定版本是2.x,目前最新版本为3.2.0。

    02
    领券