kafka JDBC 源连接器无法获取 postgres table
kafka JDBC source connector not able to pick up postgress table
我在 windows 上有一个独立的 kafka 运行ing 和一个与我的机器上可用的 postgress 数据库连接的 JDBC 源连接器。当我尝试 运行 连接器时,它显示一条警告,没有任务 运行 因为没有找到 table。而如果我将相同的连接器与 mysql db(也在本地安装)连接。它能够拾取 tables 并且工作正常。请注意,我使用的是 confluent 的 jdbc 连接器和默认的 apache-kafka。
下面是我在 postgress 中收到的警告
这是我的 jdbc source worker
的配置
name=postgress-to-topic
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
connection.url=jdbc:postgresql://localhost:5432/test-kafka
connection.user=postgres
connection.password=postgress
topic.prefix=postgres-
#mode=bulk
mode=incrementing
incrementing.column.name=id
errors.log.enable=true
errors.log.include.messages=true
tasks.max=1
poll.interval.ms =100
schema.pattern=test-kafka
#catalog.pattern=test-kafka
table.whitelist=mytable
#dialect.name=PostgreSqlDatabaseDialect
key.converter=org.apache.kafka.connect.json.JsonConverter
value.converter=org.apache.kafka.connect.json.JsonConverter
key.converter.schemas.enable=false
value.converter.schemas.enable=false
topic.prefix=postgress-
这些是同一文件中的 mysql 配置,目前已注释。
#mysql configs
#connection.user=root
#connection.password=root
#connection.url=jdbc:mysql://localhost:3306/test-kafka?useSSL=false
#name=mysql-to-topic
#topic.prefix=mysql2-
#schema.pattern=test-kafka
#table.whitelist=user-data-1
下面是我的 postgress 数据库的样子
下面是我的 mysql 数据库的样子(工作正常)
我对 postgress 没有太多经验,无法理解为什么它无法在 postgress 中获取 table。
相信 confluent 连接器是 debezium 连接器
https://www.confluent.io/hub/debezium/debezium-connector-postgresql
这里有文档
https://debezium.io/documentation/reference/connectors/postgresql.html
这需要使用来自 Postgres 的逻辑复制才能获取更改。您需要配置系统以复制您要从中获取更改并创建发布的表。
参见:
数据库和模式在 postgress 中是两个不同的东西,层次结构如下所示
database-> {schema1, schema2}
schema1-> {table, table}
schema2-> {table, table}
我给 schema.pattern 作为导致问题的数据库名称,一旦我给了正确的架构名称,它就可以正常工作。
我在 windows 上有一个独立的 kafka 运行ing 和一个与我的机器上可用的 postgress 数据库连接的 JDBC 源连接器。当我尝试 运行 连接器时,它显示一条警告,没有任务 运行 因为没有找到 table。而如果我将相同的连接器与 mysql db(也在本地安装)连接。它能够拾取 tables 并且工作正常。请注意,我使用的是 confluent 的 jdbc 连接器和默认的 apache-kafka。
下面是我在 postgress 中收到的警告
这是我的 jdbc source worker
的配置name=postgress-to-topic
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
connection.url=jdbc:postgresql://localhost:5432/test-kafka
connection.user=postgres
connection.password=postgress
topic.prefix=postgres-
#mode=bulk
mode=incrementing
incrementing.column.name=id
errors.log.enable=true
errors.log.include.messages=true
tasks.max=1
poll.interval.ms =100
schema.pattern=test-kafka
#catalog.pattern=test-kafka
table.whitelist=mytable
#dialect.name=PostgreSqlDatabaseDialect
key.converter=org.apache.kafka.connect.json.JsonConverter
value.converter=org.apache.kafka.connect.json.JsonConverter
key.converter.schemas.enable=false
value.converter.schemas.enable=false
topic.prefix=postgress-
这些是同一文件中的 mysql 配置,目前已注释。
#mysql configs
#connection.user=root
#connection.password=root
#connection.url=jdbc:mysql://localhost:3306/test-kafka?useSSL=false
#name=mysql-to-topic
#topic.prefix=mysql2-
#schema.pattern=test-kafka
#table.whitelist=user-data-1
下面是我的 postgress 数据库的样子
下面是我的 mysql 数据库的样子(工作正常)
我对 postgress 没有太多经验,无法理解为什么它无法在 postgress 中获取 table。
相信 confluent 连接器是 debezium 连接器
https://www.confluent.io/hub/debezium/debezium-connector-postgresql
这里有文档
https://debezium.io/documentation/reference/connectors/postgresql.html
这需要使用来自 Postgres 的逻辑复制才能获取更改。您需要配置系统以复制您要从中获取更改并创建发布的表。
参见:
数据库和模式在 postgress 中是两个不同的东西,层次结构如下所示
database-> {schema1, schema2}
schema1-> {table, table}
schema2-> {table, table}
我给 schema.pattern 作为导致问题的数据库名称,一旦我给了正确的架构名称,它就可以正常工作。