数据存储和查询方法及装置制造方法及图纸

技术编号:24289735 阅读:16 留言:0更新日期:2020-05-26 20:05
本发明专利技术公开了一种数据存储和查询方法及装置。该方法包括:在待存储数据存入时,在内容文件中申请内容头节点的存储空间和内容节点的存储空间,在内容头节点的存储空间中存储数据的内容节点的存储地址,在内容节点的存储空间中存储数据的实体内容;将待存储的数据的索引信息存入索引文件中,其中,在索引文件中申请索引信息的存储空间,索引信息为待存储数据的实体内容的维度信息以及实体内容在内容文件中的内容节点的存储地址。通过本发明专利技术,达到了优化数据库存储结构的效果。

Data storage and query methods and devices

【技术实现步骤摘要】
数据存储和查询方法及装置
本专利技术涉及数据库领域,具体而言,涉及一种数据存储和查询方法及装置。
技术介绍
目前市面上的存储库产品的种类很多,有基于大数据的hadoop基础的hbase,spark,impala等,有基于关系型数据库的sqlserver,mysql等,有非sql的mango等,各种产品针对的产品需求不同,功能各异,但是针对特定存储的解决方案缺点很难找到,比如在存储解析文书结果的需求中,经过大量的评测和试用没有找到合适的产品可以用,用户的需求主要有以下的特点和存储需求:1,数据的量:千万组结果,每组结果又有千级的维度信息,每个维度信息又有多个子结果,每个子结果还有多个属性,所以很难平铺成二维表,所以不适用常规的关系型数据库。2,动态的数据列:因为维度信息的属性是多样的,所以无法预定义列。3,数据的频繁更新:数据的更新速度很快,而且每次都是全库更新,所以不存在删除单条数据的需求。4,要求数据的写入速度快速:因为解析是基于分布式系统的,所以要能消化掉解析的速度。5,数据可以根据列进行筛选查询。6,支持数据的部分(全部)导出,很容易扩展成off-line的数据包。针对相关技术中数据库存储结构无法满足用户需求的问题,目前尚未提出有效的解决方案。
技术实现思路
本专利技术的主要目的在于提供一种数据存储和查询方法及装置,以解决数据库存储结构无法满足用户需求的问题。为了实现上述目的,根据本专利技术的一个方面,提供了一种数据存储方法,该方法包括:在待存储数据存入时,在内容文件中申请内容头节点的存储空间和内容节点的存储空间,在所述内容头节点的存储空间中存储数据的内容节点的存储地址,在所述内容节点的存储空间中存储数据的实体内容;将所述待存储的数据的索引信息存入索引文件中,其中,在所述索引文件中申请索引信息的存储空间,所述索引信息为待存储数据的实体内容的维度信息以及实体内容在所述内容文件中的内容节点的存储地址。进一步地,所述方法还包括:在检测到存在新的维度信息时,创建新的索引文件;将所述新的索引文件的存储位置存入定义文件中。进一步地,所述内容文件包括表头节点、内容头节点和内容节点三种节点类型,将待存储的数据首次存入内容文件中包括:申请表头节点的存储空间、内容头节点的存储空间和内容节点的存储空间,在所述表头节点的存储空间中存储内容文件的数据总条数和内容头节点的存储位置;在所述内容头节点的存储空间中存储下一个内容头节点的存储位置和内容节点的存储位置;在所述内容节点的存储空间中存储数据的实体内容。进一步地,所述表头节点、内容头节点和内容节点各包括四个字节块,第一字节块、第二字节块和第三字节块各包括8个字节,第四字节块包括4个字节,所述表头节点的第一个块表示内容文件的数据总条数,第二个块表示内容头节点的存储位置,第三个块和第四个块为空;内容头节点的第一个块为空,第二个块表示下一条内容头节点的位置,第三个块表示内容节点的下一条的位置,第四块表示内容的长度;内容节点的第一个块表示内容节点的下一条的位置,内容节点的其余块用于存储数据的实体内容,内容节点的块的数量根据所述数据实体内容的大小确定。进一步地,所述索引文件包括根节点、索引节点和内容节点三种类型,每种节点各包括四个字节块,第一字节块和第二字节块各包括8个字节,第三字节块和第四字节块各包括4个字节,根节点的第一个块为空,第二个块表示b+树的根节点地址,第三个块为空,第四个块用于表示当前的节点类型;索引节点的第一个块表示索引的左节点地址,第二个块表示索引的右节点地址,第三个块表示索引的数量,第四个块表示当前节点类型;内容节点的第一个块表示内容的左节点地址,第二个块表示内容的右节点地址,第三个块表示内容的数量,第四个块表示当前节点类型。进一步地,在将待存储的数据存入内容文件中之前,所述方法还包括:在向存储空间存入数据时,判断待使用的存储空间是否在缓存中,其中,数据在存储空间中以页为单位存储,缓存中的页的使用频率大于磁盘中的页的使用频率;如果是,则将数据存入存储空间中的页中。进一步地,每个页的位置通过8字节的常整形来表示,前4个字节表示存储位置的页的编号,第5、6个字节表示存储在所述编号中所对应的页的起始位置,第7、8字节表示存储数据的长度。为了实现上述目的,根据本专利技术的一个方面,提供了一种数据查询方法,该方法包括:接收查询指令,所述查询指令中携带有待查询的内容的维度信息;根据所述维度信息查询定义文件中存储的所述维度信息的索引文件的存储位置,得到第一存储位置;根据所述第一存储位置查询索引文件,得到所述维度信息所对应的内容文件的第二存储位置;查询所述第二存储位置中的内容文件,得到待查询的内容的维度信息的实体内容。为了实现上述目的,根据本专利技术的另一方面,还提供了一种数据存储装置,该装置包括:第一存储单元,用于在待存储数据存入时,在内容文件中申请内容头节点的存储空间和内容节点的存储空间,在所述内容头节点的存储空间中存储数据的内容节点的存储地址,在所述内容节点的存储空间中存储数据的实体内容;第二存储单元,用于将所述待存储的数据的索引信息存入索引文件中,其中,在所述索引文件中申请索引信息的存储空间,所述索引信息为待存储数据的实体内容的维度信息以及实体内容在所述内容文件中的内容节点的存储地址。为了实现上述目的,根据本专利技术的另一方面,还提供了一种数据查询装置,该装置包括:接收单元,用于接收查询指令,所述查询指令中携带有待查询的内容的维度信息;第一查询单元,用于根据所述维度信息查询定义文件中存储的所述维度信息的索引文件的存储位置,得到第一存储位置;第二查询单元,用于根据所述第一存储位置查询索引文件,得到所述维度信息所对应的内容文件的第二存储位置;第三查询单元,用于查询所述第二存储位置中的内容文件,得到待查询的内容的维度信息的实体内容。本专利技术通过在待存储数据存入时,在内容文件中申请内容头节点的存储空间和内容节点的存储空间,在内容头节点的存储空间中存储数据的内容节点的存储地址,在内容节点的存储空间中存储数据的实体内容;将待存储的数据的索引信息存入索引文件中,其中,在索引文件中申请索引信息的存储空间,索引信息为待存储数据的实体内容的维度信息以及实体内容在内容文件中的内容节点的存储地址,解决了数据库存储结构无法满足用户需求的问题,进而达到了优化数据库存储结构的效果。附图说明构成本申请的一部分的附图用来提供对本专利技术的进一步理解,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1是根据本专利技术实施例的数据存储方法的流程图;图2是根据本专利技术实施例的数据查询方法的流程图;图3是根据本专利技术实施例的数据存储装置的示意图;图4是根据本专利技术实施例的数据查询装置的示意图。具体实施方式需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本专利技术本文档来自技高网...

