使用 Kafka Signal 的 Debezium SQL Server 源连接器的临时快照不起作用

问题描述 投票:0回答:1

我已关注https://debezium.io/documentation/reference/2.4/configuration/signalling.html#debezium-signaling-enabling-kafka-signaling-channel

的文档

但是当我注册源连接器配置并发送 Kafka 信号时,什么也没有发生,没有数据被快照,除了

之外没有任何日志出现
connect                  | 2024-05-13 06:43:40,834 INFO   ||  Requested 'INCREMENTAL' snapshot of data collections '[testDB.dbo.orders]' with additional conditions '[AdditionalCondition{dataCollection=testDB.dbo.orders, filter='product_id>102'}]' and surrogate key 'id'   [io.debezium.pipeline.signal.actions.snapshotting.ExecuteSnapshot]

将信号通道设置为“source”时,我仍然可以使用信令表进行临时快照。 当我切换到使用Kafka信令方法并发送kafka信号时,信令表不会附加任何有关快照的记录。

我不知道我错过了哪一步?

这是我使用 kafka 信号执行快照的步骤:

  1. 创建信令表
CREATE TABLE debezium_signal (id VARCHAR(42) PRIMARY KEY, type VARCHAR(32) NOT NULL, data VARCHAR(2048) NULL);
  1. 配置源连接器:
  "signal.data.collection": "testDB.dbo.debezium_signal",
  "signal.enabled.channels": "source,kafka",
  "signal.kafka.topic": "kafka-dbz",
  "signal.kafka.bootstrap.servers": "****",
  1. 发送信号消息:
echo 'CDC:{"id":"d139b9b7-7777-4547-917d-e1775ea61d46","type":"execute-snapshot","data": {"data-collections": ["testDB.dbo.orders"], "surrogate-key": "id", "type": "INCREMENTAL", "additional-conditions": [{"data-collection": "testDB.dbo.orders", "filter": "product_id>102 and product_id<107"}]}}' | docker-compose exec -T kafka /kafka/bin/kafka-console-producer.sh --bootstrap-server kafka:9092 --topic kafka-dbz --property "parse.key=true" --property "key.separator=:" 
sql-server apache-kafka snapshot debezium adhoc
1个回答
0
投票

这是官方答案,我确实检查了CDC启用模式的信号收集,结果我忘记为其启用CDC。因此,信号消息无法触发任何临时快照。只需检查表 CDC 启用模式,它就会正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.