开云体育官方注册网址Debezium博客

作为最近的跟进使用变更数据捕获和流处理构建审计日志文章中,我们想用管理特性扩展这个示例,以便能够捕获和修复任何丢失的事务数据。

在上面提到的博客文章中,有一个日志丰富器服务用于将在Vegetable数据库表中插入或更新的数据与事务上下文数据结合起来,例如开云体育电动老虎机

  • 事务id

  • 执行该工作的用户名

  • 实际变更背后的用例。“创建蔬菜”

只要所有的变化都是通过蔬菜服务来完成的,这一切都很好。但情况总是这样吗?

那么直接在数据库级别上执行的维护活动或迁移脚本呢?开云体育电动老虎机现在仍然有很多这样的活动在进行,或者是故意的,或者是因为那是我们试图改变的旧习惯……

让我们来谈谈TOAST。烤面包吗?不,烤面包!

那是什么?烤面包(超大属性存储技术)是Postgres中的一种机制,它将大列值存储在多个物理行中,绕过了8kb的页面大小限制。

烤面包!

通常,TOAST存储对用户是透明的,所以您实际上不必关心它。但是有一个例外:如果表行发生了变化,则为any不变使用TOAST机制存储的值不包含在Debezium从数据库接收到的消息中,除非它们是表的一部分开云体育官方注册网址开云体育电动老虎机副本的身份.因此,这样不变的TOAST列值将不会包含在Debezium数据更改事件发送到Apache Kafka。开云体育官方注册网址在这篇文章中,我们将讨论处理这种情况的不同策略。

维护某种形式的审计日志是业务应用程序的常见需求,即对应用程序数据的所有更改进行持久跟踪。如果你仔细观察,带有Debezium数据更改事件的Kafka主题与此非常相似:它开云体育官方注册网址来自数据库事务日志,描述了应用程序记录的所有更改。开云体育电动老虎机但是缺少的是一些元数据:为什么、什么时候以及由谁更改了数据?在这篇文章中,我们将探索如何通过变更数据捕获(CDC)提供和公开元数据,以及如何使用流处理来丰富实际的数据变更事件。

Baidu
map