【技术保护点】
1.一种数据存储方法,其特征在于,包括:/n在待存储数据存入时,在内容文件中申请内容头节点的存储空间和内容节点的存储空间,在所述内容头节点的存储空间中存储数据的内容节点的存储地址,在所述内容节点的存储空间中存储数据的实体内容;/n将所述待存储的数据的索引信息存入索引文件中,其中,在所述索引文件中申请索引信息的存储空间,所述索引信息为待存储数据的实体内容的维度信息以及实体内容在所述内容文件中的内容节点的存储地址。/n

【技术特征摘要】
1.一种数据存储方法,其特征在于,包括:
在待存储数据存入时,在内容文件中申请内容头节点的存储空间和内容节点的存储空间,在所述内容头节点的存储空间中存储数据的内容节点的存储地址,在所述内容节点的存储空间中存储数据的实体内容;
将所述待存储的数据的索引信息存入索引文件中,其中,在所述索引文件中申请索引信息的存储空间,所述索引信息为待存储数据的实体内容的维度信息以及实体内容在所述内容文件中的内容节点的存储地址。


2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在检测到存在新的维度信息时,创建新的索引文件;
将所述新的索引文件的存储位置存入定义文件中。


3.根据权利要求1所述的方法,其特征在于,所述内容文件包括表头节点、内容头节点和内容节点三种节点类型,将待存储的数据首次存入内容文件中包括:
申请表头节点的存储空间、内容头节点的存储空间和内容节点的存储空间,在所述表头节点的存储空间中存储内容文件的数据总条数和内容头节点的存储位置;
在所述内容头节点的存储空间中存储下一个内容头节点的存储位置和内容节点的存储位置;
在所述内容节点的存储空间中存储数据的实体内容。


4.根据权利要求3所述的方法,其特征在于,所述表头节点、内容头节点和内容节点各包括四个字节块,第一字节块、第二字节块和第三字节块各包括8个字节,第四字节块包括4个字节,
所述表头节点的第一个块表示内容文件的数据总条数,第二个块表示内容头节点的存储位置,第三个块和第四个块为空;
内容头节点的第一个块为空,第二个块表示下一条内容头节点的位置,第三个块表示内容节点的下一条的位置,第四块表示内容的长度;
内容节点的第一个块表示内容节点的下一条的位置,内容节点的其余块用于存储数据的实体内容,内容节点的块的数量根据所述数据实体内容的大小确定。


5.根据权利要求1所述的方法,其特征在于,所述索引文件包括根节点、索引节点和内容节点三种类型,每种节点各包括四个字节块,第一字节块和第二字节块各包括8个字节,第三字节块和第四字节块各包括4个字节,
根节点的第一个块为空,第二个块表示b+树的根节点地址,第三个块为空,第四个块用于表示当前的节点类型;
索引节点的第一个块表示索引的左节点地址,第二个块表示索引的右节点地址,第三个块表...

【专利技术属性】
技术研发人员:姜珂冯鸳鹤
申请(专利权)人:北京国双科技有限公司
类型:发明
国别省市:北京;11

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

1