CN108733317A - 数据存储方法和装置 - Google Patents
数据存储方法和装置 Download PDFInfo
- Publication number
- CN108733317A CN108733317A CN201710252256.5A CN201710252256A CN108733317A CN 108733317 A CN108733317 A CN 108733317A CN 201710252256 A CN201710252256 A CN 201710252256A CN 108733317 A CN108733317 A CN 108733317A
- Authority
- CN
- China
- Prior art keywords
- stored
- node
- data
- serial number
- byte
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了数据存储方法和装置。该方法的一具体实施方式包括:根据预设的多叉树的映射表,确定多叉树的待存储节点集合中每个待存储节点的编码信息,编码信息包括:父节点级别、第一序号和第二序号;根据待存储节点集合中每个待存储节点的编码信息生成每个待存储节点的包括数据头和数据体的待存储数据,其中,数据头包括父节点级别和第一序号,数据体包括第二序号;将数据头不同的待存储数据分别存储;将数据头相同的待存储数据合并存储,以使得合并存储后的待存储数据共用相同的数据头,并且数据体是数据头相同的每个待存储数据的数据体进行按位或运算的结果。该实施方式实现了多叉树类型数据的压缩存储。
Description
技术领域
本申请涉及计算机技术领域,具体涉及持久化存储技术领域,尤其涉及数据存储方法和装置。
背景技术
项目开发中常能遇到一些存储和查询多叉树类型数据的场景。如,全国行政区域划表数据为多叉树结构,含有国家、省、市、县、镇五级地址。在电子商务商家平台,每个商家要对不同的地区设定不同的计费规则。当规则地区对应关系量大时,会出现数据存储量大、缓存进服务容器占用内存空间大的问题。
现有持久化存储方案中以字符串类型存储全部地区整型主键标识。采用缓存数据到服务容器中查找方案,构建地区主键标识为键(key)的哈希(hash)数据结构,进行hash查找。
当规则地区数据多时,持久化存储占用磁盘空间大,缓存数据到服务容器内存导致内存空间占用大。
发明内容
本申请的目的在于提出一种改进的数据存储方法和装置,来解决以上背景技术部分提到的技术问题。
第一方面,本申请实施例提供了一种数据存储方法该方法包括:根据预设的多叉树的映射表,确定多叉树的待存储节点集合中每个待存储节点的编码信息,其中,映射表用于表征多叉树的节点与编码信息的对应关系,编码信息包括:父节点级别、第一序号和第二序号,第一序号为待存储节点的父节点在父节点级别中的序号,第二序号为待存储节点在兄弟节点中的序号;根据待存储节点集合中每个待存储节点的编码信息生成每个待存储节点的包括数据头和数据体的待存储数据,其中,数据头包括父节点级别和第一序号,数据体包括第二序号;将数据头不同的待存储数据分别存储;将数据头相同的待存储数据合并存储,以使得合并存储后的待存储数据共用相同的数据头,并且数据体是数据头相同的每个待存储数据的数据体进行按位或运算的结果。
在一些实施例中,数据头包括基本字节和用于指示数据头是否包括扩展字节的扩展标志;以及根据待存储节点集合中每个待存储节点的编码信息生成每个待存储节点的包括数据头和数据体的待存储数据,包括:在基本字节中按预设的长度存储每个待存储节点的父节点级别;根据每个待存储节点的第一序号的长度和基本字节的长度确定是否需要增加扩展字节;若需要增加扩展字节则将扩展标志置位,并在基本字节和扩展字节中存储每个待存储节点的第一序号;否则,在基本字节中存储每个待存储节点的第一序号。
在一些实施例中,数据体包括基本字节和用于指示数据体是否包括扩展字节的扩展标志;以及根据待存储节点集合中每个待存储节点的编码信息生成每个待存储节点的包括数据头和数据体的待存储数据,包括:根据每个待存储节点的第二序号的长度和基本字节的长度确定是否需要增加扩展字节;若需要增加扩展字节则将扩展标志置位,并在基本字节和扩展字节中共同存储每个待存储节点的第二序号;否则,在基本字节中存储每个待存储节点的第二序号。
在一些实施例中,在基本字节中存储每个待存储节点的第二序号,包括:将第二序号作为位置标识,并将位置标识指示的数据体中对的位置处的比特位置位。
在一些实施例中,该方法还包括:从合并存储后的待存储数据的数据头中解析出父节点级别、第一序号;从合并存储后的待存储数据的数据体中解析出第二序号;通过映射表将解析出的父节点级别、第一序号和第二序号转换成节点。
在一些实施例中,该方法还包括:检测转换成的节点是否与待存储节点一致;若不一致,则生成告警信息。
第二方面,本申请实施例提供了一种数据存储装置,该装置包括:编码单元,用于根据预设的多叉树的映射表,确定多叉树的待存储节点集合中每个待存储节点的编码信息,其中,映射表用于表征多叉树的节点与编码信息的对应关系,编码信息包括:父节点级别、第一序号和第二序号,第一序号为待存储节点的父节点在父节点级别中的序号,第二序号为待存储节点在兄弟节点中的序号;生成单元,用于根据待存储节点集合中每个待存储节点的编码信息生成每个待存储节点的包括数据头和数据体的待存储数据,其中,数据头包括父节点级别和第一序号,数据体包括第二序号;分别存储单元,用于将数据头不同的待存储数据分别存储;合并存储单元,用于将数据头相同的待存储数据合并存储,以使得合并存储后的待存储数据共用相同的数据头,并且数据体是数据头相同的每个待存储数据的数据体进行按位或运算的结果。
在一些实施例中,数据头包括基本字节和用于指示数据头是否包括扩展字节的扩展标志;以及生成单元进一步用于:在基本字节中按预设的长度存储每个待存储节点的父节点级别;根据每个待存储节点的第一序号的长度和基本字节的长度确定是否需要增加扩展字节;若需要增加扩展字节则将扩展标志置位,并在基本字节和扩展字节中存储每个待存储节点的第一序号;否则,在基本字节中存储每个待存储节点的第一序号。
在一些实施例中,数据体包括基本字节和用于指示数据体是否包括扩展字节的扩展标志;以及生成单元进一步用于:根据每个待存储节点的第二序号的长度和基本字节的长度确定是否需要增加扩展字节;若需要增加扩展字节则将扩展标志置位,并在基本字节和扩展字节中共同存储每个待存储节点的第二序号;否则,在基本字节中存储每个待存储节点的第二序号。
在一些实施例中,生成单元进一步用于:将第二序号作为位置标识,并将位置标识指示的数据体中对的位置处的比特位置位。
在一些实施例中,该装置还包括:解析单元,用于从合并存储后的待存储数据的数据头中解析出父节点级别、第一序号,并从合并存储后的待存储数据的数据体中解析出第二序号;转换单元,用于通过映射表将解析出的父节点级别、第一序号和第二序号转换成节点。
在一些实施例中,该装置还包括:检测单元,用于检测转换成的节点是否与待存储节点一致,若不一致,则生成告警信息。
第三方面,本申请实施例提供了一种设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面中任一的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求第一方面中任一的方法。
本申请实施例提供的数据存储方法和装置,通过对待存储的多叉树的节点进行编码生成包括数据头和数据体的待存储数据,将数据头相同的待存储数据进行压缩合并,从而极大的节省磁盘存储空间和内存空间,并提高了数据读取速度。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构图;
图2是根据本申请的数据存储方法的一个实施例的流程图;
图3是根据本申请的数据存储方法的又一个实施例的流程图;
图4是根据本申请的数据存储装置的一个实施例的结构示意图;
图5是适于用来实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的数据存储方法或数据存储装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持存储和查询多叉树类型数据的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(MovingPicture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的多叉树类型数据提供支持的数据存储服务器。数据存储服务器可以对接收到的多叉树类型数据进行分析等处理,并将处理结果进行压缩存储。还可将压缩存储的数据反馈给终端,供终端解析出实际的多叉树类型数据。
需要说明的是,本申请实施例所提供的数据存储方法一般由服务器105执行,相应地,数据存储装置一般设置于服务器105中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。也可以不需要终端设备来实现数据存储功能。
继续参考图2,示出了根据本申请的数据存储方法的一个实施例的流程200。该数据存储方法,包括以下步骤:
步骤201,根据预设的多叉树的映射表,确定多叉树的待存储节点集合中每个待存储节点的编码信息。
在本实施例中,数据存储方法运行于其上的电子设备(例如图1所示的服务器)可以通过有线连接方式或者无线连接方式从用户利用其进行数据访问的终端接收多叉树的待存储节点集合,然后根据预设的多叉树的映射表,确定多叉树的待存储节点集合中每个待存储节点的编码信息。该映射表可以是预先为该多叉树设置的,也可以预先通过深度学习方法训练出用于将多叉树节点转换成编码的模型,然后将该多叉树的节点集合输入到该模型得到多叉树的映射表。映射表用于表征多叉树的节点与编码信息的对应关系,编码信息包括:父节点级别、第一序号和第二序号,第一序号为待存储节点的父节点在父节点级别中的序号,第二序号为待存储节点在兄弟节点中的序号。例如,
全国行政区域划分数据为多叉树结构,可为全国行政区域划分数据进行编码,除根节点地区外,其余地区既可用区域标识确定本地区,也能通过“父节点级别+第一序号+第二序号”唯一确定本地区,如下表所示:
表1
此时,上海可以用“0(父节点级别,即父地区“中国”的行政级别),0(第一序号,即父地区“中国”的序号),1(第二序号,即本地区“上海”在同一父节点级别中的序号)”来表示;天津市所辖东丽区可以用“1(父节点级别,父地区“天津”的行政级别),2(第一序号,即父地区“天津”在同一父节点级别中的序号),18(第二序号,即本地区“东丽”在兄弟节点中的序号)”来表示。
步骤202,根据待存储节点集合中每个待存储节点的编码信息生成每个待存储节点的包括数据头和数据体的待存储数据。
在本实施例中,数据头包括父节点级别和第一序号,数据体包括第二序号。例如待存储节点“上海”可生成包括数据头(包括“0,0”),和数据体(包括“1”)的待存储数据。
在本实施例的一些可选的实现方式中,数据头包括基本字节和用于指示数据头是否包括扩展字节的扩展标志;以及根据待存储节点集合中每个待存储节点的编码信息生成每个待存储节点的包括数据头和数据体的待存储数据,包括:在基本字节中按预设的长度存储每个待存储节点的父节点级别;根据每个待存储节点的第一序号的长度和基本字节的长度确定是否需要增加扩展字节;若需要增加扩展字节则将扩展标志置位,并在基本字节和扩展字节中存储每个待存储节点的第一序号;否则,在基本字节中存储每个待存储节点的第一序号。数据头和数据体的结构如表2所示:
表2
表2详解:第一行为逻辑区域,划分为数据头区和数据体区;第二行为存储比特(bit)数,其中N为大于等于0整数;第三行为该存储区域说明;第四行为存储区域编号,其中,a区2比特,b区13比特,c区1比特,扩展区域左侧15比特(用d1(15)表示或g1(15))与右侧1比特(用d2(1)或g2(1)表示)划分为数据区域和扩展标志区,e区15比特,f区1比特。第二行位存储数值只对本案例适合,不同存储案例位数值根据实际情况调整。
数据头部分存储“父节点级别+第一序号”,数据体部分存储“第二序号”。对于数据头部分,父节点级别包含4个值,用2个比特表示;用13比特空间存储第一序号,当第一序号值小于等于2^13时,扩展标志设为0;大于2^13时,扩展标志设为1,并扩展出一个16比特,用左侧15比特存储第一序号在b区存储溢出数据,当第一序号大于2^23时,d2区扩展标志设为1,按此规律继续扩展,直至完全存储。
在本实施例的一些可选的实现方式中,数据体包括基本字节和用于指示数据体是否包括扩展字节的扩展标志;以及根据待存储节点集合中每个待存储节点的编码信息生成每个待存储节点的包括数据头和数据体的待存储数据,包括:根据每个待存储节点的第二序号的长度和基本字节的长度确定是否需要增加扩展字节;若需要增加扩展字节则将扩展标志置位,并在基本字节和扩展字节中共同存储每个待存储节点的第二序号;否则,在基本字节中存储每个待存储节点的第二序号。
在本实施例的一些可选的实现方式中,在基本字节中存储每个待存储节点的第二序号,包括:将第二序号作为位置标识,并将位置标识指示的数据体中对的位置处的比特位置位。
如表2所示,对于数据体部分,e区利用比特数组下标存储“第二序号”。例如,第二序号为0,则e区比特数组下标0位设为1;若第二序号为10,则e区比特数组下标10位设为1。当第二序号小于等于e区数组长度时,数据f区设为0;当第二序号大于e区数组长度时,数据f区设为1,并扩展16比特。其中g1区存储第二序号存储在e区溢出部分,g2区存储g1区是否溢出标志,按此规律继续扩展,直至存储完毕。生成的待存储数据如表3所示:
表3
步骤203,将数据头不同的待存储数据分别存储。
在本实施例中,将待存储数据根据数据头分类,不同数据头的待存储数据分别存储,并将数据头相同的待存储数据进行合并存储。
步骤204,将数据头相同的待存储数据合并存储,以使得合并存储后的待存储数据共用相同的数据头,并且数据体是数据头相同的每个待存储数据的数据体进行按位或运算的结果。
在本实施例中,北京和上海同属一个父区域,数据头部分相同,数据体部分可用通过按位“或”运算进行无损压缩,如表4所示:
表4
将以上数据连接为:0x00 0x00 0xc0 0x00 0x40 0x04 0x00 0x010x10 0x00,即将字符串格式的“北京”、“上海”、“天津辖东丽区”转换成数据格式进行存储。
本申请的上述实施例提供的方法通过将编码后的多叉树型数据进行合并压缩存储,能够节省多叉树型数据的磁盘存储空间和服务容器内存空间,并提高数据的存储和查询速度。
进一步参考图3,其示出了数据存储方法的又一个实施例的流程300。该数据存储方法的流程300,包括以下步骤:
步骤301,根据预设的多叉树的映射表,确定多叉树的待存储节点集合中每个待存储节点的编码信息。
步骤302,根据待存储节点集合中每个待存储节点的编码信息生成每个待存储节点的包括数据头和数据体的待存储数据。
步骤303,将数据头不同的待存储数据分别存储。
步骤304,将数据头相同的待存储数据合并存储,以使得合并存储后的待存储数据共用相同的数据头,并且数据体是数据头相同的每个待存储数据的数据体进行按位或运算的结果。
步骤301-304与步骤201-204基本相同,因此不再赘述。
步骤305,从合并存储后的待存储数据的数据头中解析出父节点级别、第一序号。
在本实施例中,按照表2中列出的格式开始解析待存储数据的数据头中的父节点级别、第一序号。执行如下解析数据头的步骤:
(1)解析a区数据获取父节点级别;
(2)暂存b区数据,累加;
(3)解析c区数据以确定是否存在扩展数据;
(4)如果存在扩展数据,则解析d1\d2区数据,并按照b\c区数据格式继续执行步骤(2)和(3);
(5)如果不存在扩展数据,则解析累加b区数据以获得第一序号。
步骤306,从合并存储后的待存储数据的数据体中解析出第二序号。
在本实施例中,按照表2中列出的格式开始解析待存储数据的数据体中的第二序号。执行如下解析数据体的步骤:
(6)暂存e区数据,累加;
(7)解析f区数据以确定是否存在扩展数据;
(8)如果存在扩展数据,则解析g1\g2区数据,并按照e\f区数据格式继续执行步骤(6)和(7);
(9)如果不存在扩展数据,则累加d区数据以获取多个第二序号的位数组;
(10)解析出位数组中位置值为1的下标即为单个第二序号;
(11)解析本节数据完毕,获取到父节点级别、第一序号和第二序号。
(12)判断是否存在后续数据继续重复解析;
(13)若存在后续数据,则继续执行步骤(1)-(11)。
步骤307,通过映射表将解析出的父节点级别、第一序号和第二序号转换成节点。
在本实施例中,可以将转换成数字格式的节点还原成字符串格式的“北京”、“上海”、“天津辖东丽区”,以便于终端读取识别。一些场景中,需要在服务容器缓存中查找某地区是否存在。可以在服务容器缓存中建立以表2中数据头为键(key),数据体为值(value)的映射数据结构,无需缓存叶子节点。根据待查找地区的数据头,在映射数据结构中查找到父地区的所有兄弟地区位数组,进行按位“与”操作即可知是否存在。
在本实施例的一些可选的实现方式中,该方法还包括:检测转换成的节点是否与待存储节点一致;若不一致,则生成告警信息。该告警信息用于提醒用户压缩过程中出错。用户可以选择忽略告警按原字符串格式存储。
从图3中可以看出,与图2对应的实施例相比,本实施例中的数据存储方法的流程300突出了对已经转换成数字格式的数据的进行解析成字符串类型的数据的步骤。由此,本实施例描述的方案可以检验数据压缩结果,提高数据存储的可靠性,并且可快速查询节点是否存在。
进一步参考图4,作为对上述各图所示方法的实现,本申请提供了一种数据存储装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图4所示,本实施例的数据存储装置400包括:编码单元401、生成单元402、分别存储单元403和合并存储单元404。其中,编码单元401用于根据预设的多叉树的映射表,确定多叉树的待存储节点集合中每个待存储节点的编码信息,其中,映射表用于表征多叉树的节点与编码信息的对应关系,编码信息包括:父节点级别、第一序号和第二序号,第一序号为待存储节点的父节点在父节点级别中的序号,第二序号为待存储节点在兄弟节点中的序号;生成单元402用于根据待存储节点集合中每个待存储节点的编码信息生成每个待存储节点的包括数据头和数据体的待存储数据,其中,数据头包括父节点级别和第一序号,数据体包括第二序号;分别存储单元403用于将数据头不同的待存储数据分别存储;合并存储单元404用于将数据头相同的待存储数据合并存储,以使得合并存储后的待存储数据共用相同的数据头,并且数据体是数据头相同的每个待存储数据的数据体进行按位或运算的结果。
在本实施例中,数据存储装置400的编码单元401、生成单元402、分别存储单元403和合并存储单元404的具体处理可以参考图2对应实施例中的步骤201、步骤202、步骤203、步骤204。
在本实施例的一些可选的实现方式中,数据头包括基本字节和用于指示数据头是否包括扩展字节的扩展标志;以及生成单元402进一步用于:在基本字节中按预设的长度存储每个待存储节点的父节点级别;根据每个待存储节点的第一序号的长度和基本字节的长度确定是否需要增加扩展字节;若需要增加扩展字节则将扩展标志置位,并在基本字节和扩展字节中存储每个待存储节点的第一序号;否则,在基本字节中存储每个待存储节点的第一序号。
在本实施例的一些可选的实现方式中,数据体包括基本字节和用于指示数据体是否包括扩展字节的扩展标志;以及生成单元402进一步用于:根据每个待存储节点的第二序号的长度和基本字节的长度确定是否需要增加扩展字节;若需要增加扩展字节则将扩展标志置位,并在基本字节和扩展字节中共同存储每个待存储节点的第二序号;否则,在基本字节中存储每个待存储节点的第二序号。
在本实施例的一些可选的实现方式中,生成单元402进一步用于:将第二序号作为位置标识,并将位置标识指示的数据体中对的位置处的比特位置位。
在本实施例的一些可选的实现方式中,装置400还包括:解析单元(未示出),用于从合并存储后的待存储数据的数据头中解析出父节点级别、第一序号,并从合并存储后的待存储数据的数据体中解析出第二序号;转换单元(未示出),用于通过映射表将解析出的父节点级别、第一序号和第二序号转换成节点。
在本实施例的一些可选的实现方式中,装置400还包括:检测单元(未示出),用于检测转换成的节点是否与待存储节点一致,若不一致,则生成告警信息。
下面参考图5,其示出了适于用来实现本申请实施例的终端设备/服务器的计算机系统500的结构示意图。图5示出的终端设备/服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括编码单元、生成单元、分别存储单元和合并存储单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,编码单元还可以被描述为“根据预设的多叉树的映射表,确定所述多叉树的待存储节点集合中每个待存储节点的编码信息”。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:根据预设的多叉树的映射表,确定多叉树的待存储节点集合中每个待存储节点的编码信息,其中,映射表用于表征多叉树的节点与编码信息的对应关系,编码信息包括:父节点级别、第一序号和第二序号,第一序号为待存储节点的父节点在父节点级别中的序号,第二序号为待存储节点在兄弟节点中的序号;根据待存储节点集合中每个待存储节点的编码信息生成每个待存储节点的包括数据头和数据体的待存储数据,其中,数据头包括父节点级别和第一序号,数据体包括第二序号;将数据头不同的待存储数据分别存储;将数据头相同的待存储数据合并存储,以使得合并存储后的待存储数据共用相同的数据头,并且数据体是数据头相同的每个待存储数据的数据体进行按位或运算的结果。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (14)
1.一种数据存储方法,其特征在于,所述方法包括:
根据预设的多叉树的映射表,确定所述多叉树的待存储节点集合中每个待存储节点的编码信息,其中,所述映射表用于表征多叉树的节点与编码信息的对应关系,编码信息包括:父节点级别、第一序号和第二序号,第一序号为待存储节点的父节点在所述父节点级别中的序号,第二序号为待存储节点在兄弟节点中的序号;
根据所述待存储节点集合中每个待存储节点的编码信息生成每个待存储节点的包括数据头和数据体的待存储数据,其中,数据头包括父节点级别和第一序号,数据体包括第二序号;
将数据头不同的待存储数据分别存储;
将数据头相同的待存储数据合并存储,以使得合并存储后的待存储数据共用相同的数据头,并且数据体是数据头相同的每个待存储数据的数据体进行按位或运算的结果。
2.根据权利要求1所述的方法,其特征在于,数据头包括基本字节和用于指示数据头是否包括扩展字节的扩展标志;以及
所述根据所述待存储节点集合中每个待存储节点的编码信息生成每个待存储节点的包括数据头和数据体的待存储数据,包括:
在所述基本字节中按预设的长度存储每个待存储节点的父节点级别;
根据每个待存储节点的第一序号的长度和所述基本字节的长度确定是否需要增加扩展字节;
若需要增加扩展字节则将所述扩展标志置位,并在所述基本字节和所述扩展字节中存储每个待存储节点的第一序号;
否则,在所述基本字节中存储每个待存储节点的第一序号。
3.根据权利要求1所述的方法,其特征在于,数据体包括基本字节和用于指示数据体是否包括扩展字节的扩展标志;以及
所述根据所述待存储节点集合中每个待存储节点的编码信息生成每个待存储节点的包括数据头和数据体的待存储数据,包括:
根据每个待存储节点的第二序号的长度和所述基本字节的长度确定是否需要增加扩展字节;
若需要增加扩展字节则将所述扩展标志置位,并在所述基本字节和所述扩展字节中共同存储每个待存储节点的第二序号;
否则,在所述基本字节中存储每个待存储节点的第二序号。
4.根据权利要求3所述的方法,其特征在于,所述在所述基本字节中存储每个待存储节点的第二序号,包括:
将第二序号作为位置标识,并将所述位置标识指示的数据体中对的位置处的比特位置位。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
从合并存储后的待存储数据的数据头中解析出父节点级别、第一序号;
从合并存储后的待存储数据的数据体中解析出第二序号;
通过所述映射表将解析出的父节点级别、第一序号和第二序号转换成节点。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
检测转换成的节点是否与待存储节点一致;
若不一致,则生成告警信息。
7.一种数据存储装置,其特征在于,所述装置包括:
编码单元,用于根据预设的多叉树的映射表,确定所述多叉树的待存储节点集合中每个待存储节点的编码信息,其中,所述映射表用于表征多叉树的节点与编码信息的对应关系,编码信息包括:父节点级别、第一序号和第二序号,第一序号为待存储节点的父节点在所述父节点级别中的序号,第二序号为待存储节点在兄弟节点中的序号;
生成单元,用于根据所述待存储节点集合中每个待存储节点的编码信息生成每个待存储节点的包括数据头和数据体的待存储数据,其中,数据头包括父节点级别和第一序号,数据体包括第二序号;
分别存储单元,用于将数据头不同的待存储数据分别存储;
合并存储单元,用于将数据头相同的待存储数据合并存储,以使得合并存储后的待存储数据共用相同的数据头,并且数据体是数据头相同的每个待存储数据的数据体进行按位或运算的结果。
8.根据权利要求7所述的装置,其特征在于,数据头包括基本字节和用于指示数据头是否包括扩展字节的扩展标志;以及
所述生成单元进一步用于:
在所述基本字节中按预设的长度存储每个待存储节点的父节点级别;
根据每个待存储节点的第一序号的长度和所述基本字节的长度确定是否需要增加扩展字节;
若需要增加扩展字节则将所述扩展标志置位,并在所述基本字节和所述扩展字节中存储每个待存储节点的第一序号;
否则,在所述基本字节中存储每个待存储节点的第一序号。
9.根据权利要求7所述的装置,其特征在于,数据体包括基本字节和用于指示数据体是否包括扩展字节的扩展标志;以及
所述生成单元进一步用于:
根据每个待存储节点的第二序号的长度和所述基本字节的长度确定是否需要增加扩展字节;
若需要增加扩展字节则将所述扩展标志置位,并在所述基本字节和所述扩展字节中共同存储每个待存储节点的第二序号;
否则,在所述基本字节中存储每个待存储节点的第二序号。
10.根据权利要求9所述的装置,其特征在于,所述生成单元进一步用于:
将第二序号作为位置标识,并将所述位置标识指示的数据体中对的位置处的比特位置位。
11.根据权利要求7所述的装置,其特征在于,所述装置还包括:
解析单元,用于从合并存储后的待存储数据的数据头中解析出父节点级别、第一序号,并从合并存储后的待存储数据的数据体中解析出第二序号;
转换单元,用于通过所述映射表将解析出的父节点级别、第一序号和第二序号转换成节点。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
检测单元,用于检测转换成的节点是否与待存储节点一致,若不一致,则生成告警信息。
13.一种设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710252256.5A CN108733317B (zh) | 2017-04-18 | 2017-04-18 | 数据存储方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710252256.5A CN108733317B (zh) | 2017-04-18 | 2017-04-18 | 数据存储方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108733317A true CN108733317A (zh) | 2018-11-02 |
CN108733317B CN108733317B (zh) | 2021-01-26 |
Family
ID=63924261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710252256.5A Active CN108733317B (zh) | 2017-04-18 | 2017-04-18 | 数据存储方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108733317B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109886412A (zh) * | 2019-01-11 | 2019-06-14 | 合肥本源量子计算科技有限责任公司 | 一种量子程序的持久化存储方法、装置及存储介质 |
CN111382855A (zh) * | 2018-12-28 | 2020-07-07 | 上海寒武纪信息科技有限公司 | 数据处理装置、方法、芯片及电子设备 |
CN112486421A (zh) * | 2020-12-16 | 2021-03-12 | 上海达梦数据库有限公司 | 一种数据存储方法、装置、电子设备及存储介质 |
CN112835897A (zh) * | 2021-01-29 | 2021-05-25 | 上海寻梦信息技术有限公司 | 地理区域划分管理方法、数据转换方法及相关设备 |
CN113064555A (zh) * | 2021-04-21 | 2021-07-02 | 山东英信计算机技术有限公司 | 一种bios的数据存储方法、装置、设备及存储介质 |
CN113760799A (zh) * | 2020-06-03 | 2021-12-07 | 中车株洲电力机车研究所有限公司 | Upp接口的可扩展通信方法、装置、计算机设备和存储介质 |
CN114676130A (zh) * | 2022-03-02 | 2022-06-28 | 阿里巴巴(中国)有限公司 | 时序数据的存储方法、计算设备及存储介质 |
CN117097736A (zh) * | 2023-10-19 | 2023-11-21 | 腾讯科技(深圳)有限公司 | 资源数据处理方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130036473A1 (en) * | 2011-08-01 | 2013-02-07 | Apple Inc. | System and method for branch function based obfuscation |
CN104484337A (zh) * | 2014-11-19 | 2015-04-01 | 西安电子科技大学 | Xml文档的存储方法 |
US20150124654A1 (en) * | 2013-11-05 | 2015-05-07 | Cisco Technology, Inc. | Method and system for constructing a loop free multicast tree in a data-center fabric |
CN105260134A (zh) * | 2015-09-19 | 2016-01-20 | 中国地质大学(武汉) | 集群环境下面向动态空间计算域的地图数据均衡存储方法 |
CN106464891A (zh) * | 2014-03-17 | 2017-02-22 | 诺基亚技术有限公司 | 用于视频编码和解码的方法和装置 |
-
2017
- 2017-04-18 CN CN201710252256.5A patent/CN108733317B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130036473A1 (en) * | 2011-08-01 | 2013-02-07 | Apple Inc. | System and method for branch function based obfuscation |
US20150124654A1 (en) * | 2013-11-05 | 2015-05-07 | Cisco Technology, Inc. | Method and system for constructing a loop free multicast tree in a data-center fabric |
CN106464891A (zh) * | 2014-03-17 | 2017-02-22 | 诺基亚技术有限公司 | 用于视频编码和解码的方法和装置 |
CN104484337A (zh) * | 2014-11-19 | 2015-04-01 | 西安电子科技大学 | Xml文档的存储方法 |
CN105260134A (zh) * | 2015-09-19 | 2016-01-20 | 中国地质大学(武汉) | 集群环境下面向动态空间计算域的地图数据均衡存储方法 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111382855A (zh) * | 2018-12-28 | 2020-07-07 | 上海寒武纪信息科技有限公司 | 数据处理装置、方法、芯片及电子设备 |
CN111382855B (zh) * | 2018-12-28 | 2022-12-09 | 上海寒武纪信息科技有限公司 | 数据处理装置、方法、芯片及电子设备 |
CN109886412A (zh) * | 2019-01-11 | 2019-06-14 | 合肥本源量子计算科技有限责任公司 | 一种量子程序的持久化存储方法、装置及存储介质 |
CN113760799A (zh) * | 2020-06-03 | 2021-12-07 | 中车株洲电力机车研究所有限公司 | Upp接口的可扩展通信方法、装置、计算机设备和存储介质 |
CN113760799B (zh) * | 2020-06-03 | 2024-04-09 | 中车株洲电力机车研究所有限公司 | Upp接口的可扩展通信方法、装置、计算机设备和存储介质 |
CN112486421A (zh) * | 2020-12-16 | 2021-03-12 | 上海达梦数据库有限公司 | 一种数据存储方法、装置、电子设备及存储介质 |
CN112486421B (zh) * | 2020-12-16 | 2024-05-28 | 上海达梦数据库有限公司 | 一种数据存储方法、装置、电子设备及存储介质 |
CN112835897B (zh) * | 2021-01-29 | 2024-03-15 | 上海寻梦信息技术有限公司 | 地理区域划分管理方法、数据转换方法及相关设备 |
CN112835897A (zh) * | 2021-01-29 | 2021-05-25 | 上海寻梦信息技术有限公司 | 地理区域划分管理方法、数据转换方法及相关设备 |
CN113064555A (zh) * | 2021-04-21 | 2021-07-02 | 山东英信计算机技术有限公司 | 一种bios的数据存储方法、装置、设备及存储介质 |
CN114676130A (zh) * | 2022-03-02 | 2022-06-28 | 阿里巴巴(中国)有限公司 | 时序数据的存储方法、计算设备及存储介质 |
CN114676130B (zh) * | 2022-03-02 | 2024-09-20 | 阿里巴巴(中国)有限公司 | 时序数据的存储方法、计算设备及存储介质 |
CN117097736B (zh) * | 2023-10-19 | 2024-02-13 | 腾讯科技(深圳)有限公司 | 资源数据处理方法、装置、电子设备及存储介质 |
CN117097736A (zh) * | 2023-10-19 | 2023-11-21 | 腾讯科技(深圳)有限公司 | 资源数据处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108733317B (zh) | 2021-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108733317A (zh) | 数据存储方法和装置 | |
CN107818118B (zh) | 数据存储方法和装置 | |
CN108307240B (zh) | 视频推荐方法和装置 | |
CN105243119B (zh) | 确定图像的待叠加区域、叠加图像、图片呈现方法和装置 | |
CN109375918A (zh) | 小程序的界面渲染方法、装置、电子设备和存储介质 | |
CN110471848B (zh) | 一种动态返回报文的方法和装置 | |
CN104798082A (zh) | 用于提供用于数据流的隐私策略的方法和装置 | |
CN109189938A (zh) | 用于更新知识图谱的方法和装置 | |
CN108846753A (zh) | 用于处理数据的方法和装置 | |
CN109657174A (zh) | 用于更新数据的方法和装置 | |
CN109981322A (zh) | 基于标签的云资源管理的方法和装置 | |
CN110263287A (zh) | 页面渲染方法及设备 | |
CN109710905A (zh) | 文档协同编辑方法、装置、存储介质及电子设备 | |
CN109471838A (zh) | 目录文档的操作方法、装置、电子设备、可读存储介质 | |
CN109446442A (zh) | 用于处理信息的方法和装置 | |
CN110019263A (zh) | 信息存储方法和装置 | |
CN110110196A (zh) | 一种消息推送方法和装置 | |
CN108052290A (zh) | 用于存储数据的方法和装置 | |
US20240103928A1 (en) | Information processing method and apparatus for animation resource, device, medium and product | |
CN108985672A (zh) | 信息输出方法和装置 | |
CN105893401A (zh) | 天气信息的展示方法和装置 | |
CN110119386A (zh) | 数据处理方法、数据处理装置、介质和计算设备 | |
CN110895591A (zh) | 一种定位自提点的方法和装置 | |
CN109062560A (zh) | 用于生成信息的方法和装置 | |
CN103699652A (zh) | 一种访问网页的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |