我有一个列族,它有一个二级索引“指针”。如何删除具有相同“指针”值的多个行(例如abc)?
我知道的唯一选择是:
expr = create_index_expression('pointer', 'abc')
clause = create_index_clause([expr])
for key, user in cassandra_cf.get_indexed_slices(clause):
cassandra_cf.remove(key)但我知道这是非常低效的,如果我有数千行具有相同的“指针”值,可能会花费很长时间。还有没有别的选择?
发布于 2013-01-01 04:55:35
您可以一次删除多行:
expr = create_index_expression('pointer', 'abc')
clause = create_index_clause([expr])
with cassandra_cf.batch() as b:
for key, user in cassandra_cf.get_indexed_slices(clause):
b.remove(key)这会将删除分为100个批次(默认情况下)。当批处理对象被用作上下文管理器时,一旦离开with块,它将自动处理发送任何剩余的突变。
您可以在pycassa.batch API docs中阅读有关这方面的更多信息。
https://stackoverflow.com/questions/14002605
复制相似问题