2011-11-06 51 views
0

像這樣的情形: 在HBase的表中,有不同的列對於不同的行,例如: ROW1具有列FM:一,FM:B,FM:C ROW2具有列FM:一,FM:d如何使用「multiple AND in columns」來過濾hbase中的行?

所以我想用掃描來測試一行是否同時具有列fm:a & fm:b,如果是這樣,返回這一行,否則不應該在掃描結果中返回該行。在上面的情況下,我只想將row1返回。

我檢查hbase中的過濾器,看起來好像如果在過濾器級別執行此操作,性能將會很差。有任何想法嗎?

回答

0

您需要將每列添加到掃描 - 像這樣。 創建一個hashTable,比如ht

for each columnFamily in ht: 
    { for each column in columnFamily: 
    { scan.addColumn(Bytes.toBytes(columnFamily), Bytes.toBytes(column)); } 
    }