CN105608142A - 一种Json数据的存储方法及装置 - Google Patents
一种Json数据的存储方法及装置 Download PDFInfo
- Publication number
- CN105608142A CN105608142A CN201510954184.XA CN201510954184A CN105608142A CN 105608142 A CN105608142 A CN 105608142A CN 201510954184 A CN201510954184 A CN 201510954184A CN 105608142 A CN105608142 A CN 105608142A
- Authority
- CN
- China
- Prior art keywords
- json
- data
- data message
- summary info
- storage area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及数据存储技术,特别涉及一种Json数据的存储方法及装置。用以在内存不充足的环境中,实现Json数据的顺利存储。该方法为:Json数据表被分割处理,分割后获得的Json数据信息和相应的Json摘要信息通过关系索引信息相互关联并形成关系链,再将这些数据经由内存交换区映射至指定的存储区域,这样,能够在内存比较紧张的环境下处理数据节点比较多,内存占用比较大的Json表,不但节省了内存空闲,也未增添系统运行负荷,减少了代码运行期对内存的依赖。
Description
技术领域
本申请涉及数据存储技术,特别涉及一种Json数据的存储方法及装置。
背景技术
本申请涉及应用程序处理领域,尤其涉及在内存比较紧张的嵌入式系统中,基于Json存储较大信息量的配置或数据摘要的方法及系统。
现有技术下,Json作为一种数据存储的结构得到了广泛的应用,Json是一种比较灵活而且直观的数据存储结构,它具有良好的兼容性和可扩展性,很适合作为客户端与设备端之间的交互载体。
Json以字符串的形式进行数据存储,对存储的数据加入描述,在设备开发和调试阶段有很好的直观性。具体的,Json数据通常以数据表的形式存在,Json数据表主要有key和value两个属性值,key是一个字符串,用于标识键值对的名称,value为对应的数值。在存储大量的配置信息时,Json首先将数据按照key-value键值对的形式进行序列化,进而为每一个键值对动态申请内存,并把相应的数据通过关系链的形式存放到这段内存中。如果需要存储的数据量很大时,Json会申请大量的内存并将序列后的数据长时间存放在这片内存中。
显然,以Json结构进行数据存储,需要大数量节点进行配置,这会占用较大的内存,使得本来内存比较小的嵌入式系统内存资源更加显得紧凑;另一方面,Json数据表具有很强的扩展性,能够随时进行添加、修改等操作,但对大型的Json表增删查找只会涉及小面积范围数据的变更,如果整个Json表长时间驻存在内存中会导致大量内存的浪费。
现有Json的模块化技术大多应用在前端web或者内存比较充足的平台上,而且模块数据的解析依赖功能模块,不适合嵌入式系统的应用场景,也不利于跨平台的使用;此外,现有的Json模块化技术要求模块中的数据必须为一个完整的Json表,不适合包含大数量节点的Json表的存储和处理。
因此,为了在嵌入式系统中实现Json数据在存储,同时也兼容Json数据对内存消耗过大的缺陷,需要对Json数据的存储机制进行改进,保证Json数据在运行过程中不会因为节点的扩充导致内存无限增大。
发明内容
本申请实施例提供一种Json数据的存储方法及装置,用以在内存不充足的环境中,实现Json数据的顺利存储。
本申请实施例提供的具体技术方案如下:
一种Json数据存储方法,包括:
将Json数据表按照设定的路径深度N分割为若干Json数据信息;
分别提取每一个Json数据信息的关键信息生成相应的Json摘要信息;
分别针对每一个Json数据信息和相应的Json摘要信息生成相应的关系索引信息;
将各个Json数据信息、Json摘要信息和关系索引信息通过内存映射至指定存储区域中保存。
较佳的,将Json数据表按照设定的路径深度N分割为若干Json数据信息后,在分别针对每一个Json数据信息和相应的Json摘要信息生成相应的关系索引信息之前,进一步包括:
针对每一个占用内存数据量超过预设数据量阈值的Json数据信息,再次分割为若干个Json数据信息,其中再次划分后的每一个Json数据信息所占用内存数据量不大于所述预设数据量阈值。
较佳的,将各个Json数据信息、Json摘要信息和关系索引信息通过内存映射至指定存储区域中保存,包括:
在内存中创建内存交换区,以及在内存交换区和指定的存储区域之间建立映射关系;
将Json数据表分割后获得的各个Json数据信息、Json摘要信息和关系索引信息的总占用内存数据量大小缓存在内存交换区中;
基于所述述映射关系,将Json数据表分割后获得的各个Json数据信息、Json摘要信息和关系索引信息,经内存交换区映射至指定存储区域内的空闲区域中。
较佳的,基于所述述映射关系,将Json数据表分割后获得的各个Json数据信息、Json摘要信息和关系索引信息,经内存交换区映射至指定存储区域内的空闲区域中,包括:
可以根据各个Json数据信息、Json摘要信息和关系索引信息的总占用内存数据量判断所述指定存储区域中是否存在相应大小的空闲区域,若是,则基于所述映射关系进行映射,否则,先在所述指定存储区域中创建相应大小的空闲区域后,再基于所述映射关系进行映射。
较佳的,进一步包括:
在内存或不同于所述指定存储区域的其他存储介质中记录各个关系索引信息的索引配置信息。
较佳的,进一步包括:
接收到针对任一Json数据信息的更新指令时,读取所述索引配置信息;
基于所述索引配置信息在所述指定存储区域中读取所述任一Json数据信息对应的关系索引信息;
基于读取的关系索引信息,在所述指定存储区域中获取所述任一Json数据信息对应的Json摘要信息,再基于获取的Json摘要信息定位所述任一Json数据信息;
根据所述更新指令对所述任一Json数据信息进行数据更新,以及对相应的Json摘要信息和关系索引信息进行适应性更新;
将更新后的所述任一Json数据信息及相应的Json摘要信息和关系索引信息,进行所述指定存储区域中重新进行保存。
一种Json数据存储装置,包括:
分割模块,用于将Json数据表按照设定的路径深度N分割为若干Json数据信息;
第一处理模块,用于分别提取每一个Json数据信息的关键信息生成相应的Json摘要信息;
第二处理模块,用于分别针对每一个Json数据信息和相应的Json摘要信息生成相应的关系索引信息;
映射模块,用于将各个Json数据信息、Json摘要信息和关系索引信息通过内存映射至指定存储区域中保存。
较佳的,所述分割单元将Json数据表按照设定的路径深度N分割为若干Json数据信息后,在所述第二处理模块在分别针对每一个Json数据信息和相应的Json摘要信息生成相应的关系索引信息之前,所述分割单元进一步用于:
针对每一个占用内存数据量超过预设数据量阈值的Json数据信息,再次分割为若干个Json数据信息,其中再次划分后的每一个Json数据信息所占用内存数据量不大于所述预设数据量阈值。
较佳的,将各个Json数据信息、Json摘要信息和关系索引信息通过内存映射至指定存储区域中保存时,所述映射单元用于:
在内存中创建内存交换区,以及在内存交换区和指定的存储区域之间建立映射关系;
将Json数据表分割后获得的各个Json数据信息、Json摘要信息和关系索引信息的总占用内存数据量大小缓存在内存交换区中;
基于所述述映射关系,将Json数据表分割后获得的各个Json数据信息、Json摘要信息和关系索引信息,经内存交换区映射至指定存储区域内的空闲区域中。
较佳的,基于所述述映射关系,将Json数据表分割后获得的各个Json数据信息、Json摘要信息和关系索引信息,经内存交换区映射至指定存储区域内的空闲区域中时,所述映射单元用于:
可以根据各个Json数据信息、Json摘要信息和关系索引信息的总占用内存数据量判断所述指定存储区域中是否存在相应大小的空闲区域,若是,则基于所述映射关系进行映射,否则,先在所述指定存储区域中创建相应大小的空闲区域后,再基于所述映射关系进行映射。
较佳的,所述第二处理单元进一步用于:
在内存或不同于所述指定存储区域的其他存储介质中记录各个关系索引信息的索引配置信息。
较佳的,进一步包括:
更新单元,用于执行以下操作:
接收到针对任一Json数据信息的更新指令时,读取所述索引配置信息;
基于所述索引配置信息在所述指定存储区域中读取所述任一Json数据信息对应的关系索引信息;
基于读取的关系索引信息,在所述指定存储区域中获取所述任一Json数据信息对应的Json摘要信息,再基于获取的Json摘要信息定位所述任一Json数据信息;
根据所述更新指令对所述任一Json数据信息进行数据更新,以及对相应的Json摘要信息和关系索引信息进行适应性更新;
将更新后的所述任一Json数据信息及相应的Json摘要信息和关系索引信息,进行所述指定存储区域中重新进行保存。
综上所述,本申请实施例中,Json数据表被分割处理,分割后获得的Json数据信息和相应的Json摘要信息通过关系索引信息相互关联并形成关系链,再将这些数据经由内存交换区映射至指定的存储区域,这样,能够在内存比较紧张的环境下处理数据节点比较多,内存占用比较大的Json表,不但节省了内存空闲,也未增添系统运行负荷,减少了代码运行期对内存的依赖。
附图说明
图1为本申请实施例中Json数据存储示意流程图;
图2为本申请实施例中Json数据信息分割示意图;
图3为本申请实施例中Json数据存储原理示意图;
图4为本申请实施例中Json数据存储详细流程图;
图5为本申请实施例中Json存储装置功能结构示意图。
具体实施方式
下面结合附图对本申请优选的实施方式进行详细说明。
为了在内存不充足的环境中,实现Json数据的顺利存储,本申请实施例中,将常驻在内存中的Json数据表通过数据分割、内存映射等手段分块存储到指定存储装置(如,硬盘、Flash中,进而减少设备运行期Json对内存的占用。)
参阅图1所示,本申请实施例中,Json数据存储示意流程如下:
步骤100:将Json数据表按照设定的路径深度N分割为若干Json数据信息(记录在JB块中),该路径深度N表征从选取的根节点到最外层叶子节点所包含的路径数。
例如,参阅图2所示,假设N=3,那么,从ROOT节点开始,将路径深度未超过3的节点1’->节点2’->节点3’分割为一个Json数据信息,将路径深度超过3的节点1->节点2->节点3->节点4分割为节点1->节点2->节点3和节点4,以节点4为新的根节点继续分割,由于其路径不超过3,不再继续分割,这样,便得到了节点1->节点2->节点3和节点4两个Json数据信息。
进一步地,为了保证Json数据信息能够顺利存储,较佳的,可以将占用内存数据量超过设定的数据量阈值的Json数据信息作进行再次分割,获得占用内存数据量符合要求的Json数据信息,例如,数据量阈值为10K,而一Json数据信息占用内存数据量为25K,超过10K,则对该Json数据信息再次进行分割,一种方式为,基于10K的分割,则获得两个10K的子Json数据信息和一个5K的子son数据信息;另一种方式为,均等分割,即分割为三个8K的子Json数据信息;还可以做不均等的分割,只要使再次分割后的每一个Json数据信息不大于10K即可。
步骤110:分别提取每一个Json数据信息的关键信息生成相应的Json摘要信息(记录在CB中)。
例如,在分割过程中分别记录每一个Json数据信息相对于Json数据表的数据段偏移量,相对路径,数据类型和占用内存大小等等,作为关键信息生成相应的Json摘要信息。
步骤120:分别针对每一个Json数据信息和相应的Json摘要信息生成相应的关系索引信息(记录在OB块中)。
具体的,即是记录Json数据信息和相应的Json摘要信息之间的关系描述信息,该关系描述信息主要是记录如何根据Json数据信息和Json摘要信息还原出Json数据表。
步骤130:将各个Json数据信息、Json摘要信息和关系索引信息通过内存映射至指定存储区域中保存。
具体的,可以先在内存中创建内存交换区,在内存交换区和指定的存储区域之间建立映射关系,先将Json数据表分割后获得的各个Json数据信息、Json摘要信息和关系索引信息的缓存在内存交换区中,再基于上述映射关系经内存交换区映射至指定存储区域内的空闲区域中。具体的,较佳的,在映射过程中,可以根据各个Json数据信息、Json摘要信息和关系索引信息的总占用内存数据量判断上述指定存储区域中是否存在相应大小的空闲区域,若是,则基于上述映射关系直接映射,否则,先在上述指定存储区域中创建相应大小的空闲区域后,再基于上述映射关系进行映射。
进一步地,还需要在内存或不同于上述指定存储区域的其他存储介质中记录各个关系索引信息的索引配置信息,即通过索引配置信息,可以读取到所需的任何一个关系索引信息,再基于获得的关系索引信息,获取相应的Json摘要信息和Json数据信息;其中,索引配置信息可以保存在内存中,或者,为了安全起见,也可以保存至其他存储区域,如,数据库中,具体视应用环境而定,在此不再赘述。
具体的,将Json数据表分割为若干Json数据信息、Json摘要信息和关系索引信息后进行存储的原理示意图如图3所示。
基于上述实施例,进一步地,若Json数据表中的数据需要进行更新(如,增加、删除、修改等等),则需要在接收到针对任一Json数据信息(以下称Json数据信息A)的更新指令时,读取索引配置信息,再基于该索引配置信息在上述指定存储区域中读取Json数据信息A对应的关系索引信息A,以及基于读取的关系索引信息A,在上述指定存储区域中获取Json数据信息A对应的Json摘要信息A,并基于获取的Json摘要信息A定位Json数据信息A,接着,根据更新指令对Json数据信息A进行数据更新,以及对相应的Json摘要信息A和关系索引信息A进行适应性更新;最后,将更新后的任一Json数据信息A及相应的Json摘要信息A和关系索引信息A,进行上述指定存储区域中重新进行保存。
这样,可以化繁为简地对Json数据表分割后获得的每一个Json数据信息进行及时更新,并且不会给系统带来过多的运行负荷。
参阅图4所示,下面通过一个具体的实施例对Json数据的存储过程进行详细介绍,其中,假设路径深度N=3,预设的数据量阈值为10K,指定的存储区域为Flash。
步骤400:读取Json数据表。
步骤401:判断从当前选取的根节点到最外层叶子节点的路径深度是否超过3?若是,则执行步骤402;否则,执行步骤403。
步骤402:从当前选取的根节点按照路径深度3进行分割。
执行步骤420后,需要重新选取根节点,并返回步骤401,直到没有新的根节点了,再执行步骤403。
步骤403:整理分割后获得的各个Json数据信息。
步骤404:判断是否存在占用内存大小超过10K的Json数据信息,若是,则执行步骤405;否则,执行步骤406;
步骤405:选取一个占用内存大小超过10K的Json数据信息进行分割处理,接着,返回步骤404。
步骤406:整理分割后的Json数据信息,提取相应的摘要信息,生成相应的Json摘要信息。
步骤407:判断Flash中是否存在足够保存Json数据表分割后数据的空闲区域?若是,则执行步骤409;否则,执行步骤408。
步骤408:在Flash中开辟出足够保存Json数据表分割后数据的空闲区域。
步骤409:在内存中创建的内存交换区内保存Json数据信息和Json摘要信息。
步骤410:在内存交换区中保存各个Json数据信息和相应的Json摘要信息的关系索引信息。
步骤411:将内存交换区中的数据映射至Flash中相应的空闲区域内。
基于上述实施例,参阅图5所示,本申请实施例中,用于执行Json数据存储的装置至少包括分割单元50、第一处理单元51、第二处理单元52和映射单元53,其中,
分割单元50,用于将Json数据表按照设定的路径深度N分割为若干Json数据信息;
第一处理单元51,用于分别提取每一个Json数据信息的关键信息生成相应的Json摘要信息;
第二处理单元52,用于分别针对每一个Json数据信息和相应的Json摘要信息生成相应的关系索引信息;
映射单元53,用于将各个Json数据信息、Json摘要信息和关系索引信息通过内存映射至指定存储区域中保存。
较佳的,分割单元50将Json数据表按照设定的路径深度N分割为若干Json数据信息后,在第二处理单元52在分别针对每一个Json数据信息和相应的Json摘要信息生成相应的关系索引信息之前,分割单元50进一步用于:
针对每一个占用内存数据量超过预设数据量阈值的Json数据信息,再次分割为若干个Json数据信息,其中再次划分后的每一个Json数据信息所占用内存数据量不大于所述预设数据量阈值。
较佳的,将各个Json数据信息、Json摘要信息和关系索引信息通过内存映射至指定存储区域中保存时,映射单元53用于:
在内存中创建内存交换区,以及在内存交换区和指定的存储区域之间建立映射关系;
将Json数据表分割后获得的各个Json数据信息、Json摘要信息和关系索引信息的总占用内存数据量大小缓存在内存交换区中;
基于述映射关系,将Json数据表分割后获得的各个Json数据信息、Json摘要信息和关系索引信息,经内存交换区映射至指定存储区域内的空闲区域中。
较佳的,基于述映射关系,将Json数据表分割后获得的各个Json数据信息、Json摘要信息和关系索引信息,经内存交换区映射至指定存储区域内的空闲区域中时,映射单元53用于:
可以根据各个Json数据信息、Json摘要信息和关系索引信息的总占用内存数据量判断指定存储区域中是否存在相应大小的空闲区域,若是,则基于映射关系进行映射,否则,先在指定存储区域中创建相应大小的空闲区域后,再基于映射关系进行映射。
较佳的,第二处理单元52进一步用于:
在内存或不同于指定存储区域的其他存储介质中记录各个关系索引信息的索引配置信息。
较佳的,进一步包括:
更新单元54,用于执行以下操作:
接收到针对任一Json数据信息的更新指令时,读取索引配置信息;
基于索引配置信息在指定存储区域中读取任一Json数据信息对应的关系索引信息;
基于读取的关系索引信息,在指定存储区域中获取任一Json数据信息对应的Json摘要信息,再基于获取的Json摘要信息定位任一Json数据信息;
根据更新指令对任一Json数据信息进行数据更新,以及对相应的Json摘要信息和关系索引信息进行适应性更新;
将更新后的任一Json数据信息及相应的Json摘要信息和关系索引信息,进行指定存储区域中重新进行保存。
综上所述,本申请实施例中,Json数据表被分割处理,分割后获得的Json数据信息和相应的Json摘要信息通过关系索引信息相互关联并形成关系链,再将这些数据经由内存交换区映射至指定的存储区域,这样,能够在内存比较紧张的环境下处理数据节点比较多,内存占用比较大的Json表,不但节省了内存空闲,也未增添系统运行负荷,减少了代码运行期对内存的依赖。
进一步地,Json数据的更新(如,增、删、修改等等)可以通过上述关系链索引并操作,可以通过映射方式将Json数据重新加载到内存中,不仅不影响操作效率,而且对于数据的操作更加方便可靠。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (12)
1.一种Json数据存储方法,其特征在于,包括:
将Json数据表按照设定的路径深度N分割为若干Json数据信息;
分别提取每一个Json数据信息的关键信息生成相应的Json摘要信息;
分别针对每一个Json数据信息和相应的Json摘要信息生成相应的关系索引信息;
将各个Json数据信息、Json摘要信息和关系索引信息通过内存映射至指定存储区域中保存。
2.如权利要求1所述的方法,其特征在于,将Json数据表按照设定的路径深度N分割为若干Json数据信息后,在分别针对每一个Json数据信息和相应的Json摘要信息生成相应的关系索引信息之前,进一步包括:
针对每一个占用内存数据量超过预设数据量阈值的Json数据信息,再次分割为若干个Json数据信息,其中再次划分后的每一个Json数据信息所占用内存数据量不大于所述预设数据量阈值。
3.如权利要求1或2所述的方法,其特征在于,将各个Json数据信息、Json摘要信息和关系索引信息通过内存映射至指定存储区域中保存,包括:
在内存中创建内存交换区,以及在内存交换区和指定的存储区域之间建立映射关系;
将Json数据表分割后获得的各个Json数据信息、Json摘要信息和关系索引信息的总占用内存数据量大小缓存在内存交换区中;
基于所述述映射关系,将Json数据表分割后获得的各个Json数据信息、Json摘要信息和关系索引信息,经内存交换区映射至指定存储区域内的空闲区域中。
4.如权利要求3所述的方法,其特征在于,基于所述述映射关系,将Json数据表分割后获得的各个Json数据信息、Json摘要信息和关系索引信息,经内存交换区映射至指定存储区域内的空闲区域中,包括:
可以根据各个Json数据信息、Json摘要信息和关系索引信息的总占用内存数据量判断所述指定存储区域中是否存在相应大小的空闲区域,若是,则基于所述映射关系进行映射,否则,先在所述指定存储区域中创建相应大小的空闲区域后,再基于所述映射关系进行映射。
5.如权利要求1-4任一项所述的方法,其特征在于,进一步包括:
在内存或不同于所述指定存储区域的其他存储介质中记录各个关系索引信息的索引配置信息。
6.如权利要求5所述的方法,其特征在于,进一步包括:
接收到针对任一Json数据信息的更新指令时,读取所述索引配置信息;
基于所述索引配置信息在所述指定存储区域中读取所述任一Json数据信息对应的关系索引信息;
基于读取的关系索引信息,在所述指定存储区域中获取所述任一Json数据信息对应的Json摘要信息,再基于获取的Json摘要信息定位所述任一Json数据信息;
根据所述更新指令对所述任一Json数据信息进行数据更新,以及对相应的Json摘要信息和关系索引信息进行适应性更新;
将更新后的所述任一Json数据信息及相应的Json摘要信息和关系索引信息,进行所述指定存储区域中重新进行保存。
7.一种Json数据存储装置,其特征在于,包括:
分割模块,用于将Json数据表按照设定的路径深度N分割为若干Json数据信息;
第一处理模块,用于分别提取每一个Json数据信息的关键信息生成相应的Json摘要信息;
第二处理模块,用于分别针对每一个Json数据信息和相应的Json摘要信息生成相应的关系索引信息;
映射模块,用于将各个Json数据信息、Json摘要信息和关系索引信息通过内存映射至指定存储区域中保存。
8.如权利要求7所述的装置,其特征在于,所述分割单元将Json数据表按照设定的路径深度N分割为若干Json数据信息后,在所述第二处理模块在分别针对每一个Json数据信息和相应的Json摘要信息生成相应的关系索引信息之前,所述分割单元进一步用于:
针对每一个占用内存数据量超过预设数据量阈值的Json数据信息,再次分割为若干个Json数据信息,其中再次划分后的每一个Json数据信息所占用内存数据量不大于所述预设数据量阈值。
9.如权利要求7或8所述的装置,其特征在于,将各个Json数据信息、Json摘要信息和关系索引信息通过内存映射至指定存储区域中保存时,所述映射单元用于:
在内存中创建内存交换区,以及在内存交换区和指定的存储区域之间建立映射关系;
将Json数据表分割后获得的各个Json数据信息、Json摘要信息和关系索引信息的总占用内存数据量大小缓存在内存交换区中;
基于所述述映射关系,将Json数据表分割后获得的各个Json数据信息、Json摘要信息和关系索引信息,经内存交换区映射至指定存储区域内的空闲区域中。
10.如权利要求9所述的装置,其特征在于,基于所述述映射关系,将Json数据表分割后获得的各个Json数据信息、Json摘要信息和关系索引信息,经内存交换区映射至指定存储区域内的空闲区域中时,所述映射单元用于:
可以根据各个Json数据信息、Json摘要信息和关系索引信息的总占用内存数据量判断所述指定存储区域中是否存在相应大小的空闲区域,若是,则基于所述映射关系进行映射,否则,先在所述指定存储区域中创建相应大小的空闲区域后,再基于所述映射关系进行映射。
11.如权利要求7-10任一项所述的装置,其特征在于,所述第二处理单元进一步用于:
在内存或不同于所述指定存储区域的其他存储介质中记录各个关系索引信息的索引配置信息。
12.如权利要求11所述的装置,其特征在于,进一步包括:
更新单元,用于执行以下操作:
接收到针对任一Json数据信息的更新指令时,读取所述索引配置信息;
基于所述索引配置信息在所述指定存储区域中读取所述任一Json数据信息对应的关系索引信息;
基于读取的关系索引信息,在所述指定存储区域中获取所述任一Json数据信息对应的Json摘要信息,再基于获取的Json摘要信息定位所述任一Json数据信息;
根据所述更新指令对所述任一Json数据信息进行数据更新,以及对相应的Json摘要信息和关系索引信息进行适应性更新;
将更新后的所述任一Json数据信息及相应的Json摘要信息和关系索引信息,进行所述指定存储区域中重新进行保存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510954184.XA CN105608142B (zh) | 2015-12-17 | 2015-12-17 | 一种Json数据的存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510954184.XA CN105608142B (zh) | 2015-12-17 | 2015-12-17 | 一种Json数据的存储方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105608142A true CN105608142A (zh) | 2016-05-25 |
CN105608142B CN105608142B (zh) | 2019-02-12 |
Family
ID=55988082
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510954184.XA Active CN105608142B (zh) | 2015-12-17 | 2015-12-17 | 一种Json数据的存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105608142B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106973332A (zh) * | 2017-03-10 | 2017-07-21 | 武汉斗鱼网络科技有限公司 | 一种弹幕消息处理方法、解析方法及系统 |
CN107193498A (zh) * | 2017-05-25 | 2017-09-22 | 山东浪潮商用系统有限公司 | 一种对数据进行去重复处理的方法及装置 |
CN107832443A (zh) * | 2017-11-20 | 2018-03-23 | 郑州云海信息技术有限公司 | 一种json文档数据的处理方法、装置和介质 |
CN108334609A (zh) * | 2018-02-02 | 2018-07-27 | 广东蜂助手网络技术股份有限公司 | Oracle中实现JSON格式数据存取的方法、装置、设备及存储介质 |
CN108595459A (zh) * | 2017-12-30 | 2018-09-28 | 北京百度网讯科技有限公司 | 关系索引更新方法、装置和电子设备 |
CN109189505A (zh) * | 2018-07-06 | 2019-01-11 | 武汉斗鱼网络科技有限公司 | 一种减少对象序列化占用存储空间的方法及系统 |
CN112565870A (zh) * | 2019-09-26 | 2021-03-26 | 北京字节跳动网络技术有限公司 | 内容的缓存和读取方法、客户端及存储介质 |
CN113190555A (zh) * | 2021-04-30 | 2021-07-30 | 北京沃东天骏信息技术有限公司 | 数据导入方法及装置 |
US11907193B2 (en) | 2021-10-11 | 2024-02-20 | International Business Machines Corporation | Storing a data structure |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1396770A (zh) * | 2001-07-09 | 2003-02-12 | 日本胜利株式会社 | 结构化元数据的合并方法、传输方法以及分割方法 |
US20040117340A1 (en) * | 2002-12-16 | 2004-06-17 | Palo Alto Research Center, Incorporated | Method and apparatus for generating summary information for hierarchically related information |
CN101079074A (zh) * | 2007-07-26 | 2007-11-28 | 杭州华三通信技术有限公司 | 一种数据存储与检索的方法及系统 |
CN101216824A (zh) * | 2007-01-05 | 2008-07-09 | 冯卫国 | 一种将树型结构数据库发布为分布式xml数据库的方法 |
CN101221565A (zh) * | 2007-12-20 | 2008-07-16 | 康佳集团股份有限公司 | 一种利用嵌入式数据库对flash数据进行管理的方法 |
CN101833519A (zh) * | 2009-03-12 | 2010-09-15 | 安凯(广州)软件技术有限公司 | 一种减少存储技术设备中地址映射表常驻内存的方法 |
CN102262627A (zh) * | 2010-05-24 | 2011-11-30 | 卓望数码技术(深圳)有限公司 | 一种网页分割方法和网页分割系统 |
CN105138560A (zh) * | 2015-07-23 | 2015-12-09 | 北京天耀宏图科技有限公司 | 基于多级空间索引技术的分布式空间矢量数据管理方法 |
-
2015
- 2015-12-17 CN CN201510954184.XA patent/CN105608142B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1396770A (zh) * | 2001-07-09 | 2003-02-12 | 日本胜利株式会社 | 结构化元数据的合并方法、传输方法以及分割方法 |
US20040117340A1 (en) * | 2002-12-16 | 2004-06-17 | Palo Alto Research Center, Incorporated | Method and apparatus for generating summary information for hierarchically related information |
CN101216824A (zh) * | 2007-01-05 | 2008-07-09 | 冯卫国 | 一种将树型结构数据库发布为分布式xml数据库的方法 |
CN101079074A (zh) * | 2007-07-26 | 2007-11-28 | 杭州华三通信技术有限公司 | 一种数据存储与检索的方法及系统 |
CN101221565A (zh) * | 2007-12-20 | 2008-07-16 | 康佳集团股份有限公司 | 一种利用嵌入式数据库对flash数据进行管理的方法 |
CN101833519A (zh) * | 2009-03-12 | 2010-09-15 | 安凯(广州)软件技术有限公司 | 一种减少存储技术设备中地址映射表常驻内存的方法 |
CN102262627A (zh) * | 2010-05-24 | 2011-11-30 | 卓望数码技术(深圳)有限公司 | 一种网页分割方法和网页分割系统 |
CN105138560A (zh) * | 2015-07-23 | 2015-12-09 | 北京天耀宏图科技有限公司 | 基于多级空间索引技术的分布式空间矢量数据管理方法 |
Non-Patent Citations (1)
Title |
---|
郭栋等: "基于一致性树分布的数据分布式存储方法", 《计算机应用》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106973332A (zh) * | 2017-03-10 | 2017-07-21 | 武汉斗鱼网络科技有限公司 | 一种弹幕消息处理方法、解析方法及系统 |
CN107193498B (zh) * | 2017-05-25 | 2020-03-27 | 浪潮软件集团有限公司 | 一种对数据进行去重复处理的方法及装置 |
CN107193498A (zh) * | 2017-05-25 | 2017-09-22 | 山东浪潮商用系统有限公司 | 一种对数据进行去重复处理的方法及装置 |
CN107832443A (zh) * | 2017-11-20 | 2018-03-23 | 郑州云海信息技术有限公司 | 一种json文档数据的处理方法、装置和介质 |
CN108595459A (zh) * | 2017-12-30 | 2018-09-28 | 北京百度网讯科技有限公司 | 关系索引更新方法、装置和电子设备 |
CN108595459B (zh) * | 2017-12-30 | 2022-02-15 | 北京百度网讯科技有限公司 | 关系索引更新方法、装置和电子设备 |
CN108334609A (zh) * | 2018-02-02 | 2018-07-27 | 广东蜂助手网络技术股份有限公司 | Oracle中实现JSON格式数据存取的方法、装置、设备及存储介质 |
CN108334609B (zh) * | 2018-02-02 | 2020-04-07 | 蜂助手股份有限公司 | Oracle中实现JSON格式数据存取的方法、装置、设备及存储介质 |
CN109189505A (zh) * | 2018-07-06 | 2019-01-11 | 武汉斗鱼网络科技有限公司 | 一种减少对象序列化占用存储空间的方法及系统 |
CN112565870A (zh) * | 2019-09-26 | 2021-03-26 | 北京字节跳动网络技术有限公司 | 内容的缓存和读取方法、客户端及存储介质 |
US11907121B2 (en) | 2019-09-26 | 2024-02-20 | Beijing Bytedance Network Technology Co., Ltd. | Methods for caching and reading content, client, and storage medium |
CN113190555A (zh) * | 2021-04-30 | 2021-07-30 | 北京沃东天骏信息技术有限公司 | 数据导入方法及装置 |
US11907193B2 (en) | 2021-10-11 | 2024-02-20 | International Business Machines Corporation | Storing a data structure |
Also Published As
Publication number | Publication date |
---|---|
CN105608142B (zh) | 2019-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105608142A (zh) | 一种Json数据的存储方法及装置 | |
CN103699585B (zh) | 文件的元数据存储以及文件恢复的方法、装置和系统 | |
US10068033B2 (en) | Graph data query method and apparatus | |
CN105404679B (zh) | 数据处理方法和装置 | |
CN106708825B (zh) | 一种数据文件处理方法及系统 | |
CN107045531A (zh) | 一种优化hdfs小文件存取的系统及方法 | |
CN103795811B (zh) | 一种基于元数据保存存储信息及统计管理数据的方法 | |
CN104881466B (zh) | 数据分片的处理以及垃圾文件的删除方法和装置 | |
CN113127478B (zh) | 数据内生血缘关系的分析方法、装置和计算机设备 | |
CN103823865A (zh) | 一种数据库主存索引方法 | |
CN109710185A (zh) | 数据处理方法及装置 | |
CN103810246B (zh) | 一种索引创建方法和装置以及索引查询方法和装置 | |
WO2014110940A1 (en) | A method, apparatus and system for storing, reading the directory index | |
CN102110102A (zh) | 数据处理方法及装置、文件识别方法及工具 | |
CN109918658A (zh) | 一种从文本中获取目标词汇的方法及系统 | |
CN107832448A (zh) | 数据库操作方法、装置及设备 | |
CN108628885A (zh) | 一种数据同步方法、装置及存储设备 | |
CN101783740A (zh) | 消息文件管理方法及装置 | |
CN113094355A (zh) | 基于国产化通信协议的模型实例化方法、装置、设备及介质 | |
CN102611576A (zh) | 一种生成网管配置模型文件的方法及装置 | |
CN109635022B (zh) | 一种可视化的ElasticSearch数据采集方法及装置 | |
CN104615459A (zh) | 一种MoCA设备参数配置方法及装置 | |
CN101882078B (zh) | 基于内存数据架构的模块间实时同步方法 | |
CN102685222B (zh) | 一种用于电力系统的云存储资源管理装置 | |
CN102571381B (zh) | 一种信息存储方法以及信息存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |