You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cassandra使用问题:实体键未迁移,hash_key与key_desc_id不一致如何解决

Cassandra 实体键hash_key与key_desc_id不一致修复方案

从提供的查询结果可知,当前k2_hash_key对应的id为1638430494138,但entity表中所有记录的key_desc_id统一为1572012180007,两者不匹配导致实体键校验异常,可按以下步骤修复:

修复前准备

  • 全量备份k2view_cc键空间下的entity表以及存储键描述的元数据表,避免操作失误导致数据丢失,备份命令参考:
    cqlsh -e "COPY k2view_cc.entity TO '/data/backup/entity_2024xxxx.csv' WITH HEADER = true;"
  • 暂停所有对接该Cassandra集群的业务读写流量,避免修复过程中生成新的脏数据。

修复操作

方案1:批量更新entity表key_desc_id(推荐,影响范围可控)

该方案适用于确认k2_hash_key对应的元数据id1638430494138为正确值的场景:

  1. 先验证待更新的记录范围是否符合预期:
SELECT COUNT(*) FROM k2view_cc.entity WHERE key_desc_id = 1572012180007;
  1. 确认记录数匹配后执行批量更新,建议按id分批更新避免全表扫描影响集群性能,示例语句:
UPDATE k2view_cc.entity 
SET key_desc_id = 1638430494138 
WHERE id IN (
  'D54C994CF3CBDA1F70E37853B07388D0C65E824F1BDF3D4F83731513EB8A5399',
  'DD5C1E2D9395CA6B1B5ABDF87C03392493F03328F37830045749EA1AE725AF91',
  '3467EA971FC018EB561F07F57547CF17E618B76D93B4F8471280C3CF8FB32D58',
  'EB4A8D07DF41EDDB49D530BE39B8D8850AFF7D108787CE1EF46EE27D00E99E57',
  'AB92F2C90E3337EED0B68B2EC1B56B6FA45A9461C711406B7ED01BE7B29F75EE',
  '9BC6D9862B68C8AE810CC1A00BFF87ADF6A95A262C98987780807D458682330C',
  'AFE8B598517CCFC09E71DF10417DAC3B1002731F43334CA6872BC4CEA9A07D75'
);

方案2:修正元数据表的k2_hash_key ID

该方案适用于确认entity表中key_desc_id1572012180007为正确值,只是元数据表中k2_hash_key的ID配置错误的场景,执行以下语句更新元数据:

UPDATE 存储键描述的元数据表名 
SET id = 1572012180007 
WHERE name = 'k2_hash_key';

修复后验证

  1. 执行关联查询验证匹配关系是否正确:
SELECT e.id, e.key_desc_id, k.name 
FROM k2view_cc.entity e 
LEFT JOIN 存储键描述的元数据表名 k ON e.key_desc_id = k.id 
LIMIT 10;

返回结果中name字段为k2_hash_key即表示关联关系修复成功。
2. 恢复业务流量,持续观察业务日志是否还有实体键相关异常抛出。

内容的提问来源于stack exchange,提问作者freddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 17:15:05