【问题标题】:Debezium PostgresConnector instantiate topics as there is no data in tablesDebezium PostgresConnector 实例化主题,因为表中没有数据
【发布时间】:2021-10-05 19:38:59
【问题描述】:

我正在创建一个 CDC Postgres.source --> Kafka / Debezium --> Postgres.sink。

源主题创建良好,但仅当表有数据时。 即使没有数据,有没有办法实例化所有主题。 因为我想用 maven 命令下载所有 AVRO 模式:

mvn schema-registry:download

我的配置:

{
  "name": "postgres-source",
  "config": {
    "connector.class":"io.debezium.connector.postgresql.PostgresConnector",
    "tasks.max":"1",
    "database.hostname": "postgres-source",
    "database.port": "5432",
    "database.user": "postgres",
    "database.password": "postgres",
    "database.dbname" : "postgres",
    "database.server.name": "postgres",
    "database.history.kafka.bootstrap.servers": "kafka:9092",
    "database.history.kafka.topic": "schema-changes.customers",
    "key.converter": "org.apache.kafka.connect.storage.StringConverter",
    "value.converter": "io.confluent.connect.avro.AvroConverter",
    "key.converter.schemas.enable": "false",
    "value.converter.schemas.enable": "true",
    "value.converter.schema.registry.url": "http://schema-registry:8081",
    "transforms": "unwrap",
    "transforms.unwrap.type": "io.debezium.transforms.ExtractNewRecordState"
  }
}

【问题讨论】:

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


    【解决方案1】:

    主题不与模式关联,关系是另一种方式,因此没有什么可以单独从数据库中“实例化”它们。

    如果您想在启动管道之前创建 Kafka 主题,则需要其他一些执行方法

    【讨论】:

      【解决方案2】:

      如果我可以添加来自 OneCricketeer 的答案,则模式附加到记录,而不是主题。您可以拥有一个 Kafka 主题,其中包含具有不同模式的记录(在某些方面理想地兼容)。

      由于模式依赖于记录,因此需要先将数据发布到 debezium。我建议首先使用其他工具创建架构,或者如果您有单独的环境可用于通过编写虚拟行而不污染主题来生成架构。

      【讨论】:

        猜你喜欢
        • 2021-10-27
        • 1970-01-01
        • 2023-03-29
        • 2018-03-25
        • 1970-01-01
        • 1970-01-01
        • 2019-02-07
        • 2021-09-21
        • 1970-01-01
        相关资源
        最近更新 更多