CN107807932B - 一种基于路径枚举的层级数据管理方法和*** - Google Patents

一种基于路径枚举的层级数据管理方法和*** Download PDF

Info

Publication number
CN107807932B
CN107807932B CN201610812627.6A CN201610812627A CN107807932B CN 107807932 B CN107807932 B CN 107807932B CN 201610812627 A CN201610812627 A CN 201610812627A CN 107807932 B CN107807932 B CN 107807932B
Authority
CN
China
Prior art keywords
node
target
data
interface
tree
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.)
Active
Application number
CN201610812627.6A
Other languages
English (en)
Other versions
CN107807932A (zh
Inventor
王家彬
周海发
杨磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201610812627.6A priority Critical patent/CN107807932B/zh
Publication of CN107807932A publication Critical patent/CN107807932A/zh
Application granted granted Critical
Publication of CN107807932B publication Critical patent/CN107807932B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24564Applying rules; Deductive queries
    • G06F16/24566Recursive queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提出了一种基于路径枚举的层级数据管理方法和***,以二级索引的形式将层级数据存储于非关系型数据库中,所述层级数据为树型结构数据;所述二级索引中,第一级索引为树的根节点,第二级索引为树的目标节点,所述二级索引指向的目标数据包括所述根节点到所述目标节点的路径数据,此外,还包括对所述层级数据进行查询,包括查询目标节点的上级节点和下级节点。本发明以二级索引的键值的存储方式将层级数据存储在非关系型数据库中,通过使用非关系型数据库,读写效率较高;采用路径枚举免递归的方式实现对层级数据的查询,查询效率更优。

Description

一种基于路径枚举的层级数据管理方法和***
技术领域
本发明涉及数据管理领域,具体涉及基于路径枚举的层级数据管理方法和***。
背景技术
在即时通信领域,存在两种即时通讯软件,分别为基于扁平化架构的即时通信软件和应用于多层级架构的即时通信软件,其中,多层级架构用于表示用户之间的上下级关系。由于基于扁平化架构的通信软件的数据模型不能处理用于表征多层级架构的呈树型结构的层级数据,因此基于扁平化架构的通信软件难以支持在存在上下级关系的用户之间的通信,从而限制了其使用范围。
目前,大多是基于关系型数据库MySql进行层级数据的组织,具体地是使用MySql和邻接表结合的方式组织层级数据,而MySql是使用硬盘作为存储器,读写效率较低,在进行层级数据的读写时需要使用SQL语句递归查询或是进行多表的关联查询,使得***运行复杂;也可以选用非关系型数据库通过配合邻接表的方式组织层级数据,但是使用邻接表会导致在有关层级数据的交互过程中网络交互次数的增多和网络流量消耗的增加。
发明内容
为了解决上述技术问题,本发明提出了一种基于路径枚举的层级数据管理方法和***。本发明是以如下技术方案实现的:
一种基于路径枚举的层级数据管理方法,包括:
以二级索引的形式将层级数据存储于非关系型数据库中,所述层级数据为树型结构数据;
所述二级索引中,第一级索引为树的根节点,第二级索引为树的目标节点,所述二级索引指向的目标数据包括所述根节点到所述目标节点的路径数据。所述二级索引指向的目标数据还包含深度值,所述深度值表示目标节点在树中的层级位置。
还包括对所述层级数据进行查询,包括查询目标节点的上级节点和下级节点。所述查询目标节点的上级节点,包括查询目标节点的父节点和祖先节点。所述查询目标节点的下级节点,包括查询目标节点的子节点和后代节点。
还包括对所述层级数据进行***、删除和/或迁移。
一种基于路径枚举的层级数据管理***,包括:
二级索引构建模块,用于构建层级数据的二级索引,所述层级数据为树型结构数据,所述二级索引中,第一级索引为树的根节点,第二级索引为树的目标节点,所述二级索引指向的目标数据包括所述根节点到所述目标节点的路径数据;
数据库构建模块,用于以二级索引的形式将所述层级数据存储于非关系型数据库中。
还包括:数据查询模块;所述数据查询模块包括上级查询子模块和下级查询子模块,所述上级查询子模块用于查询目标节点的上级节点,所述下级查询子模块用于查询目标节点的下级节点。
所述上级查询子模块包括直接上级查询单元和全部上级查询单元,所述直接上级查询单元用于查询所述目标节点的父节点,所述全部上级查询单元用于查询所述目标节点的祖先节点。
所述下级查询子模块包括直接下级查询单元和全部下级查询单元,所述直接下级查询单元用于查询所述目标节点的子节点,所述全部下级查询单元用于查询所述目标节点的后代节点。
还包括:数据库操作模块,用于拓展数据库的功能逻辑,所述功能逻辑包括***、删除和/或迁移。
还包括:接口模块,用于提供对数据库进行操作的接口,所述接口模块提供查询接口、***接口、删除接口和/或迁移接口。
一种即时通信***,包括上述的基于路径枚举的层级数据管理***,还包括:
数据库操作模块,用于拓展数据库的功能逻辑,所述功能逻辑包括***、删除和/或迁移;
接口模块,用于提供对数据库进行操作的接口,所述接口模块包括查询接口、***接口、删除接口和/或迁移接口,所述***接口用于提供对层级数据进行***的接口,所述删除接口用于提供对层级数据进行删除的接口,所述迁移接口用于提供对层级数据进行操作的接口。
还包括:
即时通信服务器和至少一个即时通信客户端;
所述即时通信客户端用于发出操作指令;
所述即时通信服务器用于接收操作指令,调用所述接口模块的相关接口,实现多层级架构间的通信。
本发明的有益效果是:
(1)使用非关系型数据库组织层级数据,非关系型数据库采用内存或固态硬盘(SSD)进行数据的存储与读写,其存储和数据读写效率较高。
(2)通过以枚举的形式记录树形层级数据的全部路径,并通过二级索引组织所述路径,能够实现对层级数据的免递归查询,从而使得查询效率更优,与层级数据相关的操作指令的响应速度更快。
(3)基于路径枚举的层级数据管理***中,与层级数据管理相关的算法逻辑和存储管理均以模块化的方式实现,从而使得所述层级数据管理***与其它***间的交互变得简单,增强了层级数据管理***的适应性和可移植性;
(4)通过与基于路径枚举的层级数据管理***进行交互,使得原本只能支持扁平化通信的即时通信***能够支持多层级架构间用户的通信,从而拓展扁平化通信软件的适用范围。
附图说明
图1(a)是层级数据的树型结构图;
图1(b)是以邻接表的形式记录层级数据的示意图;
图2是实施例1提供的一种基于路径枚举的层级数据管理方法的流程图;
图3是实施例1中邻接表递归查询的网络交互示意图;
图4是实施例1中全量拉取数据层流量示意图;
图5(a)为实施例1中层级数据的树型结构图;
图5(b)为实施例1中以枚举的形式记录层级数据的路径的示意图;
图6是实施例3中提供的一种基于路径枚举的层级数据管理***的示意图;
图7是实施例3中数据查询模块示意图;
图8是实施例4中提供的一种即时通信***的示意图;
图9是实施例4中提供的查询操作的时序图;
图10是实施例4中提供的***操作的时序图;
图11是实施例4中提供的叶子节点的删除操作的时序图;
图12是实施例4中提供的分支的柔性删除操作的时序图;
图13是实施例4中提供的分支的强制删除操作的时序图;
图14是实施例4中提供的迁移操作的时序图。
具体实施方法
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在支持基于多层级架构的通信***领域均使用关系型数据库MySql配合邻接表的方式管理呈树型结构的层级数据,该方法不同于使用非关系型数据库NoSql的数据管理方式,存在下述弊端:
(1)对于非关系型数据库和关系型数据库功能进行比对分析,结果如表1所示:
表1 MySQL与NoSql的功能对比表
功能特性 关系型数据库MySql 非关系型数据库NoSql
存储数据长度 无限制 64kb
复杂的查询操作 支持 不支持
数据读取效率 较低 较高
数据存储方式 硬盘 内存和硬盘
自动备份 一主多备 一主多备
异地存储 支持 支持
自动扩容 不支持 支持
对于表1的分析结果如下:
在即时通信领域,MySql的数据长度无限制意义不大,但是异地存储和自动扩容却对于层级数据的管理具有实际意义。MySql不支持自动扩容,从而为即时通信软件中MySql的使用带来隐患。
MySql支持复杂的查询操作,因此使用MySql管理层级数据具有开发简单的优势,但是MySql数据读取效率较低,在即时通信领域,需要对层级数据执行较多的查询动作,显然,使用NoSql开发软件性能更佳。
NoSql依托内存和硬盘进行数据存储,相较于依托硬盘的MySql,显然具有更高的运行速度。
综上所述,关系型数据库MySql相较于非关系型数据库NoSql在性能上存在较大差距。
(2)关系型数据库MySql中使用邻接表存储层级数据,占用空间小,修改效率高但是查询效率低:
在多层级架构模块中,需要处理很多复杂的业务逻辑,比如查询目标节点的上级节点和下级节点,所述查询目标节点的上级节点包括查询目标节点的父节点和祖先节点,所述查询目标节点的下级节点包括查询目标节点的子节点和后代节点;这些操作均需要递归查询。如图1所示,图1(a)是层级数据的树型结构图,图1(b)是以邻接表的形式记录层级数据的示意图。其中,MySql每行数据记录一个节点和一个关联节点,所述关联节点为上级节点和下级节点,查询上级节点和下级节点时均需要采用递归的方式,造成性能损耗,对于没有经验的开发人员或数据库管理员DBA,性能损失将更加严重。
综上所述,为提升层级数据的存储与管理性能,使用非关系型数据库组织层级数据具有突出的优势。
实施例1:
如图2所示,本实施例提供了一种基于路径枚举的层级数据管理方法,包括:
S101.以二级索引的形式将层级数据存储于非关系型数据库中,所述层级数据为树型结构数据。
所述二级索引中,第一级索引为树的根节点,第二级索引为树的目标节点,所述二级索引指向的目标数据包括所述根节点到所述目标节点的路径数据。所述二级索引指向的目标数据还包含深度值,所述深度值表示目标节点在树中的层级位置。
S102.对所述层级数据进行查询、***、删除和/或迁移。
所述查询包括查询目标节点的上级节点和下级节点。
所述查询目标节点的上级节点,包括查询目标节点的父节点和祖先节点。所述查询目标节点的下级节点,包括查询目标节点的子节点和后代节点。
现有技术中利用非关系型数据库进行查询,会存在两种情况:
第一种情况,使用二级索引(KeyKeyRow)的存储方式组织层级数据并选用邻接表表示层级数据,通过递归查询实现对于层级数据的查询,如图3所示,每1次查询请求在后台平均产生3次的请求量。
第二种情况,使用键值对(KeyValue)的存储方式组织层级数据,如图4所示,在数据查询操作中,每次操作都会全量拉取数据,网络吞吐量将会提升1个数量级。
为克服现有技术中利用非关系型数据库查询导致的性能损耗,本实施例中通过以枚举的形式记录树形层级数据的全部路径,并通过二级索引组织所述路径,能够实现对于层级数据的免递归查询,从而解决上述的网络交互次数变多和网络流量增加的问题,其中路径枚举的存储方式为图5所示,其中,图5(a)为层级数据的树型结构图,图5(b)为以枚举的形式记录层级数据的路径的示意图。
本实施例中基于非关系型数据库进行层级数据的存储,读写性能具有显著优势;通过使用路径枚举实现免递归查询,解决了网络交互次数变多和网络流量增加的问题,从而保证较高的查询效率。
实施例2:
本实施例提供了一种基于路径枚举的层级数据管理方法,包括:
S201.以二级索引的形式将层级数据存储于非关系型数据库中,所述层级数据为树型结构数据。
所述二级索引中,第一级索引为树的根节点,第二级索引为树的目标节点,所述二级索引指向的目标数据包括所述根节点到所述目标节点的路径数据。所述二级索引指向的目标数据还包含深度值,所述深度值表示目标节点在树中的层级位置。对于图5(a)中的树形结构,在所述非关系型数据库中的存储的具体结构如表2所示;
表2非关系型数据库中二级索引的具体存储结构
Figure BDA0001111520560000071
Figure BDA0001111520560000081
S202.对所述层级数据进行查询、***、删除和/或迁移,
对所述层级数据的查询包括查询目标节点的上级节点和下级节点。
所述查询目标节点的上级节点,包括查询目标节点的父节点和祖先节点,所述查询目标节点的下级节点,包括查询目标节点的子节点和后代节点。
本实施例参照表2实现免递归操作的具体方式如下:
a)查询目标节点的父节点
i.从非关系型数据库中取出目标节点对应的目标数据,所述目标数据对应的第一级索引(主key)为目标节点所在树的根节点,所述目标数据对应的第二级索引(行key)为目标节点;
ii.通过目标数据获得目标节点在树中的深度值;在所述目标数据中,“深度值-1”位置的值即为目标节点的父节点。
如查询5的父节点,在表2中,则查询主key为1,行key为5的这行数据,目标数据的深度值为3,则深度值-1为2,因此,节点2的值即为5的父节点。
b)查询目标节点的祖先节点
i.从非关系型数据库中取出目标节点对应的目标数据,所述目标数据对应的第一级索引(主key)为目标节点所在树的根节点,所述目标数据对应的第二级索引(行key)为目标节点;
ii.通过目标数据获得目标节点在树中的深度值;在所述目标数据中,0到“深度值-1”位置的值即为目标节点的祖先节点。
如查询5的祖先节点,在表2中,则查询主key为1,行key为5的这行数据,目标数据的深度值为3,则深度值-1为2,则节点1和节点2即为5的祖先节点。
c)查询目标节点的子节点
i.从非关系型数据库中取出目标节点对应的目标数据,所述目标数据对应的第一级索引(主key)为目标节点所在树的根节点,所述目标数据对应的第二级索引(行key)为目标节点;
ii.通过目标数据获得目标节点在树中的深度值;
iii.在与目标数据对应的第一级索引框架下查找目标第二级索引(行key),所述目标第二级索引的值即为目标节点的子节点。
所述目标第二级索引指向的目标数据具有以下特征:
深度值为目标节点在书中的深度值+1;
节点N的值为目标节点,其中N=目标节点在树中的深度值。
如查询1的后代节点,在表2中,则查询主key为1,行key为1的这行数据,得到1的深度值为1;从非关系型数据库中全部数据中过滤出“节点1”位置的值是“1”,且深度值为2的数据,得到两行数据,所得两行数据的行key即为1的子节点。
d)查询目标节点的后代节点
i.从非关系型数据库中取出目标节点对应的目标数据,所述目标数据对应的第一级索引(主key)为目标节点所在树的根节点,所述目标数据对应的第二级索引(行key)为目标节点;
ii.通过目标数据获得目标节点在树中的深度值;
iii.在与目标数据对应的第一级索引框架下查找目标第二级索引(行key),所述目标第二级索引的值即为目标节点的后代节点。
所述目标第二级索引指向的目标数据具有以下特征:
节点N的值为目标节点,其中N=目标节点在树中的深度值。
如查询5的后代节点,在表2中,则查询主key为1,行key为5的这行数据,得到5的深度值为3;从非关系型数据库的全部数据中过滤出“节点3”位置的值是“5”的数据,得到三行数据,所得三行数据行key即为5的后代节点。
进一步地,对所述层级数据的删除包括叶子节点删除和分支删除,所述分支删除包括柔性删除和强制删除。
所述柔性删除表示的是,数据进行删除前进行删除确认,提醒数据将被删除;所述强制删除表示的是,提出删除请求,读取待删节点后,不进行删除确认直接将其删除。
本实施例提供了一种基于路径枚举的层级数据查询方法,将层级数据存储于非关系型数据库,采用路径枚举免递归的方式,实现目标节点的各种查询,查询过程中流量和吞吐量均符合预期的低开销,从整体上提高了***的性能。
实施例3:
如图6所示,本实施例提供了一种基于路径枚举的层级数据管理***,包括:
二级索引构建模块401,用于构建层级数据的二级索引,所述层级数据为树型结构数据,所述二级索引中,第一级索引为树的根节点,第二级索引为树的目标节点,所述二级索引指向的目标数据包括所述根节点到所述目标节点的路径数据。
数据库构建模块402,用于以二级索引的形式将所述层级数据存储于非关系型数据库中。
数据查询模块403,用于查询所述数据库构建模块中的数据,如图7所示,所述数据查询模块包括上级查询子模块4031和下级查询子模块4032,所述上级查询子模块4031用于查询目标节点的上级节点,所述下级查询子模块4032用于查询目标节点的下级节点。
所述上级查询子模块4031包括直接上级查询单元和全部上级查询单元,所述直接上级查询单元用于查询所述目标节点的父节点,所述全部上级查询单元用于查询所述目标节点的祖先节点。
所述下级查询子模块4032包括直接下级查询单元和全部下级查询单元,所述直接下级子查询模块用于查询所述目标节点的子节点,所述全部下级查询单元用于查询所述目标节点的后代节点。
还包括:
数据库操作模块404,用于拓展数据库的功能逻辑,所述功能逻辑包括***、删除和/或迁移。
接口模块405,用于提供对数据库进行操作的接口,所述接口模块405包括查询接口、***接口、删除接口和/或迁移接口,所述***接口用于提供对数据库进行***的接口,所述删除接口用于提供对数据库进行删除的接口,所述迁移接口用于提供对数据库进行操作的接口。
本实施例中提供的一种层级数据管理***,能够用于实现实施例1和实施例2提供的层级数据管理方法,与层级数据管理相关的算法逻辑和存储管理均以模块化的方式实现,从而使得所述层级数据管理***与其它***间的交互变得简单,增强了层级数据管理***的适应性和可移植性。
实施例4:
如图8所示,本实施例提供了一种即时通信***,包括层级数据管理***501,所述层级数据管理***501通过实施例4提供的基于路径枚举的层级数据管理***实现,包括二级索引构建模块5011、数据库构建模块5012、数据查询模块5013、数据库操作模快5014和接口模块5015;
即时通信服务器502和至少一个即时通信客户端503;
所述即时通信客户端503用于发出操作指令;
所述即时通信服务器502用于接收操作指令,调用所述接口模块5015的相关接口,利用所述数据库操作模快5014功能逻辑的扩展,实现多层级架构间的通信。
具体地,所述操作指令包括查询指令、***指令、删除指令和迁移指令,所述接口模块5015包括查询接口、***接口、删除接口和迁移接口。
进一步地,如图9所示,本实施例提供的查询操作的时序图,具体地,查询后代节点的时序图,即时通信客户端503发出查询指令,所述即时通信服务器502调用接口模块5015提供的查询接口读取目标节点,根据过滤条件过滤出读取的目标节点的后代节点。
进一步地,如图10所示,本实施例提供的***操作的时序图,具体地,即时通信客户端503发出***指令,所述即时通信服务器502调用接口模块5015提供的***接口读取父节点;根据***指令中携带的参数执行***动作之前,还需要进行合法性检查,例如***节点的数量合法性、***节点的层级合法性以及节点的实际存在性。
具体地,在即时通信***中,所述删除操作包括叶子节点删除和分支删除,所述分支删除包括柔性删除和强制删除。
如图11所示,为叶子节点的删除操作的时序图,具体地,即时通信客户端503发出删除叶子节点指令,即时通信服务器502调用接口模块5015提供的删除接口读取待删节点;其中,删除指令执行删除动作之前,要对待删除的叶子节点进行合法性检查。
如图12所示,为分支的柔性删除操作的时序图,具体地,即时通信客户端503发出分支的柔性删除指令,即时通信服务器502调用接口模块5015提供的删除接口读取待删节点,根据读取的记录过滤出待删节点的后代节点;其中,删除指令执行删除动作之前,返回给即时通信客户端503删除确认信息,所述确认信息用于提醒将要删除全部数据。
如图13所示,为分支的强制删除操作的时序图,具体地,即时通信客户端503发出分支的强制删除指令,即时通信服务器502调用接口模块5015提供的删除接口读取待删节点,根据读取的记录过滤出待删节点的后代节点,进而直接删除。
如图14所示,为迁移操作的时序图,具体地,即时通信客户端503发出迁移指令,即时通信服务器502调用接口模块5015提供的迁移接口读取根节点,根据读取的记录过滤出根节点的后代节点,进一步地读取目标节点;其中,在写入新目标节点之前,需要检查被迁移节点的合法性,以及对迁移后的新数据进行组装。
本发明中的技术方案中的各个模块均可通过计算机终端或其它设备实现。所述计算机终端包括处理器和存储器。所述存储器用于存储本发明中的程序指令/模块,所述处理器通过运行存储在存储器内的程序指令/模块,实现本发明相应功能。
本发明中的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
本发明中所述模块/单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。可以根据实际的需要选择其中的部分或者全部模块/单元来达到实现本发明方案的目的。
另外,在本发明各个实施例中的各模块/单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (6)

