Как использовать «несколько AND в столбцах» для фильтрации строк в hbase? - PullRequest
0 голосов
/ 06 ноября 2011

Сценарий, подобный следующему: в таблице hbase есть разные столбцы для разных строк, например: row1 имеет столбцы fm: a, fm: b, fm: c row2 имеет столбцы fm: a, fm: d

Поэтому я хочу использовать сканирование, чтобы проверить, есть ли в строке оба столбца fm: a & fm: b, если да, вернуть эту строку, в противном случае эта строка не должна возвращаться в результате сканирования.В приведенном выше случае я просто хочу вернуть row1.

Я проверяю фильтры в hbase, похоже, что если сделать это на уровне фильтров, производительность будет плохой.Есть идеи?

1 Ответ

0 голосов
/ 23 мая 2012

вам нужно добавить каждый столбец в скан - вот так. Создайте хеш-таблицу, скажем, ht

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