一种源分布式数据库捕获数据的系统及方法

文档序号:6627847阅读:381来源:国知局
一种源分布式数据库捕获数据的系统及方法
【专利摘要】本发明披露了源分布式数据库捕获数据的系统及方法,其中方法包括:当区域服务器开始保存记录时,将内存缓存中的数据刷新到分布式文件系统的文件里,然后针对所有要保存记录的分布式文件系统的文件创建相应链接的引用文件,并将引用文件存储到标记为本服务器的文件集合中。本发明用这样的保存记录方式,能够让用户在不同阶段均能对源分布式数据库进行捕获数据的操作,从而放心使用源分布式数据库信息记录的数据。
【专利说明】一种源分布式数据库捕获数据的系统及方法

【技术领域】
[0001]本发明涉及分布式计算机集群系统数据库技术,尤其涉及分布式集群系统中开源分布式数据库捕获数据的系统及方法。

【背景技术】
[0002]随着数据量呈现爆炸式的增长,单个计算机的运算处理能力及存储能力已经远远不能满足数据存储及处理的要求。因此,计算机分布式的体系结构受到了用户的关注及好评。在分布式体系结构中,可以将多台廉价的计算机搭建成分布式集群系统,由此使得每台机器上都能运行相应的任务,同时也能并行地处理用户的需求。分布式集群系统具有高性能、高可靠、高扩展及低成本的特点。HBase是用于分布式集群系统的开源的分布式数据库。利用HBase技术可在廉价的服务器上搭建起大规模结构化存储集群,具有很高的数据吞吐量和很好的结构伸缩能力,并且不仅能够同时处理结构化数据和非结构化的数据,还能通过实时随机读写来补充分布式文件系统(HDFS)的不足。因此,对HBase定期捕获数据是非常重要的。
[0003]在传统的数据库中,捕获数据的方法要考虑事务的一致性。数据库通过日志的方式保证事务的一致性,即在所有的事务提交后才能标记完成。在该过程中,如果有错误发生,会通过日志回缩的方式回到当前系统中的事务。因此,在捕获传统数据库中的数据时,要保证每个数据库中的保存记录与源数据库一致。在捕获数据的保存记录时一般采用写时拷贝的方式来保存数据记录。
[0004]在HBase分布式数据库中,对HBase表中的合并操作和删除操作会使得数据发生改变。在一些应用中,用户需要使用各个阶段HBase表中的数据。HBase中存放数据的框架图如图1所示。区域服务器(Hreg1nServer)内部管理了一系列的区域(Hreg1n)对象,每个Hreg1n对应了 Hbase表中的一个域(Reg1n), HReg1n中由多个存储文件(Hstore)组成。每个Hstore对应了 Hbase表中的一个列族(ColumnFamily)的数据存储,每个ColumnFamily其实就是一个集中的存储单元。Hstore是HBase存储的核心,它由两部分组成,一部分是缓存(MemStore),—部分是文件(StoreFile)。MemStore是内存缓存,用户写入的数据首先放到MemStore中,直到MemStore达满就会刷新到StoreFile中形成底层HDFS的HFile文件。因此,在HBase定期捕获数据时需要对MemStore和HFile文件保存记录。而HDFS的HFile文件是在区域服务器中管理的,因此,需要对区域服务器的这些记录进行分布式的保存。在HBase中主服务(Master)与Reg1nServer通信框架图如图2所示。
[0005]由于现有的HBase技术尚无一个实现对HBase定期捕获数据的具体实现途径和方法,使得HBase分布式数据库不能满足用户在不同阶段使用HBase表相应的数据信息的要求。因此,为满足用户对HBase的使用需求,需要提供一种HBase定期捕获数据的方法,能够让用户在不同阶段均放心地使用HBase表中的数据。


【发明内容】

