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

如何从Cassandra 3.6中删除数据?附sg.products表定义

嘿,针对你用的Cassandra 3.6版本和这个sg.products表,我来给你详细讲讲删除数据的方法,还有一些实操中要注意的点:

基础删除操作

你的表主键是(date_updated, time_added, id),其中date_updated是分区键,time_added和id是聚类列。Cassandra的DELETE操作必须指定分区键(不然没法定位到具体数据所在的分区,还会触发性能极差的全表扫描),下面是几种常见的删除场景:

1. 删除单条特定记录

要精准删除某一条数据,需要指定完整的主键组合:

DELETE FROM sg.products 
WHERE date_updated = '2024-05-20' 
AND time_added = 1716182400 
AND id = 'prod123';

2. 删除整个分区的所有数据

如果想删掉某个date_updated对应的所有产品记录,只需要指定分区键即可:

DELETE FROM sg.products 
WHERE date_updated = '2024-05-20';

也可以缩小范围,删除分区内符合聚类列条件的记录(比如删除某天中早于某个时间添加的产品):

DELETE FROM sg.products 
WHERE date_updated = '2024-05-20' 
AND time_added < 1716182400;

(注:因为你的表聚类顺序是time_added ASC,所以可以对time_added用范围查询,要是聚类列没指定顺序,这类范围操作会受限)

3. 删除单条记录的特定字段

如果不想删掉整条记录,只想清除某个字段的值(比如best_seller标记),可以直接指定字段名:

DELETE best_seller FROM sg.products 
WHERE date_updated = '2024-05-20' 
AND time_added = 1716182400 
AND id = 'prod123';
批量删除多条记录

要是需要一次性删掉多条不同的记录,可以用BATCH语句打包操作:

BEGIN BATCH
  DELETE FROM sg.products WHERE date_updated = '2024-05-20' AND time_added = 1716182400 AND id = 'prod123';
  DELETE FROM sg.products WHERE date_updated = '2024-05-21' AND time_added = 1716268800 AND id = 'prod456';
APPLY BATCH;

⚠️ 注意:Cassandra的BATCH不是为了高性能批量处理设计的,别一次性塞几十上百条操作进去,不然会拖慢集群。

实操关键注意事项
  • 墓碑(Tombstones):Cassandra不会立刻物理删除数据,而是写入一个“墓碑”标记数据已删除,后续的压缩操作才会真正清理掉这些数据。如果一次性删大量数据,会产生很多墓碑,拖慢查询性能,记得定期监控墓碑数量,必要时调整压缩策略。
  • 自动过期(TTL):如果希望数据自动过期删除,插入时可以加TTL,也能给已存在的数据更新TTL:
    UPDATE sg.products USING TTL 86400 
    SET company = company 
    WHERE date_updated = '2024-05-20' AND time_added = 1716182400 AND id = 'prod123';
    
    上面这条语句会让目标记录在24小时后自动被标记为删除。
  • 一致性级别:删除操作默认的一致性级别是ONE(只要有一个副本确认删除就返回成功),如果需要确保所有副本都同步删除,可以指定QUORUM:
    DELETE FROM sg.products 
    WHERE date_updated = '2024-05-20' 
    USING CONSISTENCY QUORUM;
    
  • 禁止全表扫描删除:千万别尝试不带分区键的DELETE(比如DELETE FROM sg.products WHERE id='prod123'),这会触发全表扫描,严重影响集群性能,Cassandra 3.6也会默认阻止这类操作,别去改配置绕过它。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:29:41