The present invention discloses a method of column aggregation of HBASE, based on the HBase server end query mechanism, the system architecture of the method is set up with the aggregation scanner module, and extends the description information of the aggregate table, in which the column aggregation properties are added; in the query, the multi version data of the same cell based on the column aggregation is carried out according to the column aggregation. Aggregations are made to achieve aggregation on a cell; when the data is merged, the HBase server converge the multiple versions of the data and retain the results based on the column aggregation attribute information in the aggregate table description, and the non result data merge operation is cleared after the execution of the non result data merge operation. The method disclosed by the invention has better improvement than the existing technology in terms of real-time performance, performance and resource use in the aggregation table query.
【技术实现步骤摘要】
一种HBase的列聚合方法
本专利技术公开了一种HBase的列聚合方法,涉及计算机信息存储
技术介绍
HBase是一个参考Google的BigTable实现的高可靠性、高性能、面向列、可伸缩的开源非关系型数据库,采用HDFS作为底层存储。随着大数据技术的发展和应用,HBase逐渐成为业界广泛使用的NoSQL分布式存储系统,它具有高可靠、面向列、开源等特点,已被Facebook、阿里巴巴等公司成功用于生产系统。HBase数据模型如下表所示:HBase最基本的单位是列(Column、Qualifier);一个列或者多个列形成了一个列簇(Family、Store),一个列簇或者多个列簇形成了一行(Row),并由唯一的行键(RowKey)来确定存储;每个列有可能有多个版本(TimeStamp),存储在同一个单元格(Cell)中,例如图中的value1。HBase合并(Compact):列簇下的每个HFile保存了多个版本的数据,合并就是将同一个列簇下的多个HFile多个版本的数据按照是否过期、最多保留版本个数有选择的将部分最新版本的数据合并在一个新的HFile中,清除其他版本的数据,以提高查询的性能。聚合表的更新操作包括:聚合数据:对一组数据进行聚合操作(如平均值、最大、最小等)并返回确定的结果,该结果称为聚合数据。聚合表是指:结合业务需求,在HBase中存储包含聚合数据的表;从HBase角度看,该表就是一个普通的用户表,所以在存储数据时,需要先将数据读出来和现在的数据进行聚合运算,将结果再写到HBase中(称为Read-Write方案)。目前被广泛使用 ...
【技术保护点】
1.一种HBase的列聚合方法,基于HBase服务端查询机制,其特征在于:所述方法的系统架构中设置有聚合扫描器模块,并且扩展HBase表的描述信息,在其中增加列聚合属性;在查询时,根据列聚合属性对同一单元格的多版本数据进行聚合计算,实现在单元格上的聚合;在合并数据时,HBase服务端根据HBase表描述中的列聚合属性信息,将存在多版本的数据进行聚合并将结果保留,非结果数据合并操作执行完后被清除。
【技术特征摘要】
1.一种HBase的列聚合方法,基于HBase服务端查询机制,其特征在于:所述方法的系统架构中设置有聚合扫描器模块,并且扩展HBase表的描述信息,在其中增加列聚合属性;在查询时,根据列聚合属性对同一单元格的多版本数据进行聚合计算,实现在单元格上的聚合;在合并数据时,HBase服务端根据HBase表描述中的列聚合属性信息,将存在多版本的数据进行聚合并将结果保留,非结果数据合并操作执行完后被清除。2.如权利要求1所述的一种HBase的列聚合方法,其特征在于:所述列聚合属性记录了聚合的列和聚合的方式。3.如权利要求2所述的一种HBase的列聚合方法,其特征在于:所述聚合的方式包括平均、最大、最小、最近、最早或者求和,用户根据具体业务扩展聚合的方式。4.如权利要求1所述的一种HBase的列聚合方法,其特征在于:在所述聚合扫描模块中,每个单元格根据列聚合属性,选择不同的聚合方式对所有的HFile和写缓存的同一单元格数据进行聚合计算。5.如权利要求1所述的一种HBase的列聚合方法,其特征在于,查询的流程具体包括:1、构造Region扫描器:HBase服务端接收到客户端的读请求,HBase服务端根据请求对应的Region构造扫描器,所述扫描器是由多个聚合扫描器组成的最小堆构成的,所述聚合扫描器由多个HFile扫描器和内存扫描器组成的最小堆构成的,HFile扫描器读取文件服务器上的HFile数据,内存扫描器读取内存中的数据;2、从聚合扫描器中获取堆顶的KeyValue:HBase服务端循环的从聚合扫描器的堆顶获取最小的KeyValue,匹配当前KeyValue是否满足查询条件:如果匹配不中,再从聚合扫描器中取最小的KeyValue,直到命中或者取完一行数据;如果匹配命中,进入下一步;3、聚合列的同一单元格的KeyValue聚合:如果匹配中的KeyValue所属的列数据聚合列,将该KeyValue加到缓存中;判断下一个KeyValue和当前KeyValue是...
【专利技术属性】
技术研发人员:崔博,曹俊亮,周帅锋,王勇强,
申请(专利权)人:西安烽火软件科技有限公司,
类型:发明
国别省市:陕西,61
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。