首页 > 解决方案 > 如何使用 Kafka Connect JDBC 来获取具有多个包含同名表的模式的 PostgreSQL?

问题描述

我需要从具有约 2000 个模式的 PostgreSQL 数据库中获取数据。所有模式都包含相同的表(它是一个多租户应用程序)。

连接器配置如下:

{
  "name": "postgres-source",
  "connector.class": "io.confluent.connect.jdbc.JdbcSourceConnector",
  "timestamp.column.name": "updated",
  "incrementing.column.name": "id",
  "connection.password": "********",
  "tasks.max": "1",
  "mode": "timestamp+incrementing",
  "topic.prefix": "postgres-source-",
  "connection.user": "*********",
  "poll.interval.ms": "3600000",
  "numeric.mapping": "best_fit",
  "connection.url": "jdbc:postgresql://*******:5432/*******",
  "table.whitelist": "table1",
  "value.converter": "org.apache.kafka.connect.json.JsonConverter",
  "value.converter.schemas.enable": "false",
  "key.converter": "org.apache.kafka.connect.json.JsonConverter",
  "key.converter.schemas.enable":"false"
}

使用此配置,我收到此错误:

“连接器使用不合格的表名作为主题名,检测到重复的不合格表名。这可能导致主题中的数据类型混合和下游处理错误。为防止此类处理错误,JDBC Source连接器在启动时无法启动检测重复的表名配置”

显然,连接器不想将多个同名表中的数据发布到单个主题。

这对我来说无关紧要,它可以转到单个主题或多个主题(每个模式一个)。

作为附加信息,如果我添加:

"schema.pattern": "schema1" 

到配置,连接器工作并复制指定架构和表中的数据。

有没有办法复制包含同名表的多个模式?

谢谢

标签: postgresqljdbcapache-kafkaapache-kafka-connectconfluent-platform

解决方案


推荐阅读