首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

基于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

08 Confluent_Kafka权威指南 第八章:跨集群数据镜像

本书大部分内容都在讨论单个kafka集群的配置、维护和使用。但是,在一些场景中,可能需要多集群架构。 在某些情况下,集群是完全分离的,他们属于不同部门的不同实例,没有理由将数据从一个集群复制到另外一个集群。有时,不同的SLA或者工作负载使得单个集群提供多个用例服务的集群很难调优。在某些时候,还有不同的安全需求。这些场景非常容易管理多个不同的集群,就像多次允许单个集群一样。 在其他场景中,不同的集群是互相依赖的,管理有要不断地在集群之间复制数据。在大多数数据库中,在数据库服务之间持续复制数据称为复制。由于我们使用复制来描述属于同一集群的kafka节点之间的数据移动,因此我们将把kafak集群之间的数据复制称之为镜像。Apache kafka内置的跨集群 的复制器称为mirrormaker。 在本章中,我们将讨论所有或者部分数据的跨集群镜像。我们将首先讨论跨集群的镜像的一些常用用例。然后我们将展示一些用于实现这些用例的架构,并讨论每种架构的优缺点。然后我们将讨论MirrorMaker本书以及如何使用它。我们将分享一些操作技巧,包括部署的性能调优。最后我们将讨论mirrorMaker的一些替代方案。

03

07 Confluent_Kafka权威指南 第七章: 构建数据管道

当人们讨论使用apache kafka构建数据管道时,他们通常会应用如下几个示例,第一个就是构建一个数据管道,Apache Kafka是其中的终点。丽日,从kafka获取数据到s3或者从Mongodb获取数据到kafka。第二个用例涉及在两个不同的系统之间构建管道。但是使用kafka做为中介。一个例子就是先从twitter使用kafka发送数据到Elasticsearch,从twitter获取数据到kafka。然后从kafka写入到Elasticsearch。 我们在0.9版本之后在Apache kafka 中增加了kafka connect。是我们看到之后再linkerdin和其他大型公司都使用了kafka。我们注意到,在将kafka集成到数据管道中的时候,每个公司都必须解决的一些特定的挑战,因此我们决定向kafka 添加AP来解决其中的一些特定的挑战。而不是每个公司都需要从头开发。 kafka为数据管道提供的主要价值是它能够在管道的各个阶段之间充当一个非常大的,可靠的缓冲区,有效地解耦管道内数据的生产者和消费者。这种解耦,结合可靠性、安全性和效率,使kafka很适合大多数数据管道。

03

【kafka】kafka学习笔记(一)

我们先看一下维基百科是怎么说的: Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。该项目的目标是为处理实时数据提供一个统一、高吞吐、低延迟的平台。其持久化层本质上是一个“按照分布式事务日志架构的大规模发布/订阅消息队列”,[这使它作为企业级基础设施来处理流式数据非常有价值。此外,Kafka可以通过Kafka Connect连接到外部系统(用于数据输入/输出),并提供了Kafka Streams——一个Java流式处理库。看完这个说法,是不是有点一脸蒙蔽, 再看看其他大神的理解:Kafka 是由 Linkedin 公司开发的,它是一个分布式的,支持多分区、多副本,基于 Zookeeper 的分布式消息流平台,它同时也是一款开源的基于发布订阅模式的消息引擎系统。 总的来说就是他就是发布订阅消息的引擎系统,在做集群的时候需要依靠zookeeper。

04

大数据开发工程师面试题以及答案整理(二)

Redis性能优化,单机增加CPU核数是否会提高性能 1、根据业务需要选择合适的数据类型,并为不同的应用场景设置相应的紧凑存储参数。 2、当业务场景不需要数据持久化时,关闭所有的持久化方式可以获得最佳的性能以及最大的内存使用量。 3、如果需要使用持久化,根据是否可以容忍重启丢失部分数据在快照方式与语句追加方式之间选择其一,不要使用虚拟内存以及diskstore方式。 4、不要让你的Redis所在机器物理内存使用超过实际内存总量的3/5。 我们知道Redis是用”单线程-多路复用io模型”来实现高性能的内存数据服务的,这种机制避免了使用锁,但是同时这种机制在进行sunion之类的比较耗时的命令时会使redis的并发下降。因为是单一线程,所以同一时刻只有一个操作在进行,所以,耗时的命令会导致并发的下降,不只是读并发,写并发也会下降。而单一线程也只能用到一个cpu核心,所以可以在同一个多核的服务器中,可以启动多个实例,组成master-master或者master-slave的形式,耗时的读命令可以完全在slave进行。

01

图解:Kafka 水印备份机制

高可用是很多分布式系统中必备的特征之一,Kafka 日志的高可用是通过基于 leader-follower 的多副本同步实现的,每个分区下有多个副本,其中只有一个是 leader 副本,提供发送和消费消息,其余都是 follower 副本,不断地发送 fetch 请求给 leader 副本以同步消息,如果 leader 在整个集群运行过程中不发生故障,follower 副本不会起到任何作用,问题就在于任何系统都不能保证其稳定运行,当 leader 副本所在的 broker 崩溃之后,其中一个 follower 副本就会成为该分区下新的 leader 副本,那么问题来了,在选为新的 leader 副本时,会导致消息丢失或者离散吗?Kafka 是如何解决 leader 副本变更时消息不会出错?以及 leader 与 follower 副本之间的数据同步是如何进行的?带着这几个问题,我们接着往下看,一起揭开 Kafka 水印备份的神秘面纱。

01
领券