gpt4 book ai didi

postgresql - 在 Debezium 中过滤读取访问事件

转载 作者:行者123 更新时间:2023-11-29 14:16:38 24 4
gpt4 key购买 nike

我们正在使用 Debezium + PostgreSQL。

请注意,我们有 4 种类型的事件用于创建、读取、更新和删除 - c、r、u 和 d。

我们的应用程序未使用事件的读取类型。实际上,除非我们正在审计或镜像交易事件,否则我想不出“r”事件的用例。

我们面临扩展困难,我怀疑这是因为网络被读取类型的事件占用。

我们如何在 postgreSQL 本身中过滤掉那些事件?

我从一位贡献者那里得到了使用 snapshot.mode 的线索。我想当 Debezium 创建快照时必须做一些事情。我不知道该怎么做。

最佳答案

您的数据库很可能已经存在了一段时间,并且包含已从逻辑解码日志中清除的数据和更改。如果您随后开始使用 Debezium PostgreSQL 连接器开始将更改捕获到 Kafka 中,那么问题就变成了 Kafka 中事件的消费者应该能够看到什么。

一种情况是消费者应该能够看到数据库中所有行的事件,即使是那些在 CDC 启动之前就存在的行。例如,这允许消费者完全复制/复制所有现有数据随着时间的推移保持数据同步。为实现这一点,Debezium PostgreSQL 连接器启动时可以先创建数据库内容的快照,然后再开始捕获更改。这是自动完成的,因此即使快照过程需要一段时间才能运行,连接器仍会看到自快照过程启动以来发生的所有事件。这些事件表示为“读取”事件,因为实际上连接器只是读取现有的行。但是,它们与“插入”事件相同,因此任何应用程序都可以以相同的方式处理读取和插入。

另一方面,如果 Kafka 中事件的消费者不需要查看所有现有行的事件,则连接器可以配置为避免快照,而是从捕获事件开始变化。这在某些不需要在 Kafka 中找到整个数据库状态的场景中可能很有用,但目标是简单地捕获正在发生的更改。

Debezium PostgreSQL 连接器将以任何一种方式工作,因此您应该使用适合您使用事件的方式的方法。

关于postgresql - 在 Debezium 中过滤读取访问事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46122413/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com