1.一种基于路径枚举的层级数据管理方法,其特征在于,包括:
以二级索引的形式将层级数据存储于非关系型数据库中,所述层级数据为树型结构数据,所述二级索引中,第一级索引为树的根节点,第二级索引为树的目标节点,所述二级索引指向的目标数据包括所述根节点到所述目标节点的路径数据以及所述目标节点在树中的深度值;
从所述非关系型数据库中取出所述目标节点对应的目标数据;
通过所述目标数据获得所述目标节点在树中的深度值;
将所述目标数据中,深度值减1位置的值作为所述目标节点的父节点,将所述目标数据中,零到深度值减1位置的值作为所述目标节点的祖先节点;
在与所述目标数据对应的第一级索引框架下查找目标第二级索引;
将所述目标第二级索引的值作为所述目标节点的下级节点,所述下级节点为所述目标节点的子节点或后代节点。
2.根据权利要求1所述的基于路径枚举的层级数据管理方法,其特征在于,还包括对所述层级数据进行***、删除和/或迁移。
3.一种基于路径枚举的层级数据管理***,其特征在于,包括:
二级索引构建模块,用于构建层级数据的二级索引;
数据库构建模块,用于以二级索引的形式将所述层级数据存储于非关系型数据库中,所述层级数据为树型结构数据,所述二级索引中,第一级索引为树的根节点,第二级索引为树的目标节点,所述二级索引指向的目标数据包括所述根节点到所述目标节点的路径数据以及所述目标节点在树中的深度值;
目标数据确定模块,用于从所述非关系型数据库中取出所述目标节点对应的目标数据;
深度值获取模块,用于通过所述目标数据获得所述目标节点在树中的深度值;
父节点确定模块,用于将所述目标数据中,深度值减1位置的值作为所述目标节点的父节点;
祖先节点确定模块,用于将所述目标数据中,零到深度值减1位置的值作为所述目标节点的祖先节点;
目标索引查找模块,用于在与所述目标数据对应的第一级索引框架下查找目标第二级索引;
下级节点确定模块,用于将所述目标第二级索引的值作为所述目标节点的下级节点,其中所述下级节点为所述目标节点的子节点或后代节点。
4.根据权利要求3所述的基于路径枚举的层级数据管理***,其特征在于,还包括:
数据库操作模块,用于拓展数据库的功能逻辑,所述功能逻辑包括***、删除和/或迁移。
5.根据权利要求4所述的基于路径枚举的层级数据管理***,其特征在于,还包括:
接口模块,用于提供对数据库进行操作的接口,所述接口模块提供查询接口、***接口、删除接口和/或迁移接口。
6.一种即时通信***,包括权利要求3所述的基于路径枚举的层级数据管理***,其特征在于,还包括:
数据库操作模块,用于拓展数据库的功能逻辑,所述功能逻辑包括***、删除和/或迁移;
接口模块,用于提供对数据库进行操作的接口,所述接口模块提供查询接口、***接口、删除接口和/或迁移接口;
还包括:
即时通信服务器和至少一个即时通信客户端;
所述即时通信客户端用于发出操作指令;
所述即时通信服务器用于接收操作指令,调用所述接口模块的相关接口,实现多层级架构间的通信。
CN201610812627.6A 2016-09-08 2016-09-08 一种基于路径枚举的层级数据管理方法和*** Active CN107807932B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610812627.6A CN107807932B (zh) 2016-09-08 2016-09-08 一种基于路径枚举的层级数据管理方法和***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610812627.6A CN107807932B (zh) 2016-09-08 2016-09-08 一种基于路径枚举的层级数据管理方法和***

