2011-12-26 63 views
1

我正在尋找一種在PHP中使用HBase過濾器語言的方法。在PHP中使用HBL的HBase過濾器語言

HBase Book的chapter on Thrift似乎是正式的,並提供了一些過濾器供用戶訪問PHP中的HBase。本頁也提供了一個示例PHP代碼,但我無法在節儉中找到任何API(例如$client->scannerOpenWithFilterString(...))。我甚至檢查了thrift definition file for HBase 0.92.0,但它沒有scannerOpenWithFilterString的接口。

使用的版本:Hadoop 0.20.203.0,Hbase 0.90.4thrift 0.8.0

有誰知道如何使用PHP與過濾器功能來訪問HBase?

+0

這可能是[HBASE中的篩選器](http://stackoverflow.com/questions/5348721/filters-in-hbase)的副本。 – PPvG 2011-12-27 12:41:33

+0

歡迎來到StackOverflow :-)。爲確保您獲得快速有用的答案,請務必按照[問]中的提示進行操作。 – PPvG 2011-12-27 12:43:50

回答

3

用於Thrift API的Hbase過濾器在v.0.92中實現 有一個名爲scannerOpenWithScan()的函數,它有2個參數 - 表名和TScan對象。

您需要使用Hbase.thrift文件生成PHP類的節儉,在HBase的提供0.92+釋放

​​

在TSCAN對象,你可以設置STARTROW,stopRow,時間戳列,緩存和filterString - 這正是你所需要的。

例如:Get行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