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

Cassandra批量插入异常:删除后重复执行批量插入无数据

Cassandra批量插入失败原因分析
  • 核心问题出在Cassandra的时间戳版本优先级机制:

    1. 步骤2执行DELETE时,Cassandra会自动生成一条「墓碑(tombstone)」记录,这条墓碑的时间戳是执行删除操作时的当前系统时间,必然晚于你批量插入语句里固定的16783871583(即使时间戳位数不完整,逻辑依然成立)。
    2. Cassandra处理数据时,始终以时间戳最大的版本作为有效数据。当你重复执行步骤1的批量插入时,指定的时间戳小于墓碑的时间戳,Cassandra会判定这条插入属于旧数据,不会覆盖墓碑,所以查询时无法返回该记录,表现为插入失败。
    3. 单条INSERT语句如果未手动指定TIMESTAMP,Cassandra会自动使用当前系统时间作为时间戳,这个时间戳比墓碑的时间戳大,因此能覆盖墓碑,数据可以正常插入并被查询到。
  • 验证方法:把批量插入语句里的TIMESTAMP改成比删除时间更大的值,比如:

    BEGIN BATCH USING TIMESTAMP 1700000000000 
    INSERT INTO test.fruit (lastUpdateTime, name, color) VALUES (1678387158324,'apple','red');
    APPLY BATCH;
    

    执行后就能正常插入记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 21:12:42