Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 过滤Debezium中的读取访问事件_Postgresql_Debezium - Fatal编程技术网

Postgresql 过滤Debezium中的读取访问事件

Postgresql 过滤Debezium中的读取访问事件,postgresql,debezium,Postgresql,Debezium,我们正在使用Debezium+PostgreSQL 请注意,我们得到了创建、读取、更新和删除的4种类型的事件—c、r、u和d 我们的应用程序未使用事件的读取类型。实际上,我想不出“r”事件的用例,除非我们正在审计或镜像事务的活动 我们面临着扩展的困难&我怀疑这是因为网络被读取类型的事件占用了 我们如何在postgreSQL本身中过滤掉这些事件 我从一个参与者那里得到了使用snapshot.mode的线索。我想当Debezium创建快照时必须做一些事情。我不知道怎么做。很可能您的数据库已经存在了一

我们正在使用Debezium+PostgreSQL

请注意,我们得到了创建、读取、更新和删除的4种类型的事件—c、r、u和d

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

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

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


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

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

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

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


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

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

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

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

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