假设我在Cassandra中有一个ColumnFamily,它看起来像:
KEY | VALUE
_____________
foo_a | data
foo_b | data
bar_a | data
bar_b | data
删除密钥以“foo”开头的所有行的最佳方法是什么?如果有用的话,我可以改变数据的结构。
答案 0 :(得分:3)
执行此操作的唯一方法是扫描群集中的每一行,并以编程方式检查它是否以“foo”开头,如果是,则将其删除。
如果您需要这样的功能,您可能会保留以'foo'开头的行索引。每次编写以'foo'开头的行时,您也会将该行的完整键写入索引行。然后,当您想要删除它们时,您可以轻松地执行查找以查找以“foo”开头的所有键。使用该策略,您需要确保索引行不会变得太大。 cassandra的单行技术限制为20亿列,但您希望保持小于20亿列。