簡體   English   中英

HBase Shell前綴過濾器的速度比靜態端點快100倍

[英]HBase Shell Almost 100x Faster Than Restful Endpoint For Prefix Filter

如果在HBase Shell上使用前綴過濾器運行掃描,則無論我使用什么前綴,都可以在不到1秒的時間內得到響應。 (0對9或“ a”對“ z”對響應速度沒有影響)。

但是,當我從Microsoft HBase庫(在C#中)進行相同的查詢時,最多可能需要90秒才能獲得答案。 有趣的是,如果我選擇一個更接近於0的前綴,則它越快,離0越遠,花費的時間就越長。 (作為前綴過濾器,“ a”比“ f”要快)。

不知道如何確定外殼程序與靜態查詢的操作有所不同,或者如何使靜態查詢更高效。

一些細節:

  • 該表中有20,000,000條記錄
  • 行密鑰設計為[guid] _ [反向時間戳記],例如a6fc9620-5ff0-41c0-9ed9-660bc3fbb65c_9223370501253811889

對我應該尋找或試圖改善其余api請求的任何想法嗎?

原來這不是問題。 我沒有像我想的那樣在Shell和其余API上運行相同的命令。

在其余的API上,我提供了兩個過濾器,一個頁面過濾器和一個前綴過濾器。

在HBase Shell上,我正在運行

scan 'beacon', {STARTROW => 'ff', FILTER => "PageFilter(25)"}

STARTROW與前綴過濾器不同。 實際上,它做的更多事情是設置完整的開始行鍵,從而使掃描性能更高,因為它沒有遍歷整個表。

事實證明,這也是我在其余API調用中應該做的事情。 當我除了設置前綴過濾器和頁面過濾器之外,還設置了開始和結束行時,它可以按預期快速運行。

https://community.hortonworks.com/articles/55204/recommended-way-to-do-hbase-prefix-scan-through-hb.html

我應該在HBase中使用prefixfilter還是行鍵范圍掃描

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM