[发明专利]HBase行分页方法、服务器及计算机可读存储介质在审
申请号: | 201711234263.9 | 申请日: | 2017-11-30 |
公开(公告)号: | CN107943981A | 公开(公告)日: | 2018-04-20 |
发明(设计)人: | 陈金添 | 申请(专利权)人: | 努比亚技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 深圳市凯达知识产权事务所44256 | 代理人: | 刘大弯,沈荣彬 |
地址: | 518057 广东省深圳市南山区高新区北环大道9018*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | hbase 分页 方法 服务器 计算机 可读 存储 介质 | ||
技术领域
本发明涉及数据库技术领域,尤其涉及一种HBase行分页方法、服务器及计算机可读存储介质。
背景技术
HBase是Apache Hadoop的数据库,能够对大数据提供随机、实时的读写访问功能,具有开源、分布式、可扩展及面向列存储的特点,它的目标是存储并处理大型的数据,更具体地来说只需使用普通的硬件配置即可以处理成千上万的行和列的数据。
HBase原生提供的分页过滤器(PageFilter)只能支持指定某个起始行和分页大小PageSize参数来实现行分页。在实际的分页展示时,客户端会记录本次扫描的最后一行,并将所述最后一行设为下一次扫描的起始行,同时保留相同的过滤属性,然后依次进行迭代。
然而,上述的分页方法存在的问题有:(1)在每次获取分页数据时必须知道扫描的起始行,因此不能支持任意页的查询;(2)对于分页查询中要获取的数据量的总个数,需要用到cout函数,然而对于经常存储大数据的HBase,cout函数的处理效率很低。
发明内容
本发明的主要目的在于提出一种HBase行分页方法及对应的服务器,旨在解决如何快速有效地实现HBase数据的行分页的问题。
为实现上述目的,本发明提供的一种HBase行分页方法,该方法包括:
步骤a:设置HBase数据行分页信息的行健RowKey;
步骤b:获取所述数据行分页信息的数据记录的总个数Total;
步骤c:在同一张表中同时插入所述数据行分页信息和对应的原始数据;
步骤d:接收分页请求中的数据偏移量OffSet和分页大小PageSize;
步骤e:根据所述数据偏移量OffSet和分页大小PageSize计算每次分页的第一行StartRowKey和最后一行StopRowKey;及
步骤f:根据每次分页的所述第一行StartRowKey和所述最后一行StopRowKey,以及所述总个数Total,实现对所述原始数据的分页。
可选地,该方法中所述步骤d和步骤e可以替换为:
步骤g:接收客户端提供的每次分页的所述第一行StartRowKey和所述最后一行StopRowKey。
可选地,所述数据行分页信息的行健RowKey的结构为:~_serialNum_primaryRowKey,其中“~”为前缀符号,用于与所述原始数据的行键进行区分;“serialNum”表示插入所述行健RowKey时数据记录的个数;“primaryRowKey”表示所述原始数据中的行健值;“_”为连接符。
可选地,所述serialNum为10进制或16进制的定长字符串。
可选地,所述步骤b具体包括:
将所述数据行分页信息的顺序反转;
获取反转后的第一个行健RowKey;
通过所述连接符“_”将所述行健RowKey的值进行分割,得到“serialNum”的值;
将所述“serialNum”的值去除前缀的零,即得到所述总个数Total。
可选地,所述步骤e具体包括:
根据设置所述数据行分页信息的行健RowKey的规则,将所述数据偏移量OffSet设置为所述StartRowKey的“serialNum”值,从而得到所述StartRowKey;
根据OffSet+PageSize+1的值,设置所述StopRowKey的“serialNum”值,从而得到所述StopRowKey。
此外,为实现上述目的,本发明还提出一种服务器,所述服务器包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的HBase行分页程序,所述HBase行分页程序被所述处理器执行时实现如下步骤:
设置HBase数据行分页信息的行健RowKey;
获取所述数据行分页信息的数据记录的总个数Total;
在同一张表中同时插入所述数据行分页信息和对应的原始数据;
接收分页请求中的数据偏移量OffSet和分页大小PageSize;
根据所述数据偏移量OffSet和分页大小PageSize计算每次分页的第一行StartRowKey和最后一行StopRowKey;及
根据每次分页的所述第一行StartRowKey和所述最后一行StopRowKey,以及所述总个数Total,实现对所述原始数据的分页。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于努比亚技术有限公司,未经努比亚技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711234263.9/2.html,转载请声明来源钻瓜专利网。