Как перечислить все ключи строк в таблице hbase? - PullRequest
3 голосов
/ 08 марта 2011

Как мне перечислить все ключи строк в таблице hbase?

Мне нужно сделать это, используя PHP с интерфейсом REST.

Ответы [ 4 ]

5 голосов
/ 09 марта 2011

Если вы перечисляете все ключи в таблице HBase, значит, вы используете не тот инструмент.HBase предназначен для больших систем данных, где нецелесообразно перечислять все ключи.

Что может быть более разумным, так это начать с заданного ключа и перечислить следующие N ключей (для значений N менее 10K),Существуют хорошие Java-интерфейсы для выполнения таких задач с помощью сканирования - установка ключа запуска и / или ключа завершения.

Большая часть функциональности HBase предоставляется через интерфейс Thrift.Я бы предложил посмотреть там

4 голосов
/ 17 марта 2011

Я не знаю, как выглядит интерфейс REST, но вы, вероятно, хотите отфильтровать некоторые данные на стороне клиента, чтобы избежать больших откликов RPC. Вы можете сделать это, добавив серверные фильтры к вашему сканированию:

Scan s = new Scan();
FilterList fl = new FilterList();
// returns first instance of a row, then skip to next row
fl.addFilter(new FirstKeyOnlyFilter());
// only return the Key, don't return the value
fl.addFilter(new KeyOnlyFilter());
s.setFilter(fl);

HTable myTable;
ResultScanner rs = myTable.getScanner(s);
Result row = rs.next();
while (row != null) ...

http://svn.apache.org/repos/asf/hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/filter/

4 голосов
/ 09 марта 2011

Я нашел способ ..

http://localhost:8080/tablename/* вернет данные XML, и я могу предварительно сопоставить их, чтобы получить строки.

Приглашение лучших предложений ..

3 голосов
/ 26 ноября 2011

This ...

http://localhost:8080/tablename/*/columnfamily:columnid 

... вернет все значения в вашей таблице относительно этого столбца в этой таблице, что-то вроде применения фильтра столбцов в сканере.

Также, если вы ищете несколько столбцов - разделяйте их запятой.

Итак: /tablename/*/columnfamily:columnid,columnfamily:columnid2

...