代码之家  ›  专栏  ›  技术社区  ›  Shahid Ghafoor

Kafka Connect JDBC接收器-一个接收器配置中每个主题(表)的pk.fields

  •  0
  • Shahid Ghafoor  · 技术社区  · 7 年前

    关于这个例子 debezium-example

    我有多个具有不同主键的主题

    item (pk : id)
    itemDetail (pk :id, itemId)
    itemLocation (pk :id, itemId)
    

    {
    "name": "jdbc-sink",
    "config": {
        "connector.class": "io.confluent.connect.jdbc.JdbcSinkConnector",
        "tasks.max": "1",
        "topics": "item,itemDetail,itemLocation",
        "connection.url": "jdbc:postgresql://postgres:5432/inventory?user=postgresuser&password=postgrespw",
        "transforms": "unwrap",
        "transforms.unwrap.type": "io.debezium.transforms.UnwrapFromEnvelope",
        "auto.create": "true",
        "insert.mode": "upsert",
        "pk.fields": "id",
        "pk.mode": "record_value"
    }
    }
    

    如何为每个主题(表)指定“主键字段”?

    1 回复  |  直到 7 年前
        1
  •  3
  •   OneCricketeer Gabriele Mariotti    7 年前

    我不认为每个主题都有这样的PK映射配置。

    您需要为每个主题进行多个配置

    {
    "name": "jdbc-sink-item",
    "config": {
        "connector.class": "io.confluent.connect.jdbc.JdbcSinkConnector",
        "tasks.max": "1",
        "topics": "item",
        "pk.fields": "id",
    

    {
    "name": "jdbc-sink-itemDetail",
    "config": {
        "connector.class": "io.confluent.connect.jdbc.JdbcSinkConnector",
        "tasks.max": "1",
        "topics": "itemDetail",
        "pk.fields": "id,itemId",
    

    等等

    推荐文章