Может ли дебезий захватывать изменения материализованного представления - PullRequest
0 голосов
/ 24 октября 2019

В настоящее время мы пытаемся использовать Debezium для регистрации изменений 4 таблиц в базе данных Postgres. В настоящее время мы знаем, что для этого варианта использования мы могли бы использовать приложение 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"
  }
 }

Эта конфигурация в настоящее время может фиксировать все изменения из отдельных таблиц, но не из материализованного представления. (Тема не создана)

1 Ответ

1 голос
/ 29 октября 2019

Нет, коннектор Debezium Postgres не может фиксировать изменения из вида. Вы должны либо сохранить свое объединение в таблице и записать его, либо использовать что-то вроде Kafka Streams для создания объединения.

...