Intereting Posts

Язык фильтра HBase в PHP с Thrift

Я ищу способ использования HBase Filter Language в PHP.

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

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

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

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

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

     thrift -gen php Hbase.thrift 

    В объекте TScan вы можете установить startRow, stopRow, timestamp, columns, caching и 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