【问题标题】:Can Debezium Capture Changes of a Postges Materialized ViewDebezium 可以捕获 Postges 物化视图的变化吗
【发布时间】:2020-02-20 13:51:43
【问题描述】:

我们目前正在尝试使用 Debezium 来捕获 Postgres 数据库中 4 个表的更改。我们目前知道,对于这个用例,我们可以使用 kafka-streams 应用程序来连接/聚合 KTable 的表,但是我们希望保持 kafka-stream 拓扑简单,因此我们的想法是使用 Postgres 的物化视图和捕捉它的变化。

是否可以这样做,如果可以,我们应该如何配置它?

Kafka Connect 源配置:

{
"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"
  }
 }

此配置目前可以从单个表中捕获所有更改,但不能从物化视图中捕获。 (没有创建主题)

【问题讨论】:

    标签: postgresql apache-kafka apache-kafka-connect debezium


    【解决方案1】:

    不,Debezium Postgres 连接器无法从视图中捕获更改。您要么必须将您的联接保留在一个表中并捕获它,要么确实使用 Kafka Streams 之类的东西来创建联接。

    【讨论】:

    • 感谢您的回复。我们将使用 kafka-streams 选项,并将使用它创建 ktables。
    • @fgakk 你对 Kafka-Streams 有什么好运气吗?另外,您在使用 Kafka-Streams 处理具有多个 Kafka-Streams 应用程序实例的数据流入方面的经验如何?
    • @gunnar 是否 Debezium 有支持此要求的计划吗?
    • @MuhammadWaqasDilawar 我们做了一个 PoC,乍一看它运行良好,但我在项目上线之前就退出了项目,所以我不能确定在生产环境中的体验如何。跨度>
    猜你喜欢
    • 2017-07-12
    • 2021-01-27
    • 2012-12-13
    • 2020-03-13
    • 2011-04-24
    • 2011-10-20
    • 1970-01-01
    • 2020-02-23
    • 1970-01-01
    相关资源
    最近更新 更多