2011-03-08 34 views
3

如何列出hbase表中的所有行鍵?如何列出hbase表中的所有行鍵?

我需要使用PHP和REST接口來做到這一點。

+1

可能重複[?如何列出在HBase的表中的所有行鍵(http://stackoverflow.com/questions/5218085/how-to-list-all-row-keys -h-hbase-table) – CanSpice 2011-03-22 20:46:58

+1

這是hbase_user在其他問題中試圖提出的問題的一個重複......但它不是實際要求(或回答)的內容的重複。 – mdahlman 2012-01-28 06:08:41

回答

5

如果你列出所有的按鍵在HBase的表,那麼你使用的是錯誤的工具。 HBase適用於大數據系統,列出所有密鑰是不切實際的。

更合理的是從給定的鍵開始並列出接下來的N個鍵(對於N小於10K的值)。有一個很好的Java接口用於掃描 - 設置開始鍵和/或結束鍵。

大多數HBase功能通過Thrift接口公開。我會建議看看那裏

+0

嗨大衛,謝謝你的回覆。我正在試用REST接口,並發現了一些在極限範圍內掃描表的方法。不幸的是,它不能像我的集羣中那樣工作。如果我回去尋找節儉,它會殺死我很多工作時間!如果您有任何使用REST界面連接hbase和php的良好工作方式,請上來幫助我! – 2011-03-11 05:24:36

4

我不知道什麼是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/

+1

JAVA!我需要PHP的方式! – 2011-03-17 04:29:21

3

這...

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

...將表相對於您在返回的所有值在該表中的列,有點像在掃描儀中應用列過濾器。

此外,如果您正在尋找多列 - 用逗號分隔它們。

所以:/tablename/*/columnfamily:columnid,columnfamily:columnid2

相關問題