用于存储数据的方法和装置制造方法及图纸

技术编号:18006823 阅读:32 留言:0更新日期:2018-05-21 07:27
本申请实施例公开了用于存储数据的方法和装置。该方法的一具体实施方式包括:获取目标数据,其中,目标数据包括以下至少一项:第一键值对数据、对象数据、数组数据,键值对数据包括键数据以及值数据,对象数据包括第二键值对数据,数组数据包括对象数据;确定目标数据所包括的对象数据的对象数据数目,目标数据所包括的数组数据的数组数据数目,目标数据所包括的第一键值对数据的第一键值对数据数目,以及目标数据所包括的第二键值对数据的第二键值对数据数目;基于对象数据数目、数组数据数目,第一键值对数据数目以及第二键值对数据数目,确定用于存储目标数据的存储空间;将目标数据存储至存储空间。该实施方式丰富了数据存储的方式。

【技术实现步骤摘要】
用于存储数据的方法和装置
本申请实施例涉及计算机
,具体涉及互联网
,尤其涉及用于存储数据的方法和装置。
技术介绍
Json(JavaScriptObjectNotation,JS对象标记)是一种轻量级的数据交换格式。Json结构在软件系统等领域有着广泛的应用。系统之间传递消息,数据的可扩展的结构化表达目前通常都是用Json结构来实现的。在知识图谱图检索内部,通常也是通过Json结构来表达节点(即实体)与边(关系)的。通常,很多数据可以被表征为Json结构。被表征为Json结构的数据可以包括键(key)值(value)对、对象(object)、数组(array)。
技术实现思路
本申请实施例提出了用于存储数据的方法和装置。第一方面,本申请实施例提供了一种用于存储数据的方法,该方法包括:获取目标数据,其中,目标数据包括以下至少一项:第一键值对数据、对象数据、数组数据,键值对数据包括键数据以及值数据,对象数据包括至少一个第二键值对数据,数组数据包括至少一个对象数据;确定目标数据所包括的对象数据的对象数据数目,目标数据所包括的数组数据的数组数据数目,目标数据所包括的第一键值对数据的第一键值对数据数目,以及目标数据所包括的第二键值对数据的第二键值对数据数目;基于对象数据数目、数组数据数目,第一键值对数据数目以及第二键值对数据数目,确定用于存储目标数据的存储空间;将目标数据存储至上述存储空间。在一些实施例中,将目标数据存储至存储空间,包括:针对目标数据所包括的每个键值对数据,将该键值对数据所包括的键数据以及该键值对数据所包括的值数据存储至存储空间中的第一预设存储区域中的、具有连续地址的存储区域。在一些实施例中,上述方法还包括:对所存储的键数据进行排序,得到键数据序列;确定第一预设存储区域的段地址;针对键数据序列中的每个键数据,确定该键数据在第一预设存储区域的存储地址相对于段地址的偏移地址,得到偏移地址序列;针对偏移地址序列中的每个偏移地址,将该偏移地址存储于存储空间中的第二预设存储区域或存储空间中的第三预设存储区域。在一些实施例中,将该偏移地址存储于存储空间中的第二预设存储区域或存储空间中的第三预设存储区域,包括:确定该偏移地址所对应的键数据包括于第一键值对数据还是第二键值对数据;若包括于第一键值对数据,则将该偏移地址存储于存储空间中的第二预设存储区域;若包括于第二键值对数据,则将该偏移地址存储于存储空间中的第三预设存储区域。在一些实施例中,上述方法还包括:获取与目标数据预先建立联系的至少一个数据;确定目标数据与至少一个数据的双向索引信息;将双向索引信息存储于存储空间中的第四预设存储区域。在一些实施例中,第一预设存储区域的存储地址、第二预设存储区域的存储地址、第三预设存储区域的存储地址以及第四预设存储区域的存储地址是连续的。第二方面,本申请实施例提供了一种用于存储数据的装置,该装置包括:第一获取单元,配置用于获取目标数据,其中,目标数据包括以下至少一项:第一键值对数据、对象数据、数组数据,键值对数据包括键数据以及值数据,对象数据包括至少一个第二键值对数据,数组数据包括至少一个对象数据;第一确定单元,配置用于确定目标数据所包括的对象数据的对象数据数目,目标数据所包括的数组数据的数组数据数目,目标数据所包括的第一键值对数据的第一键值对数据数目,以及目标数据所包括的第二键值对数据的第二键值对数据数目;第二确定单元,配置用于基于对象数据数目、数组数据数目,第一键值对数据数目以及第二键值对数据数目,确定用于存储目标数据的存储空间;第一存储单元,配置用于将目标数据存储至上述存储空间。在一些实施例中,第一存储单元包括:第一存储模块,配置用于针对目标数据所包括的每个键值对数据,将该键值对数据所包括的键数据以及该键值对数据所包括的值数据存储至存储空间中的第一预设存储区域中的、具有连续地址的存储区域。在一些实施例中,上述装置还包括:排序单元,配置用于对所存储的键数据进行排序,得到键数据序列;第三确定单元,配置用于确定第一预设存储区域的段地址;第四确定单元,配置用于针对键数据序列中的每个键数据,确定该键数据在第一预设存储区域的存储地址相对于段地址的偏移地址,得到偏移地址序列;第二存储单元,配置用于针对偏移地址序列中的每个偏移地址,将该偏移地址存储于存储空间中的第二预设存储区域或存储空间中的第三预设存储区域。在一些实施例中,第二存储单元包括:第二存储模块,配置用于确定该偏移地址所对应的键数据包括于第一键值对数据还是第二键值对数据;若包括于第一键值对数据,则将该偏移地址存储于存储空间中的第二预设存储区域;若包括于第二键值对数据,则将该偏移地址存储于存储空间中的第三预设存储区域。在一些实施例中,装置还包括:第二获取单元,配置用于获取与目标数据预先建立联系的至少一个数据;第五确定单元,配置用于确定目标数据与至少一个数据的双向索引信息;第三存储单元,配置用于将双向索引信息存储于存储空间中的第四预设存储区域。在一些实施例中,第一预设存储区域的存储地址、第二预设存储区域的存储地址、第三预设存储区域的存储地址以及第四预设存储区域的存储地址是连续的。第三方面,本申请实施例提供了一种用于存储数据的设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当上述一个或多个程序被上述一个或多个处理器执行,使得该一个或多个处理器实现如上述用于存储数据的方法中任一实施例的方法。第四方面,本申请实施例提供了一种用于存储数据的计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述用于存储数据的方法中任一实施例的方法。本申请实施例提供的用于存储数据的方法和装置,通过获取目标数据,然后确定目标数据所包括的对象数据的对象数据数目,目标数据所包括的数组数据的数组数据数目,目标数据所包括的第一键值对数据的第一键值对数据数目,以及目标数据所包括的第二键值对数据的第二键值对数据数目,之后基于对象数据数目、数组数据数目,第一键值对数据数目以及第二键值对数据数目,确定用于存储目标数据的存储空间,最后将目标数据存储至上述存储空间,从而丰富了数据存储的方式,有助于减少数据所占用的存储空间。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1是本申请可以应用于其中的示例性系统架构图;图2是根据本申请的用于存储数据的方法的一个实施例的流程图;图3是根据本申请的用于存储数据的方法的一个应用场景的示意图;图4是根据本申请的用于存储数据的方法的又一个实施例的流程图;图5A是根据本申请的用于存储数据的方法的一个第一预设存储空间的存储结构示意图;图5B是根据本申请的用于存储数据的方法的又一个第一预设存储空间的存储结构示意图;图5C是根据本申请的用于存储数据的方法的一个存储空间的存储结构示意图;图5D是根据本申请的用于存储数据的方法的一个存储空间的连续分布的示意图;图6是根据本申请的用于存储数据的装置的一个实施例的结构示意图;图7是适于用来实现本申请实施例的服务器的计算机系统的结构示意图。具体实施方式下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本文档来自技高网...
用于存储数据的方法和装置

