一种数据存储方法及装置制造方法及图纸

技术编号:21089568 阅读:33 留言:0更新日期:2019-05-11 09:57
本申请实施例提供了一种数据存储方法及装置,其中,在存储数据的时候,利用该数据的所有标签值确定该数据的标签索引,一条数据只需要建立一个用于数据查询的标签索引。在需要检索数据的时候,基于检索条件,确定所要检索的目标数据的标签索引,继而利用确定的一个或多个标签索引即可查询到所要检索的目标数据,本申请实施例有效减少了数据存入HBASE数据库库时需要同时入库的标签索引的数量,提高了数据入库的效率,节省了存储空间。

A Data Storage Method and Device

【技术实现步骤摘要】
一种数据存储方法及装置
本申请涉及数据处理
,具体而言,涉及一种数据存储方法及装置。
技术介绍
在大数据兴起的今天,HBASE(分布式存储数据库)作为列式数据库在数据存储、检索方面占据着重要的地位。HBASE不同于一般的关系型数据库,它是一个适合于非结构化数据存储的数据库,具有高可靠性、高性能、面向列、可伸缩、扩展性好、无缝水平扩展、开源性的特点。在数据入库HBASE的时候,HBASE可以为每个数据的标签(属性)建立索引。用户在检索具有某一标签的数据时,利用上述索引即可查询到对应的数据。一条数据可能具有很多的标签,因此一条数据可能需要建立多个索引,这就给数据的入库造成很大的压力,尤其是在数据量巨大的时候,数据入库的效率非常低,同时,大量的索引也引发了索引膨胀,浪费了不必要的存储空间。
技术实现思路
有鉴于此,本申请实施例的目的在于提供一种数据存储方法及装置,数据存入HBASE数据库时,一条数据只需要存储一个标签索引;数据检索时,基于检索条件能够确定所要检索的目标数据的标签索引,继而利用确定的一个或多个标签索引即可查询到所要查询的数据,本申请实施例有效减少了数据存入HBASE数据库时需要同时入库的索引的数量,提高了数据入库的效率,节省了存储空间。第一方面,本申请实施例提供了一种数据存储方法,包括:获取每条待存储数据对应的每个标签的标签值;针对每条待存储数据,基于获取的该条待存储数据的所有标签值,确定该条待存储数据的行键;将该条待存储数据以及该条待存储数据的行键存入HBASE数据库;将所述待存储数据存入HBASE数据库后,将获取的该条待存储数据的所有标签值存入关系型数据库。在一种可能的实施方式中,所述基于获取的该条待存储数据的所有标签值,确定该条待存储数据的行键,包括:计算获取的该条待存储数据的所有标签值的和,得到该条待存储数据的特征和;利用预定算法对该条待存储数据的特征和进行处理,得到该条待存储数据的标签索引;将所述标签索引、所述待存储数据的生成时间和所述待存储数据的唯一标识符组成所述待存储数据的行键。在一种可能的实施方式中,所述将获取的该条待存储数据的所有标签值存入关系型数据库,包括:查询所述关系型数据库中是否存在一行数据中的标签值与所述待存储数据的所有标签值相同;若存在,则将查找到的该行数据对应的计数值增加固定值;若不存在,则在所述关系型数据库中插入一行数据,插入的该行数据用于记录获取的该条待存储数据的所有标签值,并将该行数据对应的计数值配置为初始值。在一种可能的实施方式中,所述数据存储方法还包括:获取目标数据的检索条件;所述检索条件包括至少一个标签值;从所述关系型数据库中,查找与所述检索条件匹配的目标行;获取每个目标行中的所有标签值,并基于获取的每个目标行中的所有标签值,分别确定每个目标行对应的标签索引;利用确定的每个标签索引,从所述HBASE数据库中查找匹配的行键,将匹配的行键对应的行数据作为目标数据。在一种可能的实施方式中,所述查找与所述检索条件匹配的目标行,包括:所述关系型数据库中存在一行数据中的标签值包括所述检索条件中的所有标签值时,将该行数据作为所述目标行。在一种可能的实施方式中,所述利用确定的每个标签索引,从所述HBASE数据库中查找匹配的行键,包括:确定的标签索引与HBASE数据库中行键中的标签索引相同时,该行键为与确定的标签索引相同的行键。第二方面,本申请实施例提供了一种数据存储装置,包括:标签获取模块,用于获取每条待存储数据对应的每个标签的标签值;行键计算模块,用于针对每条待存储数据,基于获取的该条待存储数据的所有标签值,确定该条待存储数据的行键;第一存储模块,用于将该条待存储数据以及该条待存储数据的行键存入HBASE数据库;第二存储模块,用于将所述待存储数据存入HBASE数据库后,将获取的该条待存储数据的所有标签值存入关系型数据库。在一种可能的实施方式中,所述行键计算模块具体用于:计算获取的该条待存储数据的所有标签值的和,得到该条待存储数据的特征和;利用预定算法对该条待存储数据的特征和进行处理,得到该条待存储数据的标签索引;将所述标签索引、所述待存储数据的生成时间和所述待存储数据的唯一标识符组成所述待存储数据的行键。在一种可能的实施方式中,所述第二存储模块具体用于:查询所述关系型数据库中是否存在一行数据中的标签值与所述待存储数据的所有标签值相同;若存在,则将查找到的该行数据对应的计数值增加固定值;若不存在,则在所述关系型数据库中插入一行数据,插入的该行数据用于记录获取的该条待存储数据的所有标签值,并将该行数据对应的计数值配置为初始值。在一种可能的实施方式中,上述数据存储装置包括数据检索模块,所述数据检索模块具体用于:获取目标数据的检索条件;所述检索条件包括至少一个标签值;从所述关系型数据库中,查找与所述检索条件匹配的目标行;获取每个目标行中的所有标签值,并基于获取的每个目标行中的所有标签值,分别确定每个目标行对应的标签索引;利用确定的每个标签索引,从所述HBASE数据库中查找匹配的行键,将匹配的行键对应的行数据作为目标数据。本申请实施例提供的数据存储方法及装置,首先获取每条待存储数据对应的每个标签的标签值;之后,针对每条待存储数据,基于获取的该条待存储数据的所有标签值,确定该条待存储数据的行键;之后,将该条待存储数据以及该条待存储数据的行键存入HBASE数据库,并在将所述待存储数据存入HBASE数据库后,将获取的该条待存储数据的所有标签值存入关系型数据库。在进行数据检索的时候,首先获取目标数据的检索条件;所述检索条件包括至少一个标签值;之后,从所述关系型数据库中,查找与所述检索条件匹配的目标行;之后,获取每个目标行中的所有标签值,并基于获取的每个目标行中的所有标签值,分别确定每个目标行对应的标签索引;最后,利用确定的每个标签索引,从所述HBASE数据库中查找匹配的行键,将匹配的行键对应的行数据作为目标数据。本申请实施例的上述技术方案在存储数据的时候,利用该数据的所有标签值确定该数据的标签索引,一条数据只需要建立一个用于数据查询的标签索引。在需要检索数据的时候,基于检索条件,确定所要检索的目标数据的标签索引,继而利用确定的一个或多个标签索引即可查询到所要检索的目标数据,本申请实施例有效减少了数据存入HBASE数据库库时需要同时入库的标签索引的数量,提高了数据入库的效率,节省了存储空间。附图说明为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1示出了本申请实施例所提供的一种数据存储方法的流程图;图2示出了本申请实施例所提供的另一种数据存储方法中,将待存储数据的所有标签值存入关系型数据库的流程图;图3示出了本申请实施例所提供的另一种数据存储方法中,从HBASE数据中检索目标数据的流程图;图4示出了本申请实施例所提供的另一种数据存储方法的流程图;图5示出了本申请实施例所提供的另一种数据存储方法的流程图;图6示出了本申请实施例所提供的一种数据存储装置的结构示意图;图本文档来自技高网...

