PaaS系统中hbase数据导出方法及装置的制造方法_2

文档序号:9727501阅读:来源:国知局
完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0047]为了解决现有技术中,PaaS系统中hbase数据导出时,处理速度慢,导出时间长、效率低的问题,本发明实施例提供一种PaaS系统中hbase数据导出方法,能够实现快速、高效的数据导出。下面通过具体的实施例进行详细说明。
[0048]实施例一
[0049]本发明实施例一提供的PaaS系统中hbase数据导出方法,其流程如图1所示,包括如下步骤:
[0050]步骤S101:接收用户发送的数据读取指令,其中,数据读取指令中包括关键字范围。
[0051]用户想要获取用户数据时,发送数据读取指令到数据服务器,请求获取用户数据。数据读取指令中包括要获取的用户数据的关键字范围。
[0052]可选的,要获取的用户数据的关键字范围通过起始关键字和结束关键字表征,此时可以直接从数据读取指令中解析出起始关键字和结束关键字。
[0053]或,可选的,要获取的用户数据的关键字范围通过起始关键字和关键字的数量表征,此时解析出数据读取指令中包括的起始关键字和关键字的数量,并根据起始关键字和关键字的数量,确定出结束关键字。
[0054]步骤S102:根据数据指令中包括的关键字范围,确定待导出的用户数据的起始关键字和结束关键字所在的存储区域。
[0055]根据数据读取指令中包括的关键字范围,确定待导出的用户数据的起始关键字和结束关键字,依次查询根(root)表、业务字典(meta)表、业务表,确定起始关键字和结束关键字所在的业务表。确定出起始关键字和结束关键字所在的业务表之后,即可知道待导出的用户数据位于从起始关键字所在的业务表开始,到结束关键字所在的业务表结束的这些业务表中,即用户数据位于起始关键字所在的业务表、结束关键字所在的业务表、以及位于这两个业务表之间的业务表。
[0056]具体可以根据起始关键字中包括的用户标识信息和关键字值,以及结束关键字中包括的用户标识信息和关键字值,查询root表、meta表、以及确定出的meta表所对应的业务表,实现确定所述起始关键字和结束关键字所在的业务表。
[0057]步骤S103:对起始关键字和结束关键字所在的存储区域,根据关键字范围对其中存储的用户数据进行关键字匹配判断。
[0058]对起始关键字和结束关键字所在的存储区域,遍历起始关键字和结束关键字所在的存储区域中的用户数据文件;根据用户数据文件中用户数据的关键字中包括的用户标识信息和关键字值,判断用户数据的关键字是否是关键字范围内的关键字;当判断为是时,认为该用户数据为关键字匹配的用户数据。
[0059]例如,上述步骤中确定出对起始关键字和结束关键字所在的业务表之后,由于这两个业务表中包括待导出的用户数据,也可能包括不需要导出的用户数据,因此,可以依次遍历这些业务表中的用户数据文件,找到用户数据文件中包括关键字范围内的关键字的用户数据。
[0060]步骤S104:将关键字匹配的用户数据拷贝到下载目录下供用户下载。
[0061]对用户数据文件中包括的关键字匹配的用户数据进行提取,并将其拷贝到可供用户下载的目录下,用户即可从该目录下下载在这些用户数据了。
[0062]步骤S105:对处于起始关键字和结束关键字所在的存储区域之间的存储区域,将其中的用户数据拷贝到下载目录下供用户下载。
[0063]由于业务表以及业务表中的用户数据都是按照字典顺序存放的,因此,对处于起始关键字和结束关键字所在的业务表之间的业务表,这些业务表中的数据均是待导出的用户数据,因此,将其拷贝到可供用户下载的目录下,用户即可从该目录下下载在这些用户数据了。
[0064]实施例二
[0065]本发明实施例二提供的PaaS系统中hbase数据导出方法,其流程如图2所示,包括如下步骤:
[0066]步骤S201:用户发送数据读取指令。
[0067]在PAAS系统中,用户是共享一个存储服务的,也就是所有用户的数据都存在一个独立的hbase系统中,用户之间的key是通过前缀区分的,这个前缀是系统加上的,之后所有的查询,更新,删除操作都可以带上这个前缀,而返回给用户时会将这个前缀给去掉,所以前缀对于用户来说是不可知的。
[0068]如图3所示为hbase系统中存储用户数据的存储表结构示意图,hbase系统中有两个特殊的表,根(root)表和业务字典(meta)表,Root表只有一份,通过root表再定位到meta表,me ta表可能有多份,再通过me ta表找到最终的业务表以及业务表中需要操作的key。图3
中的&33,131313,(1(1(1,......,等等这些前缀都是key的前缀。如图3中最左侧为root表,中间一列为meta表,右边一列为业务表。
[0069]图3中每个方块都表示一个存储区域(reg1n),hbase系统中把若干数据划分成一个reg1n,reg1n的大小是可以配置的,一般是10G左右,当超过了这个大小后,一个reg1n就会被分裂成两个reg1n ο
[0070]用户需要获取用户数据时,可以通过客户端发送数据读取指令到数据服务器,向数据服务器请求获取用户数据,该数据读取指令中包括关键字范围。
[0071 ] 例如:用户数据在bbb_前缀开头的这几个reg1n中,key的范围是bbb_l至ljbbb_2000,则用户要获取用户数据时,用户发送的数据读取指令中包括的关键字(key)的范围是bbb_l到bbb_2000;其中,起始关键字为bbb_l,结束关键字为bbb_2000。
[0072]步骤S202:数据服务器接收用户发送的数据读取指令。
[0073]数据服务器接收用户发送的数据读取指令,从数据读取指令中解析出其中包括的关键字范围。
[0074]沿用上边的例子,从接收到的数据读取指令中解析出key的范围bbb_l至ljbbb_
2000 ο
[0075]步骤S203:根据数据读取指令中包括的关键字范围,确定待导出的用户数据的起始关键字和结束关键字。
[0076]沿用上边的例子,根据key的范围bbb_l到bbb_2000,确定出起始关键字为bbb_l,结束关键字为bbb_2000。
[0077]步骤S204:依次查询root表、meta表,确定待导出的用户数据的起始关键字和结束关键字所在的meta表。
[0078]根据起始关键字中包括的用户标识信息和关键字值,以及结束关键字中包括的用户标识信息和关键字值,查询root表、meta表、以及确定出的meta表所对应的业务表,实现确定起始关键字和结束关键字所在的业务表。其中用户标识?目息即为上述的key的如缀和关键字值为前缀后边的数字。
[0079 ]沿用上边例子,如图3所示,查询roo t表、me ta表,确定待导出的用户数据的起始关键字bbb_l和结束关键字bbb_2000所在的meta表分别为下边的两个meta表。
[0080]步骤S205:根据确定出的起始关键字和结束关键字,查找确定出的meta表所对应的业务表,确定起始关键字和结束关键字所在的业务表。
[0081]确定起始关键字所在业务表、结束关键字所在的业务表、以及起始关键字所在业务表和结束关键字所在的业务表之间的业务表为待导出的用户数据的存储区域。
[0082]沿用上边的例子,如图3所示,假设aaa_100这个reg1n的起始key是aaa_100,结束
key 是 bbb_20 ;......;bbb_2000这个 reg1n 的起始 key 是 bbb_2000,结束 key 是 ddd_100 ;......。
根据图3中下边的两个meta表,得到起始关键字bbb_l和结束关键字bbb_2000所在的业务表为aaa_100和bbb_2000这两个业务表,由
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1