DBus数据库表结构变更处理方案

DBus是一个实时数据采集和分发平台,处理数据库表结构变更。本文介绍了DBus如何感知和处理表结构变更,包括Oracle的DDL trigger和OGG实时同步方案。在遇到通过DDL trigger写入Event表的数据无法被OGG捕获的问题后,通过Java存储过程和自治事务解决了这个问题,实现了对表结构变更事件的正确处理。
摘要由CSDN通过智能技术生成

导读:DBus是我们要介绍的在敏捷大数据(Agile BigData)背景下的第一个平台。企业中大量业务数据保存在各个业务系统数据库中,为同时解决数据同步的一致性和实时性问题,DBus(数据总线)平台应运而生。

DBus专注于数据的实时采集和实时分发,是一种基于日志的解决方案,同时能够提供消息订阅的方式给下游系统使用。本篇文章主要介绍在DBus的设计中,它是如何处理表结构变更及其带来的各种问题的。

数据库表结构变更在软件产品快速迭代过程中是普遍存在的现象,抽取数据库中的数据是DBus最重要的功能之一,那么对于数据库中表结构变更及其带来的各种问题,DBus是如何处理的呢? (本文仅讨论DBus for Oracle的实现方案)

贴源输出是DBus的基本设计原则之一,通过解析后的数据库日志获取数据转换成UMS输出到Kafka,当表结构发生变更时DBus必须能够及时的调整输出UMS的结构,以确保和数据库中表结构保持一致,这里有两个问题需要解决:

1)如何感知表结构变更?

2)表结构变更后,新的表结构要如何与OGG输出的二进制数据关联?

一、感知表结构变更

对于感知表结构变更,Oracle已经通过DDL trigger为我们提供了很好的支持,接下来我们要考虑的是如何让DBus感知到表结构变更? 我们讨论出以下两种方案:

1.1 RPC方案

在DDL trigger中调用DBus提供的REST服务,将表结构变更事件发送给DBus。

该方案思路简单容易实现,但也有一些明显的弊端,比如DBus需要提供高可用、低延时的REST服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值