Язык HBase Filter в PHP с Thrift - PullRequest
       22

Язык HBase Filter в PHP с Thrift

1 голос
/ 26 декабря 2011

Я ищу способ использования языка фильтров HBase в PHP.

Глава книги HBase Book по Thrift выглядит формально и предоставляет пользователю несколько фильтров для доступа к HBase в PHP. Пример PHP-кода также предоставляется на этой странице, но я не могу найти какие-либо API в Thrift (например, $client->scannerOpenWithFilterString(...)). Я даже проверил файл определения комиссионных для HBase 0.92.0 , но у него нет интерфейса для scannerOpenWithFilterString.

Используемые версии: Hadoop 0.20.203.0, Hbase 0.90.4 и thrift 0.8.0.

Кто-нибудь знает, как использовать PHP с функциями фильтра для доступа к HBase?

1 Ответ

3 голосов
/ 29 марта 2012

Hbase фильтры для Thrift API были реализованы в v.0.92. Есть функция с именем scannerOpenWithScan (), которая принимает 2 параметра - имя таблицы и объект TScan.

Вам необходимо сгенерировать классы php для thrift, используя Hbase.Комиссионный файл, предоставленный в hbase 0.92+ release

thrift -gen php Hbase.thrift 

В объекте TScan вы можете установить startRow, stopRow, метку времени, столбцы, кэширование и filterString - это именно то, что вам нужно.

Пример: получить строки 00100, 00200 и 00300

$flt = "RowFilter(=, 'regexstring:00[1-3]00')";
$scan = new TScan(array("filterString" => $flt));

или

$scan = new TScan();
$scan->setFilterString($flt);

и, наконец,

$scanner = $client->scannerOpenWithScan("table_name", $scan);
while ($result = $client->scannerGet($scanner)) {
  ...
}

Для получения информации о синтаксисе filterString и доступных фильтрах см. вложения здесь:https://issues.apache.org/jira/browse/HBASE-4176

...