Debezium Postgres 连接器 "After applying the include/exclude list filters, no changes will be captured"

Debezium Postgres Connector "After applying the include/exclude list filters, no changes will be captured"

我正在使用 Debezium(一种 Kafka 连接器)来捕获 Postgres 数据库更改,但我从 Debezium 收到错误消息。有谁知道下面的错误是什么意思,并可能提供修复它的建议。

更多调试信息:

Postgres|dbserver1|snapshot  After applying the include/exclude list filters, no changes will be captured. Please check your configuration!   [io.debezium.relational.RelationalDatabaseSchema]

我已经(在日志中)验证 Kafka(和模式注册表等)运行 正确,并且 Debezium 连接器似乎已经启动,并且 Postgres iw 正常工作并且创建了数据库和表.

以下是 Debezium 连接器配置:

{
    "name": "banking-postgres-connector",
    "config": {
        "connector.class": "io.debezium.connector.postgresql.PostgresConnector",
        "database.hostname": "postgres",
        "database.port": "5432",
        "database.user": "postgres",
        "database.password": "postgres",
        "database.dbname" : "banking",
        "database.server.name": "dbserver1",
        "database.include.list": "banking",
        "tasks.max": "1",
        "table.include.list": "public.x_account,public.x_party,public.x_product,public.x_transaction"
    }
}

经过数小时的调试(加上@OneCricketeer 的一些建议,这些建议为我指明了正确的方向),我设法获得了适用于 debezium/connect:1.9 的配置。解决方案是通过消除配置项来使用默认值:

database.include.list
schema.include.list

最终的 Debezium 配置如下:

{
    "name": "banking-postgres-connector",
    "config": {
        "connector.class": "io.debezium.connector.postgresql.PostgresConnector",
        "database.hostname": "postgres",
        "database.port": "5432",
        "database.user": "postgres",
        "database.password": "postgres",
        "database.dbname" : "banking",
        "database.server.name": "dbserver1",
        "tasks.max": "1"
    }
}

这确实指出了 Debezium 文档和代码中的一个小漏洞:

  1. 文档应为“schema.include.list”或“database.include.list”提供有效值(示例),因为单独为任一值添加数据库名称似乎不适用于 postgres...
  2. 如果能从日志中获取更多信息,那就太好了...警告消息既难以 find/understand 又让人无从下手。由于在这种情况下 没有 数据被捕获,因此它可能需要更高的重要性(记录错误?)

注意:我提供以上建议只是因为我发现 Debezium 是一款出色的产品!