sql-server - 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)
我不明白的是这个表有一个主键:
会是什么?
解决方案
我发现原因是PK的名称。重命名为一个不带“。”的 角色作品。这应该是一个错误。
推荐阅读
- python - 是否有一个功能可以提取标签内的标签和美丽汤中的所有其他标签
- swift - 如何实现firebase事务
- html - 如何在不影响其他浏览器的情况下最好地修复 Safari 透视 (TranslateZ) 堆叠上下文?
- mongodb - 聚合mongodb后如何更新所有文档?
- c++ - gcc vs clang:两次扩展捕获的参数包
- haskell - 如何通过 Nix 覆盖 nixpkgs 中的 Haskell 包?
- azure - 如何将示例文件导入我的 Azure 数据工厂
- app-store-connect - 开发者账号调查需要多长时间?
- c - 如何处理在gdb中包裹成多行的单行?
- javascript - How function unless works int the example in Chapter 5 Higher-Order Functions from the Eloquent JavaScript 3rd edition?