信息持久化和查询方法及装置制造方法及图纸

技术编号:10070869 阅读:114 留言:0更新日期:2014-05-23 15:27
本申请公开了一种应用于key-value数据库的信息持久化方法和装置,针对任一业务实体对象,将该业务实体对象的属性值分别存储到数据表的同一行的不同列中,并基于该业务实体对象的属性值而生成行键。由于HBase等数据库是基于列的存储模式来实现信息的持久化,而该方案正是将对应于同一业务实体对象的属性值存储在同一行的不同列中,因此,相比于现有技术提供的针对关系数据库的信息持久化方案,本申请实施例提供的该方案更能够匹配于key-value数据库关于存储模式的特性。本申请还公开一种面向对象的查询方法和装置。

【技术实现步骤摘要】
信息持久化和查询方法及装置
本申请涉及信息搜索
,尤其涉及一种应用于key-value数据库的信息持久化和查询方法及装置。
技术介绍
HBase(HadoopDatabase)是key-value数据库,其是一个分布式的、面向列的开源数据库,该技术来源于Changetal所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。与关系数据库的另一个不同的是HBase采用的是基于列存储模式。目前,针对关系数据库,已有众多关系对象映射(ORM)框架来对JDBC进行面向对象的封装,并产生了JDO(JavaDataObject)和JPA(JavaPersistenceAPI)等针对由Java类表示的业务实体对象的持久化规范。其中,JDO提供了透明的业务实体对象持久化方案,除关系数据库外,其还可以提供包括对象数据库等在内的其他类型的数据库的业务实体对象持久化方案。现有技术提供的这些方案总体来说是针对关系数据库的存储特性而提出的,并没有考虑到HBase的一些特性,如HBase是基于列的存储模式等,从而存在不支持对同一业务实体对象的多个版本的持久化和查询,在查询业务实体对象时不能充分缩减查询范围,查询通常需要扫描HBase中存储有业务实体对象的整张表,从而会浪费较多的处理资源。
技术实现思路
本申请实施例提供一种应用于key-value数据库的信息持久化方法和装置,用以提供一种基于key-value数据库(如HBase)的特性而提出的信息持久化方案。本申请实施例还提供一种面向对象的查询方法和装置,用以对按照本申请实施例提供的持久化方法存储在key-value数据库(如HBase)中的信息进行查询。本申请实施例采用以下技术方案:一种应用于key-value数据库的信息持久化方法,包括:根据针对业务实体对象设置的注解信息,确定存储该业务实体对象的主表、主表行键生成策略和用于生成主表行键的第一属性;确定该业务实体对象所包含的与第一属性对应的属性值,并按照在不同列中存储不同属性值的存储方式,将确定的属性值分别存储到主表的同一行的不同列中;根据主表中存储的属性值在其所在行中的第一排列顺序、主表行键生成策略以及所述确定的属性值,生成主表行键。一种基于上述信息持久化方法的面向对象的查询方法,包括:获得针对业务实体对象的查询条件,并通过对查询条件的解析,获得查询条件包含的属性值;根据指定属性和查询条件中包含的属性值,判断出查询条件中包含对应于指定属性的指定属性值时,针对数据表中存储的各个行键,执行分别确定生成该行键的属性值所构成的第一属性值集合;确定包含有查询条件所包含的指定属性值的第一属性值集合;从确定的包含有查询条件所包含的指定属性值的第一属性值集合所对应的行键中,确定包含的第一个字段所对应的属性值与查询条件包含的指定属性值匹配一致的行键;以及根据查询条件中包含的属性值,查询确定的行键所在的数据表的行中存储的属性值。一种应用于key-value数据库的信息持久化装置,包括:第一注解信息解析单元,用于根据针对业务实体对象设置的注解信息,确定存储该业务实体对象的主表、主表行键生成策略和用于生成主表行键的第一属性;第一属性值确定单元,用于确定该业务实体对象所包含的、与第一注解信息解析单元确定的第一属性对应的属性值;第一属性值存储单元,用于按照在不同列中存储不同属性值的存储方式,将第一属性值确定单元确定的属性值,分别存储到注解信息解析单元确定的主表的同一行的不同列中;主表行键生成单元,用于根据主表中存储的所述确定的属性值在其所在行中的第一排列顺序、第一注解信息解析单元单元确定的主表行键生成策略以及第一属性值确定单元确定的属性值,基于按照所述第一排列顺序排列主表行键中包含的字段所对应的属性值的方式,生成主表行键。一种基于上述信息持久化装置的面向对象的信息查询装置,包括:查询条件解析单元,用于通过对针对业务实体对象的查询条件的解析,获得查询条件包含的属性值;第一集合确定单元,用于根据指定属性和查询条件解析单元获得的查询条件中包含的属性值,判断出查询条件中包含对应于指定属性的指定属性值时,针对数据表中存储的各个行键,执行分别确定生成该行键的属性值所构成的第一属性值集合;第二集合确定单元,用于从第一集合确定单元确定的第一属性值集合中,确定包含有查询条件所包含的指定属性值的第一属性值集合;行键确定单元,用于从第二集合确定单元确定的第一属性值集合所对应的行键中,确定包含的第一个字段所对应的属性值与查询条件包含的指定属性值匹配一致的行键;查询单元,用于根据查询条件解析单元获得的属性值,查询行键确定单元确定的行键所在的数据表的行中存储的属性值。本申请实施例的有益效果如下:本申请实施例提供的上述方案针对任一业务实体对象,将该业务实体对象的属性值分别存储到数据表的同一行的不同列中,并将基于该业务实体对象的属性值而生成的行键。由于HBase等数据库是基于列的存储模式来实现信息的持久化,而该方案正是将对应于同一业务实体对象的属性值存储在同一行的不同列中,因此,相比于现有技术提供的针对关系数据库的信息持久化方案,本申请实施例提供的该方案更能够匹配于key-value数据库关于存储模式的特性。附图说明图1为本申请实施例提供的一种信息持久化方法的具体流程示意图;图2为本申请实施例提供的一种面向对象的查询方法的具体流程示意图;图3为实际应用中用于实现本申请实施例提供的方案的架构示意图;图4为本申请实施例提供的方案在电子商务网站领域中的具体应用流程示意图;图5为本申请实施例提供的一种信息持久化装置的具体结构示意图;图6为本申请实施例提供的一种信息查询装置的具体结构示意图。具体实施方式为了提供一种面向对象数据库的基于key-value数据库特性的信息持久化方案,以解决现有技术中的业务实体对象持久化方案不适用于如HBase等key-value数据库的特性的问题,本申请实施例提供了一种信息持久化方案。该方案针对任一业务实体对象,将该业务实体对象的属性值分别存储到数据表的同一行的不同列中。由于HBase等key-value数据库是基于列的存储模式来实现信息的持久化,而该方案正是将对应于同一业务实体对象的属性值存储在同一行的不同列中,并可选的,将作为业务实体对象查询依据的行键(Row-Key)存储到第一列以便于后续查找,因此,相比于现有技术提供的针对关系数据库的信息持久化方案,本申请实施例提供的该方案更能够匹配于key-value数据库关于存储模式的特性。以下结合附图,详细说明本申请实施例提供的信息持久化方案。请参见图1,其为本申请实施例提供的一种信息持久化方法的具体流程示意图,包括以下步骤11-13。步骤11,针对每个待持久化的业务实体对象,根据针对该业务实体对象设置的注解信息,分别确定存储该业务实体对象的主表、主表行键生成策略和用于生成主表行键的第一属性。本申请实施例中,可以针对业务实体对象预先设置相应的注解信息。比如,针对某一类业务实体对象(如针对商品的评价信息或商品购买事件信息),可以预先设置包括存储该业务实体对象的主表、主表行键生成策略和用于生成主表行键的属性本文档来自技高网...
信息持久化和查询方法及装置