Publications (2)

Publication Number Publication Date
CN107807932A CN107807932A (zh) 2018-03-16
CN107807932B true CN107807932B (zh) 2021-11-16

Family

ID=61576233

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610812627.6A Active CN107807932B (zh) 2016-09-08 2016-09-08 一种基于路径枚举的层级数据管理方法和***

Country Status (1)

Country Link
CN (1) CN107807932B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109062936B (zh) * 2018-06-15 2023-10-31 中国平安人寿保险股份有限公司 一种数据查询方法、计算机可读存储介质及终端设备
CN111177206B (zh) * 2018-11-09 2023-07-11 盒马(中国)有限公司 数据透视表处理方法、装置及***
CN110110007A (zh) * 2019-04-15 2019-08-09 平安普惠企业管理有限公司 数据管理方法及相关产品
CN110471916B (zh) * 2019-07-03 2023-05-26 平安科技(深圳)有限公司 数据库的查询方法、装置、服务器及介质
CN112256690B (zh) * 2019-07-22 2022-09-13 上海汇招信息技术有限公司 新型树形结构方法以及新型树形结构的更新方法
US11762859B2 (en) 2020-09-28 2023-09-19 International Business Machines Corporation Database query with index leap usage
CN112948385B (zh) * 2021-03-02 2024-02-13 深圳大学 序列数据分布的显示方法、装置、存储介质及终端设备
CN113626433B (zh) * 2021-08-03 2024-01-19 上海沄熹科技有限公司 一种基于两层art树的数据存储方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101210339B1 (ko) * 2006-10-10 2012-12-18 삼성전자주식회사 트리 구조에서의 노드 식별자 생성 방법
CN101840400B (zh) * 2009-03-19 2012-02-01 北大方正集团有限公司 一种多级分类检索方法及***
CN102467521B (zh) * 2010-11-08 2013-09-04 北大方正集团有限公司 一种易扩展的多级分类检索方法及***
CN103853773A (zh) * 2012-12-04 2014-06-11 厦门亿联网络技术股份有限公司 一种Mysql数据库下树形数据结构的检索方法
CN103279544A (zh) * 2013-06-05 2013-09-04 中国电子科技集团公司第十五研究所 树型结构数据在关系型数据库中的存储和查询方法及装置
CN104239511B (zh) * 2014-09-15 2016-03-30 西安交通大学 一种面向MongoDB的用户空间文件***实现方法
CN104281701B (zh) * 2014-10-20 2018-02-09 北京农业信息技术研究中心 分布式多尺度空间数据查询方法及***

