debezium错误:connectexception:数据行小于列索引

7hiiyaii  于 2021-06-04  发布在  Kafka
关注(0)|答案(2)|浏览(1480)

这个错误现在在我所有的debezium连接器上(在sqlserver上),我试图清除一些k-connect主题来清除元数据,但是没有运气,任何帮助都是非常感谢的。。。有没有感觉到元数据在sql server端,我需要重置?。。。
错误:数据行小于列索引,内部架构表示可能与实际数据库架构不同步

[2019-08-16 20:13:14,745] ERROR Error requesting a row value, row: 8, requested index: 8 at position 8 (io.debezium.relational.TableSchemaBuilder)
[2019-08-16 20:13:14,746] ERROR Producer failure (io.debezium.pipeline.ErrorHandler)
org.apache.kafka.connect.errors.ConnectException: Data row is smaller than a column index, internal schema representation is probably out of sync with real database schema
        at io.debezium.relational.TableSchemaBuilder.validateIncomingRowToInternalMetadata(TableSchemaBuilder.java:209)
        at io.debezium.relational.TableSchemaBuilder.lambda$createValueGenerator$2(TableSchemaBuilder.java:235)
        at io.debezium.relational.TableSchema.valueFromColumnData(TableSchema.java:145)
r7s23pms

r7s23pms1#

我相信您的源表架构不符合cdc中的更改表架构。最近更新过表模式吗?你跟踪了吗https://debezium.io/docs/connectors/sqlserver/#schema-进化论?如果没有,您可能应该通过从偏移主题中删除连接器偏移并清除中配置的主题来从这种情况中恢复 database.history.kafka.topic . 别忘了这个主题必须是每个连接器的unqiue!
j。

omjgkv6w

omjgkv6w2#

谢谢@jiri pechanec,谢谢你的回复。
我尝试了你的解决方案,现在我得到了这个错误。。。我想我已经找出了问题的根源,试图从dba那里获得更多的信息,对我来说,好像添加了索引,出现了这个错误。所以有两个事件是由debezium引发的,它们是不兼容的。
但是当我按照你的建议删除邮件时,它仍然没有工作,原因如下。

[2019-08-19 17:19:50,147] ERROR WorkerSourceTask{id=prm-flags-connector-0} Task threw an uncaught and unrecoverable exception (org.apache.kafka.connect.runtime.WorkerTask)
java.lang.IllegalStateException: The database history couldn't be recovered. Consider to increase the value for database.history.kafka.recovery.poll.interval.ms
        at io.debezium.relational.history.KafkaDatabaseHistory.recoverRecords(KafkaDatabaseHistory.java:224)
        at io.debezium.relational.history.AbstractDatabaseHistory.recover(AbstractDatabaseHistory.java:79)

有两种方法可以清除主题将其保留时间减少到0并将其设置回7天或运行此脚本

./bin/kafka-delete-records.sh --bootstrap-server localhost:9092 --offset-json-file ./offsetfile.json

 {"partitions": [{"topic": "prm-ist-metadata", "partition": 0, "offset": 3}], "version":1 }

我运行了Kafka删除记录脚本
破坏此代码的索引:

CREATE CLUSTERED INDEX [CIX_PRM_HIST_FLAGS] ON [PRM_HIST].[FLAGS]
(
    [isb_IDENTITY_NUMBER] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO

相关问题