知识卡片

KV存储加全文索引的分离架构

专业/工作 · 1206.e

内容

HBase这类KV存储只能按[[HBase RowKey设计三原则]]里的单一rowkey检索,不支持”性别=女且城市=北京”这种多条件组合查询;而Elasticsearch这类全文检索引擎恰恰擅长复杂条件的秒级聚合,却不适合做大规模明细数据的主存储。解法是让两者各司其职:数据本体存HBase,把可检索字段连同rowkey一起同步进ES做索引;查询时先用组合条件在ES里筛出一批id,再拿这批id去HBase批量取详细数据。

参考来源

- 位置:《用户画像:方法论与工程化解决方案》第3章《标签数据存储》(源文件:_epub-src/OEBPS/text00042.html) - 结论依据:原文围绕“基于HBase的存储方案并没有解决数据的高效检索问题。在实际应用中,经常有根据特定的”给出定义、场景或处理方式,支撑卡片对“KV存储加全文索引的分离架构”的概括。 - 原始内容:基于HBase的存储方案并没有解决数据的高效检索问题。在实际应用中,经常有根据特定的几个字段进行组合后检索的应用场景,而HBase采用rowkey作为一级索引,不支持多条件查询,如果要对库里的非rowkey进行数据检索和查询,往往需要通过MapReduce等分布式框架进行计算,时间延迟上会比较高,难...