【技术保护点】
1.一种数据存储方法,其特征在于,包括:获取每条待存储数据对应的每个标签的标签值;针对每条待存储数据,基于获取的该条待存储数据的所有标签值,确定该条待存储数据的行键;将该条待存储数据以及该条待存储数据的行键存入HBASE数据库;将所述待存储数据存入HBASE数据库后,将获取的该条待存储数据的所有标签值存入关系型数据库。

【技术特征摘要】
1.一种数据存储方法,其特征在于,包括:获取每条待存储数据对应的每个标签的标签值;针对每条待存储数据,基于获取的该条待存储数据的所有标签值,确定该条待存储数据的行键;将该条待存储数据以及该条待存储数据的行键存入HBASE数据库;将所述待存储数据存入HBASE数据库后,将获取的该条待存储数据的所有标签值存入关系型数据库。2.根据权利要求1所述的方法,其特征在于,所述基于获取的该条待存储数据的所有标签值,确定该条待存储数据的行键,包括:计算获取的该条待存储数据的所有标签值的和,得到该条待存储数据的特征和;利用预定算法对该条待存储数据的特征和进行处理,得到该条待存储数据的标签索引;将所述标签索引、所述待存储数据的生成时间和所述待存储数据的唯一标识符组成所述待存储数据的行键。3.根据权利要求1所述的方法,其特征在于,所述将获取的该条待存储数据的所有标签值存入关系型数据库,包括:查询所述关系型数据库中是否存在一行数据中的标签值与所述待存储数据的所有标签值相同;若存在,则将查找到的该行数据对应的计数值增加固定值;若不存在,则在所述关系型数据库中插入一行数据,插入的该行数据用于记录获取的该条待存储数据的所有标签值,并将该行数据对应的计数值配置为初始值。4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:获取目标数据的检索条件;所述检索条件包括至少一个标签值;从所述关系型数据库中,查找与所述检索条件匹配的目标行;获取每个目标行中的所有标签值,并基于获取的每个目标行中的所有标签值,分别确定每个目标行对应的标签索引;利用确定的每个标签索引,从所述HBASE数据库中查找匹配的行键,将匹配的行键对应的行数据作为目标数据。5.根据权利要求4所述的方法,其特征在于,所述查找与所述检索条件匹配的目标行,包括:所述关系型数据库中存在一行数据中的标签值包括所述检索条件中的所有标签值时,将该行数据作为所述目标行。6.根据权利要求4所述...

【专利技术属性】
技术研发人员:詹鹏
申请(专利权)人:新华三大数据技术有限公司
类型:发明
国别省市:河南,41

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

1