一、HBase概述是一个分布式nosql的非关系数据库.
基于HDFS适合海量数据存储
根据RowKey查询数据,效率高
模糊查询效率非常差
随意组合的多条件查询非常差
1.Hbase Observer
HBase 0.92版本后推出了Coprocessor -- 协处理器,一个工作在Master/RegionServer中的框架,能运行用户的代码,从而灵活地完成分布式数据处理的任务。
Coprocessor包含两个组件,一个是EndPoint(类似关系型数据库的存储过程),用以加快特定查询的响应,另一个就是Observer(类似关系型数据库的触发器)。Observer也分为几个类型,其中RegionObserver提供了一组表数据操作的钩子函数,覆盖了Get、Put、Scan、Delete等操作(通常有pre和post两种情况,表示在操作发生之前或发生之后),我们可以通过重载这些钩子函数,利用RegionServer实现特定的数据处理需求。
基于RegionObserver的钩子函数,我们可以覆盖Put及Delete方法来实现Hbase和ES直接的数据同步。
2. 方案目标实现对HBase高性能的范围检索
保证数据的低冗余
保持数据的一致性
3.方案流程
数据进入HBase时,利用Observer同步进入ES索引库;
客户端根据查询条件,利用ES提供的Java API对ES发起查询请求;
ES返回符合条件的RowKey;
客户端再根据RowKey去HBase获取数据;
最后HB