【技术保护点】
一种用于存储数据的方法,包括:获取目标数据,其中,所述目标数据包括以下至少一项:第一键值对数据、对象数据、数组数据,键值对数据包括键数据以及值数据,对象数据包括至少一个第二键值对数据,数组数据包括至少一个对象数据;确定所述目标数据所包括的对象数据的对象数据数目,所述目标数据所包括的数组数据的数组数据数目,所述目标数据所包括的第一键值对数据的第一键值对数据数目,以及所述目标数据所包括的第二键值对数据的第二键值对数据数目;基于所述对象数据数目、所述数组数据数目,所述第一键值对数据数目以及所述第二键值对数据数目,确定用于存储所述目标数据的存储空间;将所述目标数据存储至所述存储空间。

【技术特征摘要】
1.一种用于存储数据的方法,包括:获取目标数据,其中,所述目标数据包括以下至少一项:第一键值对数据、对象数据、数组数据,键值对数据包括键数据以及值数据,对象数据包括至少一个第二键值对数据,数组数据包括至少一个对象数据;确定所述目标数据所包括的对象数据的对象数据数目,所述目标数据所包括的数组数据的数组数据数目,所述目标数据所包括的第一键值对数据的第一键值对数据数目,以及所述目标数据所包括的第二键值对数据的第二键值对数据数目;基于所述对象数据数目、所述数组数据数目,所述第一键值对数据数目以及所述第二键值对数据数目,确定用于存储所述目标数据的存储空间;将所述目标数据存储至所述存储空间。2.根据权利要求1所述的方法,其中,所述将所述目标数据存储至所述存储空间,包括:针对所述目标数据所包括的每个键值对数据,将该键值对数据所包括的键数据以及该键值对数据所包括的值数据存储至所述存储空间中的第一预设存储区域中的、具有连续地址的存储区域。3.根据权利要求2所述的方法,其中,所述方法还包括:对所存储的键数据进行排序,得到键数据序列;确定所述第一预设存储区域的段地址;针对所述键数据序列中的每个键数据,确定该键数据在所述第一预设存储区域的存储地址相对于所述段地址的偏移地址,得到偏移地址序列;针对所述偏移地址序列中的每个偏移地址,将该偏移地址存储于所述存储空间中的第二预设存储区域或所述存储空间中的第三预设存储区域。4.根据权利要求3所述的方法,其中,所述将该偏移地址存储于所述存储空间中的第二预设存储区域或所述存储空间中的第三预设存储区域,包括:确定该偏移地址所对应的键数据包括于第一键值对数据还是第二键值对数据;若包括于第一键值对数据,则将该偏移地址存储于所述存储空间中的第二预设存储区域;若包括于第二键值对数据,则将该偏移地址存储于所述存储空间中的第三预设存储区域。5.根据权利要求4所述的方法,其中,所述方法还包括:获取与所述目标数据预先建立联系的至少一个数据;确定所述目标数据与所述至少一个数据的双向索引信息;将双向索引信息存储于所述存储空间中的第四预设存储区域。6.根据权利要求5所述的方法,其中,所述第一预设存储区域的存储地址、所述第二预设存储区域的存储地址、所述第三预设存储区域的存储地址以及所述第四预设存储区域的存储地址是连续的。7.一种用于存储数据的装置,包括:第一获取单元,配置用于获取目标数据,其中,所述目标数据包括以下至少一项:第一键值对数据、对象数据、数组数据,键值对数据包括键数据以及值数据,对象数据包括至少一个第二键值对数据,数组数据包括至少一个对象数据;第一确定单...

【专利技术属性】
技术研发人员:汪洋宋勋超袁鹏程刘晓波陈曦
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京,11

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

1