[0006]本发明所要解决的技术问题是提供一种源分布式数据库捕获数据的系统及方法,能够让用户在不同阶段均放心地使用HBase表中的数据。
[0007]为了解决上述技术问题,本发明提供了一种源分布式数据库捕获数据的方法,包括:
[0008]当区域服务器开始保存记录时,将内存缓存中的数据刷新到分布式文件系统的文件里,然后针对所有要保存记录的分布式文件系统的文件创建相应链接的引用文件,并将引用文件存储到标记为本服务器的文件集合中。
[0009]进一步地,该方法还包括:
[0010]区域服务器在收到保存记录的请求后通知主服务模块;
[0011]主服务模块根据该请求将需要保存记录的信息记录名称通知到相应的区域服务器,并针对相应的区域服务器创建相应的文件集合;
[0012]区域服务器在成功完成保存记录的操作时,将存有引用文件的文件集合返回给主服务模块;
[0013]主服务模块在收到区域服务器返回的文件集合后,将其存储到相应的区域服务器的文件集合中。
[0014]进一步地,区域服务器收到的保存记录的请求,是由用户发出的请求,或是由源分布式数据库系统定期自动发出的请求。
[0015]进一步地,源分布式数据库是HBase,则各区域服务器执行保存记录的工作流程具体包括:
[0016]创建标记本区域服务器的文件夹,文件夹即文件集合;
[0017]判断本区域服务器是否满足保存记录的条件,即查看所有的内存缓存中是否有数据,是则将内存缓存中的数据刷新到内存文件中,然后将内存文件的数据存储到分布式文件系统的文件中;
[0018]针对所有要保存记录的分布式文件系统的文件在创建的文件夹里建立能链接分布式文件系统的文件相应的引用文件;
[0019]向主服务模块返回携带存有引用文件的文件夹的成功操作通知。
[0020]为了解决上述技术问题,本发明提供了一种源分布式数据库捕获数据的系统,包括多个区域服务器,其中:
[0021]区域服务器,用于在开始保存记录时,将内存缓存中的数据刷新到分布式文件系统的文件里,然后针对所有要保存记录的分布式文件系统的文件创建相应链接的引用文件,并将引用文件存储到标记为本服务器的文件集合中。
[0022]进一步地,该系统还包括通过分布式可靠协调组件与多个区域服务器连接的主服务模块,其中:
[0023]区域服务器在收到保存记录的请求后通知主服务模块;在成功完成保存记录的操作时,将存有引用文件的文件集合返回给主服务模块;
[0024]主服务模块,用于根据该请求将需要保存记录的信息记录名称通知到相应的区域服务器,并针对相应的区域服务器创建相应的保存记录的文件集合;在收到区域服务器返回的文件集合后,将其中的引用文件存储到相应的区域服务器的文件集合中。
[0025]进一步地,区域服务器收到的保存记录的请求,是由用户发出的请求,或是由源分布式数据库系统定期自动发出的请求。
[0026]本发明根据源分布式数据库中的一部分数据保存在区域缓存中,还有一部分数据以分布式文件系统的文件形式持久化在分布式文件系统中,故针对上述两个部分数据分别进行保存记录的操作。用这样的方式,能够让用户在不同阶段均能对源分布式数据库进行捕获数据的操作,从而放心使用源分布式数据库信息记录的数据。

【专利附图】

【附图说明】
[0027]图1为现有的HBase中存放数据的框架图;
[0028]图2为现有的HBase中主服务与区域服务器通信的框架图;
[0029]图3为本发明的以HBase为实施例的源分布式数据库捕获数据的方法中区域服务器保存记录的流程图。

