首页 > 解决方案 > Kafka将CDC连接到MSSQL“表必须至少有一个主键列”

问题描述

我正在使用带有 MSSQL 连接器的 Kafka Connect 以及启用了 CDC 的数据库和表。使用 REST API 创建任务时,我收到以下错误:

ERROR Exception thrown while querying for ChangeKey{databaseName=WebAppDb, schemaName=dbo, tableName=Companies} (io.confluent.connect.cdc.mssql.QueryService)
kafka-connect_1     | java.lang.IllegalStateException: Table([dbo].[Companies]) must have at least one primary key column.
kafka-connect_1     |   at com.google.common.base.Preconditions.checkState(Preconditions.java:197)
kafka-connect_1     |   at io.confluent.connect.cdc.mssql.MsSqlQueryBuilder.changeTrackingStatementQuery(MsSqlQueryBuilder.java:81)
kafka-connect_1     |   at io.confluent.connect.cdc.mssql.MsSqlQueryBuilder.changeTrackingStatement(MsSqlQueryBuilder.java:119)
kafka-connect_1     |   at io.confluent.connect.cdc.mssql.QueryService.queryTable(QueryService.java:117)
kafka-connect_1     |   at io.confluent.connect.cdc.mssql.QueryService.processTables(QueryService.java:92)
kafka-connect_1     |   at io.confluent.connect.cdc.mssql.QueryService.run(QueryService.java:67)
kafka-connect_1     |   at com.google.common.util.concurrent.AbstractExecutionThreadService$1$2.run(AbstractExecutionThreadService.java:60)
kafka-connect_1     |   at com.google.common.util.concurrent.Callables$3.run(Callables.java:95)
kafka-connect_1     |   at java.lang.Thread.run(Thread.java:748)

我不明白的是这个表有一个主键:

在此处输入图像描述

会是什么?

标签: sql-serverapache-kafka-connectconfluent-platformcdc

解决方案


我发现原因是PK的名称。重命名为一个不带“。”的 角色作品。这应该是一个错误。


推荐阅读