如何在HBase中存储和查询范围数据?
How to store and query range data in HBase?
目前,我在Solr中存储Ip映射数据,有点像这样:
Ip-From
Ip-To
Country
这形成了单个记录(文档)。当我将 IP 作为输入时,我查询 Solr 以找出它所属的区域(国家)。查询很简单——ip >= ipFrom 和 ip <= ipTo。响应时间很短(好),但仍然不符合我们的要求。无法在内存中缓存此数据,因为它非常大。
因此,我正在考虑使用其他存储方式来存储此类数据。 HBase 是否适用,如果适用,存储和查询此类数据的理想方式是什么?
我的理解:你想传递 Ip(来自或到)并且你想查找特定的国家或地区。
是的。如果您想将 Hbase 用作唯一的数据存储,您可以在 Hbase 中存储数据并使用 filters 进行查询。
根据我的经验,Solr 搜索比 Hbase 更快,并且可以使用 NRT 或 Batch 索引器(如果您使用的是 CDH)或其他一些工具来索引 Hbase 数据。
此外,Whitefret 提出了担忧(这对我来说听起来合乎逻辑)。与 ipfrom、ipto 和 country 一起,如果您在 solr 中存储任何其他内容,那么 hbase 可以用于你 。否则就不需要像 Hbase 这样的中间存储,你需要重新访问你的 solr 配置。
目前,我在Solr中存储Ip映射数据,有点像这样:
Ip-From
Ip-To
Country
这形成了单个记录(文档)。当我将 IP 作为输入时,我查询 Solr 以找出它所属的区域(国家)。查询很简单——ip >= ipFrom 和 ip <= ipTo。响应时间很短(好),但仍然不符合我们的要求。无法在内存中缓存此数据,因为它非常大。
因此,我正在考虑使用其他存储方式来存储此类数据。 HBase 是否适用,如果适用,存储和查询此类数据的理想方式是什么?
我的理解:你想传递 Ip(来自或到)并且你想查找特定的国家或地区。
是的。如果您想将 Hbase 用作唯一的数据存储,您可以在 Hbase 中存储数据并使用 filters 进行查询。
根据我的经验,Solr 搜索比 Hbase 更快,并且可以使用 NRT 或 Batch 索引器(如果您使用的是 CDH)或其他一些工具来索引 Hbase 数据。
此外,Whitefret 提出了担忧(这对我来说听起来合乎逻辑)。与 ipfrom、ipto 和 country 一起,如果您在 solr 中存储任何其他内容,那么 hbase 可以用于你 。否则就不需要像 Hbase 这样的中间存储,你需要重新访问你的 solr 配置。