Debezium 可以捕获 Postges 物化视图的变化吗
Can Debezium Capture Changes of a Postges Materialized View
我们目前正在尝试使用 Debezium 来捕获 Postgres 数据库中 4 个表的更改。我们目前知道,对于这个用例,我们可以使用 kafka-streams 应用程序为 KTable 的 join/aggregate 表,但是我们希望保持 kafka-stream 拓扑简单,所以我们的想法是使用物化视图Postgres 并捕获它的变化。
是否可以这样做,如果可以,我们应该如何配置呢?
Kafka 连接源配置:
{
"name": "campaign-db-source-connector",
"config": {
"connector.class": "io.debezium.connector.postgresql.PostgresConnector",
"key.converter": "io.confluent.connect.avro.AvroConverter",
"value.converter": "io.confluent.connect.avro.AvroConverter",
"key.converter.schema.registry.url": "http://schema-registry:8081",
"value.converter.schema.registry.url": "http://schema-registry:8081",
"tasks.max": "1",
"database.hostname": "campaign-db",
"database.port": "5432",
"database.user": "postgres",
"database.password": "postgres",
"database.dbname" : "campaigndb",
"database.server.name": "campaign-db"
}
}
此配置当前可以捕获单个表的所有更改,但不能捕获物化视图的所有更改。 (没有创建主题)
不,Debezium Postgres 连接器无法从视图中捕获更改。您要么必须在 table 中坚持加入并捕获它,要么确实使用 Kafka Streams 之类的东西来创建加入。
我们目前正在尝试使用 Debezium 来捕获 Postgres 数据库中 4 个表的更改。我们目前知道,对于这个用例,我们可以使用 kafka-streams 应用程序为 KTable 的 join/aggregate 表,但是我们希望保持 kafka-stream 拓扑简单,所以我们的想法是使用物化视图Postgres 并捕获它的变化。
是否可以这样做,如果可以,我们应该如何配置呢?
Kafka 连接源配置:
{
"name": "campaign-db-source-connector",
"config": {
"connector.class": "io.debezium.connector.postgresql.PostgresConnector",
"key.converter": "io.confluent.connect.avro.AvroConverter",
"value.converter": "io.confluent.connect.avro.AvroConverter",
"key.converter.schema.registry.url": "http://schema-registry:8081",
"value.converter.schema.registry.url": "http://schema-registry:8081",
"tasks.max": "1",
"database.hostname": "campaign-db",
"database.port": "5432",
"database.user": "postgres",
"database.password": "postgres",
"database.dbname" : "campaigndb",
"database.server.name": "campaign-db"
}
}
此配置当前可以捕获单个表的所有更改,但不能捕获物化视图的所有更改。 (没有创建主题)
不,Debezium Postgres 连接器无法从视图中捕获更改。您要么必须在 table 中坚持加入并捕获它,要么确实使用 Kafka Streams 之类的东西来创建加入。