1
我有一個超級列家族,在這段時間裏需要刪除一系列超級列。我四處搜索,似乎沒有找到使用hector的解決方案。任何人都可以幫忙嗎?使用hector,如何刪除一系列超級列?
我有一個超級列家族,在這段時間裏需要刪除一系列超級列。我四處搜索,似乎沒有找到使用hector的解決方案。任何人都可以幫忙嗎?使用hector,如何刪除一系列超級列?
您必須首先執行列切片以獲取要刪除的列,然後循環並生成突變列表。然後您可以在一次Hector呼叫中將所有這些突變發送到Cassandra:
Mutator<..> mutator = HFactory.createMutator(keyspace, serializer);
SuperSlice<..> result = HFactory.createSuperSliceQuery(keyspace, ... serializers ...)
.setColumnFamily(cf)
.setKey(key)
.setRange("", "", false, Integer.MAX_VALUE)
.execute()
.get();
for (HSuperColumn<..> col in result.getSuperColumns())
mutator.addDeletion(key, cf, col.getName(), serializer);
mutator.execute();
我現在有不同的問題。如果我只想刪除一個列,我是否仍然需要進行superslice查詢,我認爲它相當昂貴? – tom
如果您已經知道密鑰,您可以簡單地爲每個密鑰創建一個突變列表,並提供列名(與上述答案中的相同)。如果你不知道密鑰,你需要一個RangeSlicesQuery,你可以在這裏調用setReturnKeysOnly()來避免把所有事情都弄回來。 –
值得一提的是,你應該研究用複合材料替代SCs。有關複合列的詳細信息,請參見[本文](http://www.datastax.com/dev/blog/introduction-to-composite-columns-part-1)。 –