Also Published As

Publication number Publication date
CN107807932A (zh) 2018-03-16

Similar Documents

Publication Publication Date Title
CN107807932B (zh) 一种基于路径枚举的层级数据管理方法和***
CN102426609B (zh) 一种基于MapReduce编程架构的索引生成方法和装置
CN104794123A (zh) 一种为半结构化数据构建NoSQL数据库索引的方法及装置
CN103279532B (zh) 多集合元素去重并标识所属集合的过滤***及其方法
CN107977396B (zh) 一种KeyValue数据库的数据表的更新方法与表数据更新装置
CN104133867A (zh) 分布式顺序表片内二级索引方法及***
CN104156380A (zh) 一种分布式存储器哈希索引方法及***
CN102915278A (zh) 重复数据删除方法
CN109542861B (zh) 一种文件管理方法、装置和***
CN104239377A (zh) 跨平台的数据检索方法及装置
CN107766355B (zh) 层级数据管理方法、层级数据管理***及即时通信***
CN110888837B (zh) 对象存储小文件归并方法及装置
WO2014110940A1 (en) A method, apparatus and system for storing, reading the directory index
CN104834650A (zh) 一种有效查询任务生成方法及***
CN105260464A (zh) 数据存储结构的转换方法及装置
CN104615785A (zh) 一种基于TYKY cNosql数据库的数据存储方法及装置
CN106649602A (zh) 业务对象数据处理方法、装置和服务器
CN103942301A (zh) 一种面向多数据类型访问应用的分布式文件***
CN115840731A (zh) 文件处理方法、计算设备及计算机存储介质
CN109614411B (zh) 数据存储方法、设备和存储介质
WO2020024798A1 (zh) 一种时序数据的高效存储方法
CN111459900A (zh) 大数据生命周期设置方法、装置、存储介质及服务器
CN113297432B (zh) 用于分区拆分与合并的方法、处理器可读介质和***
CN108984626B (zh) 一种数据处理方法、装置及服务器
CN105843809B (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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231008

Address after: 518057 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 floors

Patentee after: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.

Patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd.

Address before: 2, 518000, East 403 room, SEG science and Technology Park, Zhenxing Road, Shenzhen, Guangdong, Futian District

Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.