【技术保护点】
一种应用于key‑value数据库的信息持久化方法,其特征在于,包括:根据针对业务实体对象设置的注解信息,确定存储该业务实体对象的主表、主表行键生成策略和用于生成主表行键的第一属性;确定该业务实体对象所包含的与第一属性对应的属性值,并按照在不同列中存储不同属性值的存储方式,将确定的属性值分别存储到主表的同一行的不同列中;根据主表中存储的属性值在其所在行中的第一排列顺序、主表行键生成策略以及所述确定的属性值,生成主表行键。

【技术特征摘要】
1.一种应用于key-value数据库的信息持久化方法,其特征在于,包括:根据针对业务实体对象设置的注解信息,确定存储该业务实体对象的主表、主表行键生成策略和用于生成主表行键的第一属性;确定该业务实体对象所包含的与第一属性对应的属性值,并按照在不同列中存储不同属性值的存储方式,将确定的属性值分别存储到主表的同一行的不同列中;根据主表中存储的属性值在其所在行中的第一排列顺序、主表行键生成策略以及所述确定的属性值,生成主表行键。2.如权利要求1所述的方法,其特征在于,还包括:根据所述注解信息,确定存储该业务实体对象的索引表、索引表行键生成策略和用于生成索引表行键的第二属性;确定该业务实体对象所包含的与第二属性对应的属性值,并按照在不同列中存储不同属性值的存储方式,将确定的与第二属性对应的属性值分别存储到索引表的同一行的不同列中;根据索引表中存储的第二属性对应的属性值在其所在行中的第二排列顺序、索引表行键生成策略以及第二属性对应的属性值,基于按照第二排列顺序排列索引表行键中包含的字段所对应的属性值的方式,生成索引表行键。3.如权利要求1所述的方法,其特征在于,主表中存储属性值的列不包括第一列;则所述方法还包括:根据主表行键与用于生成主表行键的属性值的对应关系,将生成的各个主表行键对应存储到相应的属性值所在行的第一列中。4.一种基于权利要求1~3任一所述的应用于key-value数据库的信息持久化方法的面向对象的查询方法,其特征在于,包括:获得针对业务实体对象的查询条件,并通过对查询条件的解析,获得查询条件包含的属性值;根据指定属性和查询条件中包含的属性值,判断出查询条件中包含对应于指定属性的指定属性值时,针对数据表中存储的各个行键,执行分别确定生成该行键的属性值所构成的第一属性值集合;确定包含有查询条件所包含的指定属性值的第一属性值集合;从确定的包含有查询条件所包含的指定属性值的第一属性值集合所对应的行键中,确定包含的第一个字段所对应的属性值与查询条件包含的指定属性值匹配一致的行键;以及根据查询条件中包含的属性值,查询确定的行键所在的数据表的行中存储的属性值。5.如权利要求4所述的方法,其特征在于,还包括:从查询条件所包含的属性值中,确定不属于任意第一属性值集合的属性值;则根据查询条件中包含的属性值,查询确定的行键所在的数据表的行中存储的属性值之后,还包括:从查询到的对应于不同行键的属性值所分别构成的第二属性值集合中,确定包含确定的不属于任意第一属性值集合的属性值的第二属性值集合;针对包含确定的不属于任意第一属性值集合的属性值的各第二属性值集合,执行根据该第二属性值集合中包含的属性值,生成业务实体对象。6.如权利要求4所述的方法,其特征在于,还包括:从确定的包含有查询条件所包含的指定属性值的第一属性值集合中,确定包含与查询条件所包含的属性值匹配一致的属性值的个数最多的目标属性值集合;则从确定的包含有查询条件所包含的指定属性值的第一属性值集合所对应的行键中,确定包含的第一个字段所对应的属性值与查询条件包含的指定属性值匹配一致的表行键,具体包括:从确定的目标属性值集合所对应的行键中,确定包含的第一个字段所对应的属性值与查询条件包含的指定属性值匹配一致的表行键。7.一种应用于key-value数据库的信息持久化装置,其特征在于,包括:第一注解信息解析单元,用于根据针对业务实体对象设置的注解信息,确定存储该业务实体对象的主表、主表行键生成策略和用于生成主表行键的第一属性;第一属性值确定单元,用于确定该业...

【专利技术属性】
技术研发人员:肖荣
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1