【问题标题】:Debezium Connector filter "partly" workingDebezium 连接器过滤器“部分”工作
【发布时间】:2022-01-13 05:58:00
【问题描述】:

我们有一个可以正常工作的 debezium 连接器。应用了两个过滤条件,其中一个按预期工作,但另一个似乎没有效果。这些是配置的重要部分:

"connector.class": "io.debezium.connector.oracle.OracleConnector",
"transforms.filter.topic.regex": "topicname",
"database.connection.adapter": "logminer",
"transforms": "filter",
"schema.include.list": "xxxx",
"transforms.filter.type": "io.debezium.transforms.Filter",
"transforms.filter.language": "jsr223.groovy",
"tombstones.on.delete": "false",
"transforms.filter.condition": "value.op == \"c\" && value.after.QUEUELOCATIONTYPE == 5",
"table.include.list": "xxxxxx",
"skipped.operations": "u,d,r",
"snapshot.mode": "initial",
"topics": "xxxxxxx"

如您所见,我们想要获取 op 为“c”且“QUEUELOCATIONTYPE”为 5 的记录。在 kafka 主题中,所有记录的 op 字段为“c”。但第二个条件不起作用。有 QUEUELOCATIONTYPE 为 2,3,4 等的记录。 下面给出一个示例记录。

"payload": {
    "before": null,
    "after": {
      "EVENTOBJECTID": "749dc9ea-a7aa-44c2-9af7-10574769c7db",
      "QUEUECODE": "STDQSTDBKP",
      "STATE": 6,
      "RECORDDATE": 1638964344000,
      "RECORDREQUESTOBJECTID": "32b7f617-60e8-4020-98b0-66f288433031",
      "QUEUELOCATIONTYPE": 4,
      "RETRYCOUNT": 0,
      "RECORDCHANNELCODE": null,
      "MESSAGEBROKERSERVERID": 1
        },
    "op": "c",
      "ts_ms": 1638953572392,
      "transaction": null
  }
}

可能是什么问题?即使我不认为它会起作用,我也尝试过切换条件的位置。没有错误代码,连接器正在运行。

【问题讨论】:

    标签: apache-kafka debezium


    【解决方案1】:

    好的,解决了。我正在使用预先创建的配置。在阅读文档时,我发现 "skipped.operations": "u,d,r" 不是 Oracle 配置。它在 MySQL 文档中。因此,我将其删除并更改了连接器名称(缓存数据经常会导致问题)。看起来它现在可以工作了。

    【讨论】:

      猜你喜欢
      • 2021-12-27
      • 2021-05-14
      • 2019-07-22
      • 2020-05-24
      • 2019-12-09
      • 2020-04-27
      • 2020-05-13
      • 2018-12-19
      • 2021-09-07
      相关资源
      最近更新 更多