我有一个带有二级索引'指针'的列族。如何删除具有相同“指针”值的多行(例如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)
但是我知道这是非常低效的,如果我有数千行具有相同的'指针'值,可能需要很长时间。还有其他选择吗?
答案 0 :(得分:0)
您可以一次删除多行:
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
块被遗留后发送任何剩余的突变。