【具体实施方式】
[0030]以下结合附图和优选实施例对本发明的技术方案进行详细地阐述。应该理解,以下列举的实施例仅用于说明和解释本发明,不构成对本发明技术方案的限制。
[0031]本发明用HBase作为实施例,来叙述对源分布式数据库的捕获数据的方法。由于在HBase中的数据是分别存放在HDFS的永久性文件HFile中和区域服务器中内存缓存MemStore中,故对于HBase定期捕获数据,则需对HFile、MemStore两处保存记录。在MemStore内存中保存记录的方式是先将MemStore中的数据刷新到HFile中,然后再对HFile进行保存记录的操作。在对永久性文件HFile保存记录时,要针对每个HFile文件创建一个指向该文件的引用文件。通过这样的方式来定期捕获HBase中数据。
[0032]本发明的源分布式数据库捕获数据的方法实施例,包括如下步骤:
[0033]当区域服务器开始保存记录时,将内存缓存中的数据刷新到分布式文件系统的文件里,然后针对所有要保存记录的分布式文件系统的文件创建相应链接的引用文件,并存储到标记为本服务器的文件集合中。
[0034]上述方法实施例还包括:
[0035]区域服务器在收到保存记录的请求后通知主服务模块;
[0036]主服务模块根据该请求将需要保存记录的信息记录名称通知到相应的区域服务器,并针对相应的区域服务器创建相应的保存记录的文件集合;
[0037]区域服务器在成功完成保存记录的操作时,将存有引用文件的文件集合返回给主服务模块;
[0038]主服务模块在收到区域服务器的文件集合后,将其存储到相应的区域服务器的文件集合中。
[0039]在上述方法实施例中,区域服务器收到的保存记录的请求,是用户发出的请求,或是源分布式数据库系统定期自动发出的请求。
[0040]在上述方法实施例中,若源分布式数据库是HBase,则各区域服务器执行保存记录的工作流程如图3所示,包括如下步骤:
[0041]110:创建一个标记本区域服务器的文件夹;
[0042]该文件夹即上述文件集合。
[0043]120:判断本区域服务器是否满足保存记录的条件,是则执行步骤140,否则执行步骤130 ;
[0044]在此,保存记录的条件是指查看所有的内存缓存(MemStore)中均没有数据。
[0045]130 J^MemStore中的数据刷新到内存文件(StoreFile)中,然后将StoreFile的数据存储到分布式文件系统的文件(Hfile)中;
[0046]140:针对所有要保存记录的Hfile文件在创建的文件夹里建立能链接Hfile相应的引用文件;
[0047]150:向主服务模块返回携带存有引用文件的文件夹的成功操作通知。
[0048]本发明针对上述方法实施例,相应地还提供了源分布式数据库捕获数据的系统,包括多个区域服务器,其中:
[0049]区域服务器,用于在开始保存记录时将内存缓存中的数据刷新到分布式文件系统中的文件里,然后针对所有要保存记录的分布式文件系统中的文件创建相应链接的引用文件,并存储到标记为本服务器的文件集合中。
[0050]上述系统实施例还包括通过分布式可靠协调组件与多个区域服务器连接的主服务模块,其中:
[0051]区域服务器在收到保存记录的请求后通知主服务模块;在成功完成保存记录的操作时,将存有引用文件的文件集合返回给主服务模块;
[0052]主服务模块,用于根据该请求将需要保存记录的信息记录名称通知到相应的区域服务器,并针对相应的区域服务器创建相应的保存记录的文件集合;在收到区域服务器的文件集合后,将其中的引用文件存储到相应的区域服务器的文件集合中。
[0053]在上述系统实施例中,区域服务器收到的保存记录的请求,是由用户发出的请求,或是由源分布式数据库系统定期自动发出的请求。
【权利要求】
1.一种源分布式数据库捕获数据的方法,包括: 当区域服务器开始保存记录时,将内存缓存中的数据刷新到分布式文件系统的文件里,然后针对所有要保存记录的分布式文件系统的文件创建相应链接的引用文件,并将引用文件存储到标记为本服务器的文件集合中。
2.按照权利要求1所述的方法,其特征在于,还包括: 所述区域服务器在收到所述保存记录的请求后通知主服务模块; 主服务模块根据该请求将需要保存记录的信息记录名称通知到相应的区域服务器,并针对相应的区域服务器创建相应的文件集合; 所述区域服务器在成功完成所述保存记录的操作时,将存有所述引用文件的文件集合返回给主服务模块; 主服务模块在收到所述区域服务器返回的文件集合后,将其存储到相应的区域服务器的文件集合中。
3.按照权利要求2所述的方法,其特征在于, 所述区域服务器收到的所述保存记录的请求,是由用户发出的请求,或是由源分布式数据库系统定期自动发出的请求。
4.按照权利要求2或3所述的方法,其特征在于,所述源分布式数据库是HBase,则各区域服务器执行保存记录的工作流程具体包括: 创建所述标记本区域服务器的文件夹,所述文件夹即所述文件集合; 判断本区域服务器是否满足保存记录的条件,即查看所有的内存缓存中是否有数据,是则将所述内存缓存中的数据刷新到内存文件中,然后将内存文件的数据存储到所述分布式文件系统的文件中; 针对所有要保存记录的所述分布式文件系统的文件在创建的所述文件夹里建立能链接所述分布式文件系统的文件相应的引用文件; 向主服务模块返回携带存有引用文件的文件夹的成功操作通知。
5.一种源分布式数据库捕获数据的系统,包括多个区域服务器,其中: 区域服务器,用于在开始保存记录时,将内存缓存中的数据刷新到分布式文件系统的文件里,然后针对所有要保存记录的分布式文件系统的文件创建相应链接的引用文件,并将引用文件存储到标记为本服务器的文件集合中。
6.按照权利要求5所述的系统,其特征在于,还包括通过分布式可靠协调组件与所述多个区域服务器连接的主服务模块,其中: 所述区域服务器在收到保存记录的请求后通知主服务模块;在成功完成保存记录的操作时,将存有所述引用文件的文件集合返回给主服务模块; 主服务模块,用于根据所述请求将需要保存记录的信息记录名称通知到相应的区域服务器,并针对相应的区域服务器创建相应的保存记录的文件集合;在收到所述区域服务器返回的文件集合后,将其中的引用文件存储到相应的区域服务器的文件集合中。
7.按照权利要求6所述的系统,其特征在于,所述区域服务器收到的所述保存记录的请求,是由用户发出的请求,或是由所述源分布式数据库系统定期自动发出的请求。
【文档编号】G06F17/30GK104239542SQ201410488046
【公开日】2014年12月24日 申请日期:2014年9月22日 优先权日:2014年9月22日
【发明者】孙志云, 郭美思, 吴楠 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1