2016-05-10 52 views
1

Solr中。目前,我存儲IP映射數據和它有點像這樣:如何在HBase中存儲和查詢範圍數據?

IP-從 IP到 國家

這形成當我得到一個IP作爲一個單一的記錄(文件)。一個輸入,我查詢Solr來找出它所屬的區域(國家)。查詢很簡單 - ip> = ipFrom和ip < = ipTo。響應時間相當短(好),但仍不符合我們的要求。無法將此數據緩存在內存中,因爲它非常龐大。

因此,我正在考慮爲這種類型的數據使用其他存儲。 HBase是否合適,如果是,那麼存儲和查詢此類數據的理想方式是什麼?

任何指針/幫助將不勝感激。謝謝。

+0

你的數據的大小是多少? – Whitefret

+0

約200萬條目。 –

+1

對我來說似乎並不是那麼重要,ip-from和ip-to是64位最大長度(IPv6),想象這個國家大約有15個字母。到字節,這意味着每個entrie大約143字節,這意味着286 MB的數據... – Whitefret

回答

3

我的理解是:你想傳遞Ip(從或到),並且你想查找特定於該國家或地區的國家或地區。

是的。如果您希望僅將Hbase用作數據存儲,那麼您在Hbase中存儲數據並使用filters進行查詢。

根據我的經驗,Solr搜索比Hbase更快,可以使用NRT或批量索引器(如果您使用CDH)或其他工具來索引Hbase數據。

此外,Whitefret提出了擔憂(這聽起來符合邏輯)。以及ipfrom,iptocountry,如果您在solr中存儲其他任何內容,那麼hbase可以爲您工作。否則就不需要像Hbase這樣的中間存儲器,你需要重新訪問你的solr配置。

+0

是的,將再次嘗試使用Solr或可能會加載(當然,保存後它在文件中)直接將HDFS中的數據存儲到內存中。將更新結果。 –

+0

如果你還好,請投票「接受所有者」。使其指向其他用戶的指針。 –

+0

終於結束了存儲在Solr,謝謝。 –