如何在cassandra中使用非主键删除行

zqry0prt  于 2021-06-15  发布在  Cassandra
关注(0)|答案(1)|浏览(503)

这是我的table id 作为主键:

我想根据删除行 msisdn 列。
我该怎么做?
请建议

44u64gxh

44u64gxh1#

答案是:通过编写一个工具,首先执行 select 使用 allow filtering 要确定主键,请使用确定的主键执行删除操作。
实际的答案是:你不会,因为我刚才提出的方法会非常慢,会让你的集群承受很大的压力,而且通常会暴露出对cassandra数据建模工作原理的误解。
cassandra数据建模与sql数据建模有本质的不同。在sql中,您有了主键,进行了规范化,然后非常有信心能够以良好的性能查询和编写大多数内容。在cassandra中,你为你的查询建模,我所说的查询是指任何包含 where .
假设这样设计表是有原因的,那么可以添加一个 msisdn 将其转换为分区键,然后 id 进入一个聚类列。这样,您至少可以在不执行 allow filtering . 你仍然需要两个来回,一个用于阅读,一个用于删除,但这一费用可能是可以接受的。如果不是这样,您需要从根本上重新设计表,记住您需要按 msisdn .

相关问题