HBase适合做BI分析的数据源吗?

本文探讨了HBase作为BI数据源的适用性和局限性,特别是通过Coprocessor进行筛选和聚合运算的性能比较。分析表明,虽然HBase在小规模数据集上表现出较好的性能,但在大规模数据集上,其存储效率和计算速度相较于MySQL和MapReduce有所下降。然而,在某些简单的报表应用中,如FacebookInsight,HBase仍能提供有效的数据支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HBase是建立Hadoop File System上的一层Key-Value Pair 存储服务器。 HBase能够支持Key-Value快速插入,修改及删除,和单个KeyValue快速查询。那么Hbase适合做BI分析的数据源吗?筛选(Filtering)和聚合(Aggregation)BI中的基本运算,所以我们首先要知道HBase是否能支持快速的筛选和聚合运算。

 

MapReduceHadoop系统上的基本计算框架,HBase用户可以使用MapReduce来进行筛选和聚合运算。但是我们知道MapReduce的反应时间一般在几十秒或几分钟以上,这对于实时BI运算过慢。所以我们想调查一下HBase Coprocessor是否是一个更好的选择。

 

HBase Coprocessor是一个比MapReduce更简单的运算系统。Coprocessor相当于是在HBase Region Server上的一个存储过程 (Stored Procedure)。HBase的运算客户可以调用(通过execCoprocessor)在Region Server上的Coprocessor, 来做筛选和聚合运算。 Coprocessor运算Region Server本地进行,然后Region Server将部分结果传递给客户端,最后结果将在客户端组装完成。 下图展示了用Corprocessor做Count运算的示意图。

 

 

程序员可以编写自己的Coprocessor程序,用HBaseScan Object来做筛选,用Java 代码来实现如Sum(), Avg()的聚合运算。

由于HBase本身的API不支持Table Join,我们可以假设所有的数据仓库的数据都存贮在一个巨型的HBase Table上。

 

在逻辑层面上, HBase Table相当于一个3Map--用(Row Column, TimeStamp,我们可以找到相应的值。在具体实现中,HBase Table的数据是按照一个一个数据单元存储的,每个数据单元除了值域以外,还有其它的域,如RowKey, Column IDTimeStamp。这样数据单元的很大一部分空间实际上被用来存储那些Metadata. 这种存储格式对于稀疏报表十分有效,但是当报表的数据密度变大时,其存储效率就大打折扣了。而一个典型的数据仓库的数据表的数据密度往往接近于100%,这时HBase Table的存储效率要远远低于一个简单的2维报表,如一个关系型数据库报表或一个CSV报表。

 

我们测试表明,当数据报表较小时(200—300MB),coprocessor要稍慢于MySQL,但要快于MapReduce. 当数据报表变大时,coprocessor将会比MySQL慢的更多甚至比MapReduce还要慢。而在MapReduce里面,一样的数据,CSVHBase Table相比,CSV要快很多。

                                                                                                                 

综上所述,博主认为,HBase Table本身的存储格式并不适合典型的BI运用。

 

但是对于一些简单的报表应用,如Facebook Insight, HBase依然可以被用作数据源。在Facebook Insight中,每个用户有一些Count度量,如Click#Impression #等,用户ID(作为Key)和这些Count度量都存在一张HBase Table里,Insight可以根据Web Log对于每个用户的度量做实时更新。而每个用户的度量数值亦可以被实时读取。由于这里不牵扯到更加复杂的筛选和聚合运算, HBase可以发挥很好作用。  

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值