HBase行分页方法、服务器及计算机可读存储介质技术

技术编号:17779900 阅读:30 留言:0更新日期:2018-04-22 08:30
本发明专利技术公开了一种HBase行分页方法,该方法包括:设置HBase数据行分页信息的行健RowKey;获取所述数据行分页信息的数据记录的总个数Total;在同一张表中同时插入所述数据行分页信息和对应的原始数据;接收分页请求中的数据偏移量OffSet和分页大小PageSize;根据所述数据偏移量OffSet和分页大小PageSize计算每次分页的第一行StartRowKey和最后一行StopRowKey;根据每次分页的所述第一行StartRowKey和所述最后一行StopRowKey,以及所述总个数Total,实现对所述原始数据的分页。本发明专利技术实施例还公开了一种服务器和计算机可读存储介质。由此,能够快速有效地实现HBase数据的行分页扫描。

【技术实现步骤摘要】
HBase行分页方法、服务器及计算机可读存储介质
本专利技术涉及数据库
,尤其涉及一种HBase行分页方法、服务器及计算机可读存储介质。
技术介绍
HBase是ApacheHadoop的数据库,能够对大数据提供随机、实时的读写访问功能,具有开源、分布式、可扩展及面向列存储的特点,它的目标是存储并处理大型的数据,更具体地来说只需使用普通的硬件配置即可以处理成千上万的行和列的数据。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,实现对所述原始数据的分页。可选地,所述HBase行分页程序被所述处理器执行时还实现步骤:接收客户端提供的每次分页的所述第一行StartRowKey和所述最后一行StopRowKey。可选地,所述数据行分页信息的行健RowKey的结构为:~_serialNum_primaryRowKey,其中“~”为前缀符号,用于与所述原始数据的行键进行区分;“serialNum”表示插入所述行健RowKey时数据记录的个数;“primaryRowKey”表示所述原始数据中的行健值;“_”为连接符。进一步地,为实现上述目的,本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有HBase行分页程序,所述HBase行分页程序被处理器执行时实现如上述的HBase行分页方法的步骤。本专利技术提出的HBase行分页方法、服务器及计算机可读存储介质,采用了一种基于HBase数据行分页信息冗余的方式,通过额外的空间存储(在同一张表中存储原始数据和数据行分页信息)代价来实现HBase数据的行分页扫描。该方法能够利用HBase中行健RowKey字典排序的特点,通过加入特殊的前缀字符保证原始数据和数据分页信息不会混杂在一起,且数据行分页信息中既包括分页信息也包含原始数据的信息。该方式在获取原始数据以及分页信息时只需操控同一张表,无需二次索引,能够更快地获取原始数据,使用户可以像传统关系型数据库那样,通过偏移量OffSet、分页大小PageSize以及总个数Total来轻松实现数据分页,也就是说,可以实现对任意页的数据查询。另外,该方法中对于数据量的总个数Total进行获取时运算量也是轻量级的,可以降低系统负载。附图说明图1为实现本专利技术各个实施例的一种应用环境架构图;图2为本专利技术第一实施例提出的一种HBase行分页方法的流程图;图3为本专利技术第二实施例提出的一种HBase行分页方法的流程图;图4为本专利技术第三实施例提出的一种服务器的模块示意图;图5为本专利技术第四实施例和第五实施例提出的一种HBase行分页系统的模块示意图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本专利技术的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。请参阅图1,图1为实现本专利技术各个实施例的一种应用环境架构图。本专利技术可应用于包括,但不仅限于,服务器2、客户端4、网络6的应用环境中。其中,所述服务器2可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器等计算设备,该服务器2可以是独立的服务器,也可以是多个服务器所组成的服务器集群。所述客户端4可以是移动电话、智能电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、导航装置、车载装置等等的可移动设备,以及诸如数字TV、台式计算机、服务器等等的固定终端。所述网络6可以是企业内部网(Intranet)、互联网(Inter本文档来自技高网...
HBase行分页方法、服务器及计算机可读存储介质

【技术保护点】
一种HBase行分页方法,应用于服务器,其特征在于,该方法包括:步骤a:设置HBase数据行分页信息的行健RowKey;步骤b:获取所述数据行分页信息的数据记录的总个数Total;步骤c:在同一张表中同时插入所述数据行分页信息和对应的原始数据;步骤d:接收分页请求中的数据偏移量OffSet和分页大小PageSize;步骤e:根据所述数据偏移量OffSet和分页大小PageSize计算每次分页的第一行StartRowKey和最后一行StopRowKey;及步骤f:根据每次分页的所述第一行StartRowKey和所述最后一行StopRowKey,以及所述总个数Total,实现对所述原始数据的分页。

【技术特征摘要】
1.一种HBase行分页方法,应用于服务器,其特征在于,该方法包括:步骤a:设置HBase数据行分页信息的行健RowKey;步骤b:获取所述数据行分页信息的数据记录的总个数Total;步骤c:在同一张表中同时插入所述数据行分页信息和对应的原始数据;步骤d:接收分页请求中的数据偏移量OffSet和分页大小PageSize;步骤e:根据所述数据偏移量OffSet和分页大小PageSize计算每次分页的第一行StartRowKey和最后一行StopRowKey;及步骤f:根据每次分页的所述第一行StartRowKey和所述最后一行StopRowKey,以及所述总个数Total,实现对所述原始数据的分页。2.根据权利要求1所述的HBase行分页方法,其特征在于,该方法中所述步骤d和步骤e替换为:步骤g:接收客户端提供的每次分页的所述第一行StartRowKey和所述最后一行StopRowKey。3.根据权利要求1或2所述的HBase行分页方法,其特征在于,所述数据行分页信息的行健RowKey的结构为:~_serialNum_primaryRowKey,其中“~”为前缀符号,用于与所述原始数据的行键进行区分;“serialNum”表示插入所述行健RowKey时数据记录的个数;“primaryRowKey”表示所述原始数据中的行健值;“_”为连接符。4.根据权利要求3所述的HBase行分页方法,其特征在于,所述serialNum为10进制或16进制的定长字符串。5.根据权利要求3所述的HBase行分页方法,其特征在于,所述步骤b具体包括:将所述数据行分页信息的顺序反转;获取反转后的第一个行健RowKey;通过所述连接符“_”将所述行健RowKey的值进行分割,得到“serialNum”的值;将所述“serialNum”的值去除前缀的零,即得到所述总个数Total。6.根据权利要求3所述的HBase行分页方法,其特征在于,所述步骤e具体包括:根据设置所述数据行分页信息...

【专利技术属性】
技术研发人员:陈金添
申请(专利权)人:努比亚技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1