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

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

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

05

Spark Streaming连接Flume的两种方式

Spark提供了两种不同的接收器来接受Flume端发送的数据。 推式接收器该接收器以 Avro 数据池的方式工作,由 Flume 向其中推数据。设置起来非常简单,我们只需要将Fluem简单配置下,将数据发送到Avro数据池中,然后scala提供的FlumeUtils代理对象会把接收器配置在一个特定的工作节点的主机名和端口上。当然,这些配置需要和Flume保持一致。    虽然这种方式很简洁,但缺点是没有事务支持。这会增加运行接收器的工作节点发生错误 时丢失少量数据的几率。不仅如此,如果运行接收器的工作节点发生故障,系统会尝试从 另一个位置启动接收器,这时需要重新配置 Flume 才能将数据发给新的工作节点。这样配 置会比较麻烦。 拉式接收器该接收器设置了一个专门的Flume数据池供Spark Streaming拉取数据,并让接收器主动从数据池中拉取数据。这种方式的优点在于弹性较 好,Spark Streaming通过事务从数据池中读取并复制数据。在收到事务完成的通知前,这 些数据还保留在数据池中。 当你把自定义 Flume 数据池添加到一个节点上之后,就需要配置 Flume 来把数据推送到这个数据池中,

02
领券