CN116680278B - 数据处理方法、装置、电子设备及存储介质 - Google Patents

数据处理方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN116680278B
CN116680278B CN202310940226.9A CN202310940226A CN116680278B CN 116680278 B CN116680278 B CN 116680278B CN 202310940226 A CN202310940226 A CN 202310940226A CN 116680278 B CN116680278 B CN 116680278B
Authority
CN
China
Prior art keywords
data
data node
information
hierarchical
sequence
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
CN202310940226.9A
Other languages
English (en)
Other versions
CN116680278A (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
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 CN202310940226.9A priority Critical patent/CN116680278B/zh
Publication of CN116680278A publication Critical patent/CN116680278A/zh
Application granted granted Critical
Publication of CN116680278B publication Critical patent/CN116680278B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/2246Trees, e.g. B+trees
    • 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/2282Tablespace storage structures; Management 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/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2468Fuzzy 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/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2474Sequence data queries, e.g. querying versioned data
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Linguistics (AREA)
  • Automation & Control Theory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种数据处理方法、装置、电子设备及存储介质。该方法包括:响应于对树形结构数据中的子树搜索请求,基于子树搜索请求提取待搜索子树的搜索指示信息,搜索指示信息包括待搜索子树的起始数据节点在层级序列字段下的起始层级序列信息;层级序列字段用于表征相应数据节点在树形结构数据中、从根数据节点至相应数据节点按照树形结构数据的层级顺次经过的数据节点;将起始层级序列信息与树形结构数据中各数据节点在层级序列字段下的层级序列信息进行匹配处理,得到匹配的目标层级序列信息;基于起始层级序列信息和目标层级序列信息,获取子树搜索请求对应的子树搜索结果。本申请的技术方案可以提高树形结构数据中子树的搜索效率。

Description

数据处理方法、装置、电子设备及存储介质
技术领域
本申请涉及数据库技术领域,尤其涉及一种数据处理方法、装置、电子设备及存储介质。
背景技术
关系型数据库在许多应用场景中被广泛使用,关系型数据库中一种常见的数据结构是树状结构,即存储的是树形结构数据。但基于关系型数据库存储一般设置数据节点标识字段和父节点字段,在有搜索树形结构数据中子树的需求时,需要深度优先遍历或广度优先遍历的递归方式,来检索到所有子节点,在数据量达到一定量级后,递归方式容易消耗大量的资源以及导致堆栈溢出。这无法支持树形结构数据中子树的高效检索,也不支持整个子树的移动,导致实际应用中的子树检索和移动的效率较低以及灵活性欠佳。
发明内容
有鉴于上述存在的技术问题,本申请提出了数据处理方法、装置、电子设备及存储介质。
根据本申请的一方面,提供了一种数据处理方法,所述方法包括:
响应于对树形结构数据中的子树搜索请求,基于所述子树搜索请求提取待搜索子树的搜索指示信息,所述搜索指示信息包括所述待搜索子树的起始数据节点在层级序列字段下的起始层级序列信息;所述树形结构数据中各数据节点在所述层级序列字段下的层级序列信息不同,所述层级序列字段用于表征相应数据节点在所述树形结构数据中、从根数据节点至所述相应数据节点按照所述树形结构数据的层级顺次经过的数据节点;
将所述起始层级序列信息与所述树形结构数据中各数据节点在所述层级序列字段下的层级序列信息进行匹配处理,得到匹配的目标层级序列信息;所述目标层级序列信息的头部层级序列信息与所述起始层级序列信息相同;
基于所述起始层级序列信息和所述目标层级序列信息,获取所述子树搜索请求对应的子树搜索结果。
根据本申请的另一方面,提供了一种数据处理装置,包括:
搜索指示获取模块,用于响应于对树形结构数据中的子树搜索请求,基于所述子树搜索请求提取待搜索子树的搜索指示信息,所述搜索指示信息包括所述待搜索子树的起始数据节点在层级序列字段下的起始层级序列信息;所述树形结构数据中各数据节点在所述层级序列字段下的层级序列信息不同,所述层级序列字段用于表征相应数据节点在所述树形结构数据中、从根数据节点至所述相应数据节点按照所述树形结构数据的层级顺次经过的数据节点;
搜索模块,用于将所述起始层级序列信息与所述树形结构数据中各数据节点在所述层级序列字段下的层级序列信息进行匹配处理,得到匹配的目标层级序列信息;所述目标层级序列信息的头部层级序列信息与所述起始层级序列信息相同;
子树搜索结果获取模块,用于基于所述起始层级序列信息和所述目标层级序列信息,获取所述子树搜索请求对应的子树搜索结果。
根据本申请的另一方面,提供了一种电子设备,包括:处理器;用于存储处理器可执行请求的存储器;其中,所述处理器被配置为执行上述方法。
根据本申请的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序请求,其中,所述计算机程序请求被处理器执行时实现上述方法。
根据本申请的另一方面,提供了一种计算机程序产品,包括计算机请求,所述计算机请求被处理器执行时,使得计算机执行上述方法。
通过对数据库表结构进行优化,设置了层级序列字段用于表征相应数据节点在所述树形结构数据中、从根数据节点至所述相应数据节点按照所述树形结构数据的层级顺次经过的数据节点,使得搜索树形结构数据中的子树时可以使用搜索指示信息包括待搜索子树的起始数据节点在层级序列字段下的起始层级序列信息,从而可以直接利用起始层级序列信息与树形结构数据中各数据节点在层级序列字段下的层级序列信息进行匹配处理,得到匹配的目标层级序列信息,快速得到待搜索子树包括的数据节点,不需要通过基于数据节点的父子关系进行递归搜索,大大提升树形结构数据中子树的搜索效率和搜索灵活性。并且,搜索指示信息中仅包括起始数据节点的起始层级序列信息,搜索结构简单,即可以基于起始层级序列信息实现模糊搜索,精准得到以起始数据节点为根节点的整个子树,节约资源,避免堆栈溢出,有效适用于较大量级的树形结构数据的子树搜索。
根据下面参考附图对示例性实施例的详细说明,本申请的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本申请的示例性实施例、特征和方面,并且用于解释本申请的原理。
图1示出根据本申请一实施例提供的一种应用系统的示意图。
图2示出根据本申请一实施例提供的一种数据处理方法的流程图。
图3示出根据本申请一实施例提供的一种树形结构数据的树状示意图。
图4示出根据本申请一实施例提供的一种搜索到的子树的示意图。
图5示出根据本申请一实施例提供的一种移动树形结构数据中子树的流程示意图。
图6示出根据本申请一实施例提供的一种树形结构数据中子树移动后的树形结构数据的树状示意图。
图7a示出根据本申请一实施例提供的一种具有层级序列维护字段且层级标识为数字编码标识情况下的树形结构数据的树状示意图。
图7b示出根据本申请一实施例提供的一种具有层级序列维护字段且层级标识为数字编码标识情况下、树形结构数据中子树移动后的树形结构数据的树状示意图。
图8示出根据本申请一实施例提供的一种在树形结构数据中新增数据节点的树状示意图。
图9a示出根据本申请一实施例提供的一种基于业务域和主题域构建数仓的树状结构示意图。
图9b示出根据本申请一实施例提供的一种多端视频产品对应数仓的树状结构示意图。
图9c示出根据本申请一实施例提供的一种搜索数仓中的子树示意图。
图10示出根据本申请一实施例提供的一种数据处理装置的框图。
图11是根据一示例性实施例示出的一种用于数据处理的电子设备的框图。
图12示出根据本申请一实施例提供的一种用于数据处理的电子设备的框图。
具体实施方式
以下将参考附图详细说明本申请的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本申请,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本申请同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本申请的主旨。
请参阅图1,图1示出根据本申请一实施例提供的一种应用系统的示意图。所述应用系统可以用于本申请的数据处理方法。如图1所示,该应用系统至少可以包括服务器01和终端02。
本申请实施例中,所述服务器01可以用于数据处理,该服务器01可以包括独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
本申请实施例中,所述终端02可以用于触发子树搜索请求、节点移动请求等。该终端02可以包括智能手机、台式计算机、平板电脑、笔记本电脑、智能音箱、数字助理、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、智能可穿戴设备等类型的实体设备。实体设备,也可以包括运行于实体设备中的软体,例如应用程序等。本申请实施例中终端02上运行的操作系统可以包括但不限于安卓系统、IOS系统、linux、windows等。
此外,需要说明的是,图1所示的仅仅是本申请提供的数据处理方法的一种应用环境。可选地,也可以将树形结构数据存储在终端,由终端执行子树搜索、子树移动等数据处理操作,本申请对此不作限定。
本说明书实施例中,上述终端02以及服务器01可以通过有线或无线通信方式进行直接或间接地连接,本申请对此不作限定。
在一个具体的实施例中,服务器02为分布式系统时,该分布式系统可以为区块链系统,分布式系统为区块链系统时,可以由多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)形成。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。具体的,区块链系统中各节点的功能,涉及的功能可以包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2) 应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
需要说明的是,在本申请的具体实施方式中,涉及到用户相关的数据,当本申请以下实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
图2示出根据本申请一实施例提供的一种数据处理方法的流程图。如图2所示,该数据处理方法可以包括:
S201,响应于对树形结构数据中的子树搜索请求,基于子树搜索请求提取待搜索子树的搜索指示信息。
本说明书实施例中,树形结构数据可以是指多个数据节点具有树状的层级结构的数据。例如,关系型数据库中的数据库表一般存储树形结构数据。示例性地,可以是类目、标签树、文件层级、思维导图等应用场景,由一个根节点衍生出子节点的层级结构的数据。
实际应用中,树形结构数据可以存储在数据库表中,该数据库表可以包括全局节点标识字段(Id)、父节点字段(parentId)、层级序列字段(sq)。其中,全局节点标识字段可以用于在树形结构数据中唯一标识一个数据节点,即树形结构数据中的数据节点的全局节点标识字段下的全局节点标识不同,其中,一个数据节点可以表示数据库表中的一行数据。父节点字段内可以存储数据节点的父节点的全局节点标识。示例性地,全局节点标识字段对应的数据类型可以为字符,例如字母、数字、数字编码、其他符号中的至少一种。
层级序列字段可以用于表征相应数据节点在树形结构数据中、从根数据节点至相应数据节点按照树形结构数据的层级顺次经过的数据节点,其中,相应数据节点可以是指树形结构数据中的任一数据节点。在一个示例中,层级序列信息以“/”来隔开两个层级为例。假设相应数据节点为图3中的数据节点6,则数据节点6在层级序列字段下的层级序列信息可以为:根数据节点/数据节点2/数据节点6;或者,数据节点6在层级序列字段下的层级序列信息可以使用各数据节点的全局节点标识来表示:1/2/6,基于此,可以通过层级序列字段表征相应数据节点在树形结构数据中、从根数据节点至相应数据节点按照树形结构数据的层级顺次经过的数据节点,例如顺次经过了根数据节点、数据节点2、数据节点6。其中,树形结构数据中各数据节点在层级序列字段下的层级序列信息不同,这样可以使得基于该层级序列信息进行子树的搜索能够被精准执行。
作为一个示例,数据节点可以具有层级标识,层级标识可以看作是数据节点在所处层级中的标识或者可以看作是数据节点的名称,处于同一父节点下且同一层级中的各数据节点的层级标识不同,即同一父节点的子节点的层级标识不同。这样可以通过层级标识对同一父节点下处于同一层级中的不同数据节点进行标识。如图3所示的数据节点1下的数据节点4和数据节点5,该数据节点4和数据节点5处于同一父节点且同一层级中,例如,可以为数据节点4设置层级标识bb1、为数据节点5设置层级标识bb2。其中,层级标识可以为字符,例如字母、数字、数字编码、其他符号中的至少一种,本申请对此不作限定。
可选地,在数据节点具有层级标识的情况下,可以使用层级标识来表示层级序列字段下的层级序列信息。例如图3中的数据节点6,数据节点6在层级序列字段下的层级序列信息可以表示为:aa/aa2/aa1。
参照图3,存储在数据库表中的树形结构数据可以直观地以树状结构图表示,其中,数据节点可以包括根数据节点以及数据节点1~数据节点7,如图3所示,树形结构数据可以根数据节点为根节点与数据节点1~数据节点7构成的树状的层级结构的树形结构数据。
以图3中树状结构图的示例方式来描述树形结构数据,便于理解树形结构数据中的子树结构数据(可简称子树),即一个树形结构数据可以表示为以根数据节点为根节点的一个数据结构树,相应地,该数据结构树中以任一非根数据节点为根节点的分支树,可以看作是子树。比如,任一非根数据节点为数据节点1,则对应的子树可以如图4所示。
本说明书实施例中,子树搜索请求可以是指用于搜索树形结构数据中任一子树的请求。以SQL(Structured Query Language,结构化查询语言)数据库为例,可以通过在SQL的where条件添加sq like "XXX%"来触发子树搜索请求,本申请对此不作限定。该子树搜索请求可以承载sq like "XXX%"。从而可以从子树搜索请求中提取出搜索指示信息为sqlike "XXX%"。搜索指示信息可以包括待搜索子树的起始数据节点在层级序列字段下的起始层级序列信息,例如这里的XXX。其中,待搜索子树可以是指需要搜索的子树,待搜索子树的起始数据节点可以是指待搜索子树的根节点对应的数据节点。起始数据节点在层级序列字段下的起始层级序列信息可以是指起始数据节点在层级序列字段下的层级序列信息,这里的起始层级序列信息是为了表示起始的层级序列信息。
举例来说,搜索指示信息为:sq like "aa/aa1%",该搜索指示信息可以表示搜索以aa/aa1为根节点的子树,即以aa/aa1为开头的层级序列信息对应的数据节点构成的子树。从而可以获取起始层级序列信息为aa/aa1,则与该起始层级序列信息对应的子树为以aa/aa1对应的数据节点1为根节点的整个子树,如图4所示。搜索指示信息中除起始层级序列信息之外的信息可以为SQL查询语句的描述信息等,本申请对此不作限定。
实际应用中,可以通过关系型数据库对应的搜索界面提供对树形结构数据的子树搜索功能,例如可以在搜索界面中输入待搜索子树的搜索指示信息,以触发对树形结构数据中的子树搜索请求,从而由该子树搜索请求承载搜索指示信息。相应地,响应于对树形结构数据中的子树搜索请求,可以基于子树搜索请求提取待搜索子树的搜索指示信息。
可选地,由于一个树形结构数据的根数据节点相同,则各数据节点的层级序列信息可以从以根数据节点为父节点的数据节点开始,假设根数据节点处于层级1,从根节点开始的层级顺次增加1,则可以从层级2的数据节点开始来表征层级序列信息,也就是说,层级序列信息中可以省略根数据节点的层级标识。这样可以使得层级序列信息更加简洁,节约存储资源。在这种情况下,比如数据节点1的sq可以为aa1,数据节点4的sq可以为aa1/bb1。
S203,将起始层级序列信息与树形结构数据中各数据节点在层级序列字段下的层级序列信息进行匹配处理,得到匹配的目标层级序列信息。
本说明书实施例中,目标层级序列信息的头部层级序列信息与起始层级序列信息相同,即目标层级序列信息以起始层级序列信息为起始信息,也就是目标层级序列信息以起始层级序列信息作为开头。头部层级序列信息包括的层级数量与起始层级序列信息包括的层级数量相同。
例如,数据节点1的sq为aa/aa1,匹配的目标层级序列信息为数据节点4、数据节点5和数据节点7分别对应的sq:aa/aa1/bb1、aa/aa1/bb2、aa/aa1/bb2/ccc。数据节点1的sq(aa/aa1)包括2个层级,那么对于aa/aa1/bb1、aa/aa1/bb2和aa/aa1/bb2/ccc的头部层级序列信息则可以提取头部的2个层级的起始信息,即均为aa/aa1,这里包括的层级数量均为2,即包括2个层级。
实际应用中,可以将起始层级序列信息与树形结构数据中各数据节点在层级序列字段下的层级序列信息进行匹配处理,即对于每一数据节点在层级序列字段下的层级序列信息,可以使用起始层级序列信息,从各层级序列信息的开头进行匹配,若层级序列信息的开头与起始层级序列信息相同,则可以将该相同的开头对应的层级序列信息作为目标层级序列信息。目标层级序列信息的数量可以为一个或多个。
示例性地,可以先确定起始层级序列信息包括的层级数量,从而可以从各数据节点在层级序列字段下的层级序列信息的起始端开始,提取出上述确定的层级数量的头部层级序列信息。例如,起始层级序列信息为aa/aa1,则可以确定起始层级序列信息包括的层级数量为2,这样可以从各数据节点在层级序列字段下的层级序列信息的起始端开始,提取出2个层级的头部层级序列信息,例如,数据节点2的层级序列信息为aa/aa2,则提取出2个层级的头部层级序列信息为aa/aa2;数据节点4的层级序列信息为aa/aa1/bb1,则提取出2个层级的头部层级序列信息为aa/aa1,这样依次提取后,可以将起始层级序列信息aa/aa1与提取的各数据节点的头部层级信息进行匹配,即判断是否相同。从而可以将相同的筛选出来,并可以将相同的对应的层级序列信息作为目标层级序列信息。起始层级序列信息aa/aa1匹配的目标层级序列信息为:aa/aa1/bb1、aa/aa1/bb2、aa/aa1/bb2/ccc。
S205,基于起始层级序列信息和目标层级序列信息,获取子树搜索请求对应的子树搜索结果。
本说明书实施例中,可以基于起始层级序列信息和目标层级序列信息,获取起始层级序列信息对应的数据节点的数据和目标层级序列信息对应的数据节点的数据,作为子树搜索请求对应的子树搜索结果。
可选地,可以数据库表的方式展示子树搜索结果,或者可以层级方式展示子树搜索结果,本申请对此不作限定。
在一种可能地实施方式中,可以基于树状图的方式展示子树搜索结果,基于此,步骤S205可以包括:基于初始层级序列信息和目标层级序列信息,构建以起始数据节点为根节点的子树图,作为子树搜索结果。其中,子树图中包括起始数据节点以及目标层级序列信息对应的目标数据节点,可以如图4所示。这样不仅可以获知搜到到子树的数据,还可以直观地展示搜索到的子树中各数据节点的层级关系。
在一种可选地实施方式中,搜索指示信息还可以包括待搜索子树的终止数据节点在层级序列字段下的终止层级序列信息,即搜索指示信息可以指示待搜索子树的起始数据节点和终止数据节点。例如,搜索指示信息可以为:sq like '%/aa/aa1/%/aa/aa1/bb2/ccc/%',其中,起始层级序列信息:aa/aa1;终止层级序列信息:aa/aa1/bb2/ccc。
可选地,在树形结构数据中的各数据节点的层级标识不同的情况下,也可以利用层级标识来表示待搜索子树的起始数据节点和终止数据节点。在一个示例中,为了搜索层级标识aa1至层级标识ccc的子树,搜索指示信息可以为sq like '%/aa1/%/ccc/%',“/”用于分词,aa1可以为起始数据节点的层级标识,ccc可以为终止数据节点的层级标识。或者,作为一种可选地的实现方式,搜索指示信息可以包括起始数据节点的层级标识以及起始数据节点下一层次的层级标识,也就是给出子树的部分层级标识,例如为了搜索图6中以数据节点6为根节点的子树,可以表示sq like '%aa1/aa1/%',即以aa1开始、到aa1这颗子树,即图6中从数据节点6到数据节点1以及数据节点1之后的数据节点构成的子树。这里的搜索指示信息给出了起始数据节点的层级标识以及起始数据节点之后、相邻的至少一个层级标识,通过子树的部分层级标识来实现子树的模糊匹配搜索。
相应地,步骤S205可以包括:基于起始层级序列信息和终止层级序列信息,从目标层级序列信息中筛选出从起始数据节点至终止数据节点的子树搜索结果。例如,搜索指示信息为sq like '%/bb2/%/ccc/%',则对应的子树为以数据节点5为根节点到数据节点7的子树。从而可以将该以数据节点5为根节点到数据节点7的子树中各数据节点的数据作为子树搜索结果,本申请对该子树搜索结果的展示形式不作限定。
通过对数据库表结构进行优化,设置了层级序列字段用于表征相应数据节点在所述树形结构数据中、从根数据节点至所述相应数据节点按照所述树形结构数据的层级顺次经过的数据节点,使得搜索树形结构数据中的子树时可以使用搜索指示信息包括待搜索子树的起始数据节点在层级序列字段下的起始层级序列信息,从而可以直接利用起始层级序列信息与树形结构数据中各数据节点在层级序列字段下的层级序列信息进行匹配处理,得到匹配的目标层级序列信息,快速得到待搜索子树包括的数据节点,不需要通过基于数据节点的父子关系进行递归搜索,大大提升树形结构数据中子树的搜索效率和搜索灵活性。并且,搜索指示信息中仅包括起始数据节点的起始层级序列信息,搜索结构简单,即可以基于起始层级序列信息实现模糊搜索,精准得到以起始数据节点为根节点的整个子树。
本说明书实施例中,还可以进行子树的移动,例如可以将任一子树移动到任一数据节点下。层级序列字段下的层级序列信息中包括的各数据节点使用各数据节点的层级标识进行表示,树形结构数据中处于同一父节点下且同一层级中的数据节点的层级标识可以不同。如图5所示,数据处理方法还可以包括:
S501,响应于将树形结构数据中第一数据节点移动至第二数据节点之后的节点移动请求,基于第一数据节点在层级序列字段下的第一层级序列信息,在树形结构数据中查找得到以第一数据节点为根节点的子树结构数据;该子树结构数据中的子数据节点在层级序列字段下的层级序列信息以第一层级序列信息为起始信息。
本说明书实施例中,节点移动请求中可以携带待移动子树的第一数据节点在层级序列字段下的第一层级序列信息。在查询子树的过程中,这里的第一层级序列信息可以看作子树搜索过程中的起始层级序列信息,基于此,可以使用上述子树搜索方式在树形结构数据中查找得到以第一数据节点为根节点的子树,作为待移动子树。具体搜索查找子树的过程可以参见上述具体内容,在此不再赘述。
参照图3,若第一数据节点为数据节点1,则可以基于第一数据节点的第一层级序列信息,在树形结构数据中查找得到以数据节点1为根节点的子树为数据节点1至数据节点4和数据节点5、再从数据节点5至数据节点7的子树,如图4所示。
S503,将第一数据节点的父节点更新为第二数据节点。
本说明书实施例中,可以将第一数据节点的父节点更新为第二数据节点,例如,可以将第一数据节点在父节点字段下的父节点标识更新为第二数据节点的全局节点标识。如图6所示,可以将数据节点1的父节点字段下的父节点标识从1更新为7。
需要说明的是,第一数据节点的全局节点标识可以保持不变。
S505,为第一数据节点配置在第一目标层级下的第一层级标识。
其中,第一目标层级为第二数据节点在树形结构数据中所处层级的下一层级;第一层级标识与第一目标层级下的层级标识不同。
本说明书实施例中,可以为第一数据节点配置在第一目标层级下的第一层级标识,本申请对此不作限定,只要第一层级标识与第一目标层级下的各层级标识均不同即可,即同一父节点下的数据节点的层级标识不同即可。
示例性地,图3中数据节点6下没有子数据节点,因此,可以任意为数据节点1配置在第一目标层级下的第一层级标识。例如图3所示,数据节点1的层级标识可以不变,保持为aa1。
S507,拼接第二数据节点在层级序列字段下的第二层级序列信息和第一层级标识,得到第一数据节点在第一目标层级情况下、层级序列字段下的更新层级序列信息,即第一数据节点移动后的层级序列信息。
本说明书实施例中,在拼接第二层级序列信息和第一层级标识时,可以将第一层级标识放置在第二层级序列信息的尾部。
在一个示例中,例如将图3中以数据节点1为根节点的子树移动到数据节点6后面,移动后可以如图6所示。第二数据节点为数据节点6,相应地,第二层级序列信息为aa/aa2/aa1,从而可以将数据节点1的第一层级标识aa1拼接到aa/aa2/aa1之后,得到更新层级序列信息:aa/aa2/aa1/aa1。
S509,根据子树结构数据中各数据节点之间的层级关系以及第一数据节点的更新层级序列信息,依次更新各子数据节点在层级序列字段下的层级序列信息;其中,更新后的任一子数据节点在层级序列字段下的层级序列信息以第一数据节点的更新层级序列信息为起始信息。
本说明书实施例中,子树结构数据中的子数据节点,由于根节点没变,还是第一数据节点,仅需要更新层级序列字段下的层级序列信息,子数据节点各自的全局节点标识、父节点标识以及层级标识可以保持不变。其中,层级关系可以为父子节点关系,以第一数据节点为父节点逐层向子节点更新各子数据节点在层级序列字段下的层级序列信息。需要说明的是,作为示例,子树移动后的上述更新可以是指在数据库表中相应字段下的更新。
在一种可能的实现方式中,可以获取目标子数据节点的当前层级标识以及目标子数据节点的父节点被更新后的层级序列信息;该目标子数据节点为子树结构数据中任一子数据节点;从而可以拼接目标子数据节点的父节点被更新后的层级序列信息和当前层级标识,得到目标子数据节点更新后的、在层级序列字段下的层级序列信息。
例如,数据节点4更新的层级序列信息可以是拼接更新层级序列信息aa/aa2/aa1/aa1与数据节点4的当前层级标识bb1,得到aa/aa2/aa1/aa1/bb1;类似地,数据节点5更新后的层级序列信息可以为aa/aa2/aa1/aa1/bb2。进一步地,可以拼接数据节点5更新后的层级序列信息与数据节点7的当前层级标识,得到数据节点7更新后的层级序列信息为aa/aa2/aa1/aa1/bb2/ccc。
在一种可选地实施方式中,层级标识可以为数字编码标识,在一个示例中,数字编码标识可以配置了层级标识位数,对于层级标识位数,可以是树形结构数据中各数据节点的数据编码标识的层级标识位数相同,或者可以是树形结构数据中处于同一层级的数据节点的数据编码标识的层级标识位数相同,本申请对此不作限定。
以树形结构数据中各数据节点的数据编码标识的层级标识位数相同为例,在这种层级标识位数一致的情况下,层级序列字段下层级序列信息中的数字编码标识可以不需要隔开相邻层级的隔开符号,隔开符号例如“/”。示例性地,如图7a所示,层级标识位数N统一为5,即N=5,基于此,例如数据节点6的层级序列信息可以为000010000200001。
需要说明的是,在层级标识为数字编码标识的情况下,子树搜索和子树移动均可以参见上述相应内容,在此不再赘述。
可选地,在层级标识为数字编码标识的情况下,为了提升子树移动时被移动的第一数据节点的层级序列信息的更新效率和精准度,树形结构数据的存储还可以包括层级序列维护字段。该层级序列维护字段对应的数据类型可以为正整数。在具有层级序列维护字段的情况下,利用数据图表示的树形结构数据可以如图7a所示,其中,层级序列维护字段可以利用index表示。基于此,该数据处理方法还可以包括:获取第二数据节点下当前子数据节点在层级序列维护字段中的第二层级序列维护信息;从而可以基于第二层级序列维护信息,更新第一数据节点在层级序列维护字段中的层级序列维护信息为第一层级序列维护信息。
在一种可能的实现方式中,本申请对该第一层级序列维护信息的设置不作限定,只要第一层级序列维护信息与各第二层级序列维护信息不同即可。例如将图7a中的数据节点1移动到数据节点6之后,基于此,数据节点1为第一数据节点,数据节点6为第二数据节点。此时,第二数据节点下当前子数据节点仅有数据节点7,则各第二层级序列维护信息为数据节点7的index:2,则可以配置第一层级序列维护信息为1,保持不变,这可以满足与各第二层级序列维护信息不同。
在另一种可能的实现方式中,层级序列维护字段对应的数据类型为正整数。上述基于第二层级序列维护信息,更新第一数据节点在层级序列维护字段中的层级序列维护信息为第一层级序列维护信息,可以包括:从第二层级序列维护信息筛选出目标层级序列维护信息,目标层级序列维护信息高于第二层级序列维护信息中除目标层级序列维护信息之外的第二层级序列维护信息。例如将图7a中的数据节点1移动到数据节点6之后,基于此,数据节点1为第一数据节点,数据节点6为第二数据节点。此时,第二数据节点下当前子数据节点仅有数据节点7,则各第二层级序列维护信息为数据节点7的index:2,那么将各第二层级序列维护信息中最高的第二层级序列维护信息,作为目标层级序列维护信息就是2。进一步地,可以在目标层级序列维护信息的基础上增加预设数值,得到第一层级序列维护信息。预设数值可以是正整数,例如可以为1,在这种情况下,可以如图7b所示,数据节点1移动到数据节点6后,对应的第一层级序列维护信息可以为2+1=3,即数据节点1在index字段下为3。
相应地,在具有index字段的情况下,为第一数据节点配置在第一目标层级下的第一层级标识,可以包括:获取第一目标层级对应的第一层级标识位数;从而可以基于第一层级标识位数和第一层级序列维护信息,得到第一数据节点待配置的第一层级标识。示例性地,可以在第一层级序列维护信息之前补充0,直至达到第一层级标识位数。例如图7b中的数据节点1,数据节点1在index字段下为3,第一层级标识位数为5,则可以在3之前补充4个0,得到数据节点1的第一层级标识为:00003。
需要说明的是,对于更新层级序列信息以及各子数据节点在层级序列字段下的层级序列信息的依次更新,可以参照上述步骤S507以及S509步骤的具体内容,在此不再赘述。
本说明书实施例中,也可以在任一数据节点下删除或新增数据节点,对于删除,则可以判断待删除的数据节点是否为树形结构数据中的尾部数据节点,尾部数据节点可以是指不具备子数据节点的数据节点。若是,则可以直接删除该待删除的数据节点,其他数据节点可以不作更新;若否,则可以删除以待删除的数据节点为根节点的子树。对应该子树的获取可以参见上述图2对应的介绍内容,在此不再赘述。
在一种可选地实施方式中,对于新增数据节点,该方法还可以包括:
响应于在树形结构数据中的第三数据节点下增加新的第四数据节点的请求,为第四数据节点配置全局节点标识,并可以将第四数据节点的父节点设置为第三数据节点。例如,在图3中的数据节点3之后新增数据节点8,此时,数据节点3可以看作第三数据节点,数据节点8可以看作第四数据节点。从而可以为数据节点8配置全局节点标识Id为9,与已有数据节点的全局节点标识均不同即可。并可以将数据节点8的父节点设置为数据节点3,具体地,可以将数据节点8的父节点字段parentId下的父节点标识设置为数据节点3的全局节点标识,即可以将数据节点8的父节点字段parentId下的父节点标识设置为4,如图8所示。
获取第三数据节点在层级序列字段下的第三层级序列信息,例如图8中数据节点3在层级序列字段下的第三层级序列信息为aa/aa3。
配置第四数据节点在第二目标层级下的第二层级标识;第四数据节点在第二目标层级下的第二层级标识、与第三数据节点下当前子数据节点在第二目标层级下的第二层级标识不同;第二目标层级为第三数据节点在树形结构数据中所处层级的下一层级,在第三数据节点为数据节点3的情况下,假设根数据节点为层级1,则第二目标层级为层级2,那新增的数据节点8则处于层级3。由于数据节点3下当前子数据节点为空,则可以任意设置数据节点8在层级3的第二层级标识,也可以保证与数据节点3下当前子数据节点在层级2的第二层级标识不同。例如图8所示,可以设置数据节点8在层级3的第二层级标识为bb3。
进一步地,可以拼接第三层级序列信息和第二层级标识,得到第四数据节点在层级序列字段下的层级序列信息。例如,可以在第三层级序列信息之后拼接第二层级标识,如图8所示,得到数据节点8在层级序列字段下的层级序列信息为sq:aa/aa3/bb3。
可选地,在层级标识为数字编码标识的情况下,第二层级标识可以为数字编码标识,树形结构数据的存储还可以包括层级序列维护字段,层级序列维护字段对应的数据类型可以为正整数。基于此,该方法还可以包括:
获取第三数据节点下当前子数据节点在层级序列维护字段中的第三层级序列维护信息;
基于第三层级序列维护信息,配置第四数据节点在层级序列维护字段中的层级序列维护信息;第四数据节点在层级序列维护字段中的层级序列维护信息与第三层级序列维护信息不同;
相应地,配置第三数据节点在第二目标层级下的第二层级标识,可以包括:获取第二目标层级对应的第二层级标识位数;基于第二层级标识位数和第四数据节点在层级序列维护字段中的层级序列维护信息,为第四数据节点配置第二层级标识。
对于上述层级标识为数字编码标识、树形结构数据的存储还包括层级序列维护字段的情况下,第二层级标识的配置过程可以参见上述子树移动过程中第一数据节点的第一层级标识配置过程,例如图7a中数据节点1移动至数据节点6之后,更新为图7b中数据节点1的第一层级标识的具体内容,对于第二层级标识的配置过程,在此不再赘述。
在一个应用示例中,可以基于业务需要划分出业务域和主题域的数仓(数据仓库)目录树。例如可以规定好一个基于业务特征划分的命名空间,业务域是对这个空间的二次划分,不同业务之间通常有不同的业务目标、产品形态、业务流程,不同的业务内部划分方式不同,业务域名可以是业务组织方式在数据方面的映射。主题域则可以是面向数据分析的整合方法,由一些列分析维度、指标数据构成同一领域。
在数仓建设的数据规划部分,需要通过构建一颗树来构建数仓结构层次,例如,可以利用上述树形结构数据中的各字段来构建一颗业务域和主题域的数仓目录树。在数仓架构规范中,规定在一个数仓下,业务域的中英文全局唯一,即全局节点标识是唯一的;在一个数仓下,主题域的中英文全局唯一,即全局节点标识是唯一的,在不同的业务域下可以添加相同的主题。其中,一个父子关系下的主题域不能相同,属于同一个主题的子主题之间也不能相同。例如图9a所示。
假设以一款多端视频产品为例,根据业务需要可以划分出业务域、主题域的数仓目录树,截取部分数据可以如图9b所示。其中,数仓可以没有层级标识,因此数仓下的子节点视频APP的sq可以是视频APP自己的层级标识,即该数仓中数据节点的层级序列信息以数仓根节点下的子数据节点的层级标识作为起始信息。数仓中各业务域和主题域对应的数据节点中括号内的app、pc、clck、ad、live等可以看作是数据节点的层级标识。从而基于层级标识表征的层级序列信息可以如图9b中所示,例如广告(ad)的sq为app/clck/ad。
以业务域和主题域的节点名称作为检索编码,在搜索子树的时候可以检索出期望的子树,例如想搜索视频APP(app)下,元素点击(clck)这个子树,则可以在SQL中添加 sqlike”app%”条件或sq like '%app/clck%'条件,搜索到的子树可以如图9c所示。则可以快速筛选出对应业务域和主题域所在的子树,只需要通过层级序列信息的模糊匹配即可,即可以通过子树中从子树的根节点开始的部分层级序列信息的模糊匹配高效搜索到子树。
可选地,本申请也可以支持跨数据节点的检索对应子树的能力,例如想检索app开头,search结尾的子树,则可以在SQL中添加sq like '%/app/%/search/%'条件,该方式可以在层级序列信息中对所有业务域和主题域词根添加符号,例如反斜杠,来达到分词的目的。从而可以检索到从视频APP到搜索(search)的一个子树分支。
图10示出根据本申请一实施例提供的一种数据处理装置的框图。如图10所示,该装置可以包括:
搜索指示获取模块1001,用于响应于对树形结构数据中的子树搜索请求,基于所述子树搜索请求提取待搜索子树的搜索指示信息,所述搜索指示信息包括所述待搜索子树的起始数据节点在层级序列字段下的起始层级序列信息;所述树形结构数据中各数据节点在所述层级序列字段下的层级序列信息不同,所述层级序列字段用于表征相应数据节点在所述树形结构数据中、从根数据节点至所述相应数据节点按照所述树形结构数据的层级顺次经过的数据节点;
搜索模块1003,用于将所述起始层级序列信息与所述树形结构数据中各数据节点在所述层级序列字段下的层级序列信息进行匹配处理,得到匹配的目标层级序列信息;所述目标层级序列信息的头部层级序列信息与所述起始层级序列信息相同;
子树搜索结果获取模块1005,用于基于所述起始层级序列信息和所述目标层级序列信息,获取所述子树搜索请求对应的子树搜索结果。
通过对数据库表结构进行优化,设置了层级序列字段用于表征相应数据节点在所述树形结构数据中、从根数据节点至所述相应数据节点按照所述树形结构数据的层级顺次经过的数据节点,使得搜索树形结构数据中的子树时可以使用搜索指示信息包括待搜索子树的起始数据节点在层级序列字段下的起始层级序列信息,从而可以直接利用起始层级序列信息与树形结构数据中各数据节点在层级序列字段下的层级序列信息进行匹配处理,得到匹配的目标层级序列信息,快速得到待搜索子树包括的数据节点,不需要通过基于数据节点的父子关系进行递归搜索,大大提升树形结构数据中子树的搜索效率和搜索灵活性。并且,搜索指示信息中仅包括起始数据节点的起始层级序列信息,搜索结构简单,即可以基于起始层级序列信息实现模糊搜索,精准得到以起始数据节点为根节点的整个子树,节约资源,避免堆栈溢出,有效适用于较大量级的树形结构数据的子树搜索。
在一种可能的实现方式中,所述层级序列字段下的层级序列信息中包括的各数据节点使用各数据节点的层级标识进行表示,所述树形结构数据中处于同一父节点下且同一层级中的数据节点的层级标识不同;所述装置还包括:
节点移动响应模块,用于响应于将所述树形结构数据中第一数据节点移动至第二数据节点之后的节点移动请求,基于所述第一数据节点在所述层级序列字段下的第一层级序列信息,在所述树形结构数据中查找得到以所述第一数据节点为根节点的子树结构数据;所述子树结构数据中的子数据节点在所述层级序列字段下的层级序列信息以所述第一层级序列信息为起始信息;
父节点更新模块,用于将所述第一数据节点的父节点更新为所述第二数据节点;
第一层级标识配置模块,用于为所述第一数据节点配置在第一目标层级下的第一层级标识;所述第一目标层级为所述第二数据节点在所述树形结构数据中所处层级的下一层级;所述第一层级标识与所述第一目标层级下的层级标识不同;
层级序列更新模块,用于拼接所述第二数据节点在层级序列字段下的二层级序列信息和所述第一层级标识,得到所述第一数据节点在所述第一目标层级情况下、所述层级序列字段下的更新层级序列信息;
子树更新模块,用于根据所述子树结构数据中各数据节点之间的层级关系以及所述第一数据节点的所述更新层级序列信息,依次更新各子数据节点在所述层级序列字段下的层级序列信息;其中,更新后的任一子数据节点在层级序列字段下的层级序列信息以所述第一数据节点的所述更新层级序列信息为起始信息。
在一种可能的实现方式中,所述层级标识为数字编码标识,所述树形结构数据的存储还包括层级序列维护字段,所述层级序列维护字段对应的数据类型为正整数;所述装置还可以包括:
层级序列维护信息获取模块,用于获取所述第二数据节点下当前子数据节点在层级序列维护字段中的第二层级序列维护信息;
层级序列维护信息更新模块,用于基于所述第二层级序列维护信息,更新所述第一数据节点在所述层级序列维护字段中的层级序列维护信息为第一层级序列维护信息;所述第一层级序列维护信息与各所述第二层级序列维护信息不同;
相应地,所述第一层级标识配置模块包括:
层级标识位数获取单元,用于获取所述第一目标层级对应的第一层级标识位数;
第一层级标识配置单元,用于基于所述第一层级标识位数和所述第一层级序列维护信息,得到所述第一数据节点待配置的所述第一层级标识。
在一种可能的实现方式中,所述层级序列维护信息更新模块可以包括:
筛选单元,用于从所述第二层级序列维护信息筛选出目标层级序列维护信息,所述目标层级序列维护信息高于所述第二层级序列维护信息中除所述目标层级序列维护信息之外的第二层级序列维护信息;
层级序列维护信息更新单元,用于在所述目标层级序列维护信息的基础上增加预设数值,得到所述第一层级序列维护信息。
在一种可能的实现方式中,所述子树更新模块可以包括:
获取单元,用于获取目标子数据节点的当前层级标识以及所述目标子数据节点的父节点被更新后的层级序列信息;所述目标子数据节点为所述子树结构数据中任一子数据节点;
子树更新单元,用于拼接所述被更新后的层级序列信息和所述当前层级标识,得到所述目标子数据节点更新后的、在所述层级序列字段下的层级序列信息。
在一种可能的实现方式中,所述装置还可以包括:
新增节点响应模块,用于响应于在所述树形结构数据中的第三数据节点下增加新的第四数据节点的请求,为所述第四数据节点配置全局节点标识,并将所述第四数据节点的父节点设置为所述第三数据节点;
层级序列获取模块,用于获取所述第三数据节点在所述层级序列字段下的第三层级序列信息;
第二层级标识配置模块,用于配置所述第四数据节点在第二目标层级下的第二层级标识;所述第四数据节点在所述第二目标层级下的第二层级标识、与所述第三数据节点下当前子数据节点在所述第二目标层级下的第二层级标识不同;所述第二目标层级为所述第三数据节点在所述树形结构数据中所处层级的下一层级;
拼接模块,用于拼接所述第三层级序列信息和所述第二层级标识,得到所述第四数据节点在所述层级序列字段下的层级序列信息。
在一种可能的实现方式中,所述第二层级标识为数字编码标识,所述树形结构数据的存储还包括层级序列维护字段,所述层级序列维护字段对应的数据类型为正整数;所述装置还包括:
序列维护信息获取模块,用于获取所述第三数据节点下当前子数据节点在层级序列维护字段中的第三层级序列维护信息;
序列维护信息配置模块,用于基于所述第三层级序列维护信息,配置所述第四数据节点在所述层级序列维护字段中的层级序列维护信息;所述第四数据节点在所述层级序列维护字段中的层级序列维护信息与所述第三层级序列维护信息不同;
相应地,所述第二层级标识配置模块可以包括:
位数获取单元,用于获取所述第二目标层级对应的第二层级标识位数;
第二层级标识配置单元,用于基于所述第二层级标识位数和所述第四数据节点在所述层级序列维护字段中的层级序列维护信息,为所述第四数据节点配置第二层级标识。
在一种可能的实现方式中,树形结构数据中各层级对应的层级标识位数可以相同。
在一种可能的实现方式中,所述搜索指示信息还包括所述待搜索子树的终止数据节点在层级序列字段下的终止层级序列信息;所述子树搜索结果获取模块1005可以包括:
第一子树获取单元,用于基于所述起始层级序列信息和所述终止层级序列信息,从所述目标层级序列信息中筛选出从所述起始数据节点至所述终止数据节点的子树搜索结果。
在一种可能的实现方式中,所述子树搜索结果获取模块1005可以包括:
第二子树获取单元,用于基于所述初始层级序列信息和所述目标层级序列信息,构建以所述起始数据节点为根节点的子树图,作为所述子树搜索结果。
关于上述实施例中的装置,其中各个模块和单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图11是根据一示例性实施例示出的一种用于数据处理的电子设备的框图,该电子设备可以是终端,其内部结构图可以如图11所示。该电子设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据处理的方法。该电子设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该电子设备的输入装置可以是显示屏上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本公开方案相关的部分结构的框图,并不构成对本公开方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
图12示出根据本申请一实施例提供的一种用于数据处理的电子设备的框图。该电子设备可以是服务器,其内部结构图可以如图12所示。该电子设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据处理的方法。
本领域技术人员可以理解,图12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在示例性实施例中,还提供了一种电子设备,包括:处理器;用于存储该处理器可执行请求的存储器;其中,该处理器被配置为执行该请求,以实现如本申请实施例中的数据处理方法。
在示例性实施例中,还提供了一种存储介质,当该存储介质中的请求由电子设备的处理器执行时,使得电子设备能够执行本申请实施例中的数据处理方法。
在示例性实施例中,还提供了一种包含请求的计算机程序产品,当其在计算机上运行时,使得计算机执行本申请实施例中的数据处理方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来请求相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可 包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (20)

1.一种数据处理方法,其特征在于,所述方法包括:
响应于对树形结构数据中的子树搜索请求,基于所述子树搜索请求提取待搜索子树的搜索指示信息,所述搜索指示信息包括所述待搜索子树的起始数据节点在层级序列字段下的起始层级序列信息;所述树形结构数据中各数据节点在所述层级序列字段下的层级序列信息不同,所述层级序列字段用于表征相应数据节点在所述树形结构数据中、从根数据节点至所述相应数据节点按照所述树形结构数据的层级顺次经过的数据节点;
将所述起始层级序列信息与所述树形结构数据中各数据节点在所述层级序列字段下的层级序列信息进行匹配处理,得到匹配的目标层级序列信息;所述目标层级序列信息的头部层级序列信息与所述起始层级序列信息相同;
基于所述起始层级序列信息和所述目标层级序列信息,获取所述子树搜索请求对应的子树搜索结果;
其中,所述搜索指示信息还包括所述待搜索子树的终止数据节点在层级序列字段下的终止层级序列信息;所述基于所述起始层级序列信息和所述目标层级序列信息,获取所述子树搜索请求对应的子树搜索结果,包括:
基于所述起始层级序列信息和所述终止层级序列信息,从所述目标层级序列信息中筛选出从所述起始数据节点至所述终止数据节点的子树搜索结果。
2.根据权利要求1所述的数据处理方法,其特征在于,所述层级序列字段下的层级序列信息中包括的各数据节点使用各数据节点的层级标识进行表示,所述树形结构数据中处于同一父节点下且同一层级中的数据节点的层级标识不同;所述方法还包括:
响应于将所述树形结构数据中第一数据节点移动至第二数据节点之后的节点移动请求,基于所述第一数据节点在所述层级序列字段下的第一层级序列信息,在所述树形结构数据中查找得到以所述第一数据节点为根节点的子树结构数据;所述子树结构数据中的子数据节点在所述层级序列字段下的层级序列信息以所述第一层级序列信息为起始信息;
将所述第一数据节点的父节点更新为所述第二数据节点;
为所述第一数据节点配置在第一目标层级下的第一层级标识;所述第一目标层级为所述第二数据节点在所述树形结构数据中所处层级的下一层级;所述第一层级标识与所述第一目标层级下的层级标识不同;
拼接所述第二数据节点在层级序列字段下的二层级序列信息和所述第一层级标识,得到所述第一数据节点在所述第一目标层级情况下、所述层级序列字段下的更新层级序列信息;
根据所述子树结构数据中各数据节点之间的层级关系以及所述第一数据节点的所述更新层级序列信息,依次更新各子数据节点在所述层级序列字段下的层级序列信息;其中,更新后的任一子数据节点在层级序列字段下的层级序列信息以所述第一数据节点的所述更新层级序列信息为起始信息。
3.根据权利要求2所述的数据处理方法,其特征在于,所述层级标识为数字编码标识,所述树形结构数据的存储还包括层级序列维护字段,所述层级序列维护字段对应的数据类型为正整数;所述方法还包括:
获取所述第二数据节点下当前子数据节点在层级序列维护字段中的第二层级序列维护信息;
基于所述第二层级序列维护信息,更新所述第一数据节点在所述层级序列维护字段中的层级序列维护信息为第一层级序列维护信息;所述第一层级序列维护信息与各所述第二层级序列维护信息不同;
所述为所述第一数据节点配置在第一目标层级下的第一层级标识,包括:
获取所述第一目标层级对应的第一层级标识位数;
基于所述第一层级标识位数和所述第一层级序列维护信息,得到所述第一数据节点待配置的所述第一层级标识。
4.根据权利要求3所述的数据处理方法,其特征在于,所述基于所述第二层级序列维护信息,更新所述第一数据节点在所述层级序列维护字段中的层级序列维护信息为第一层级序列维护信息,包括:
从所述第二层级序列维护信息筛选出目标层级序列维护信息,所述目标层级序列维护信息高于所述第二层级序列维护信息中除所述目标层级序列维护信息之外的第二层级序列维护信息;
在所述目标层级序列维护信息的基础上增加预设数值,得到所述第一层级序列维护信息。
5.根据权利要求2所述的数据处理方法,其特征在于,所述根据所述子树结构数据中各数据节点之间的层级关系以及所述第一数据节点的所述更新层级序列信息,依次更新各子数据节点在所述层级序列字段下的层级序列信息,包括:
获取目标子数据节点的当前层级标识以及所述目标子数据节点的父节点被更新后的层级序列信息;所述目标子数据节点为所述子树结构数据中任一子数据节点;
拼接所述被更新后的层级序列信息和所述当前层级标识,得到所述目标子数据节点更新后的、在所述层级序列字段下的层级序列信息。
6.根据权利要求1所述的数据处理方法,其特征在于,所述方法还包括:
响应于在所述树形结构数据中的第三数据节点下增加新的第四数据节点的请求,为所述第四数据节点配置全局节点标识,并将所述第四数据节点的父节点设置为所述第三数据节点;
获取所述第三数据节点在所述层级序列字段下的第三层级序列信息;
配置所述第四数据节点在第二目标层级下的第二层级标识;所述第四数据节点在所述第二目标层级下的第二层级标识、与所述第三数据节点下当前子数据节点在所述第二目标层级下的第二层级标识不同;所述第二目标层级为所述第三数据节点在所述树形结构数据中所处层级的下一层级;
拼接所述第三层级序列信息和所述第二层级标识,得到所述第四数据节点在所述层级序列字段下的层级序列信息。
7.根据权利要求6所述的数据处理方法,其特征在于,所述第二层级标识为数字编码标识,所述树形结构数据的存储还包括层级序列维护字段,所述层级序列维护字段对应的数据类型为正整数;所述方法还包括:
获取所述第三数据节点下当前子数据节点在层级序列维护字段中的第三层级序列维护信息;
基于所述第三层级序列维护信息,配置所述第四数据节点在所述层级序列维护字段中的层级序列维护信息;所述第四数据节点在所述层级序列维护字段中的层级序列维护信息与所述第三层级序列维护信息不同;
相应地,配置所述第三数据节点在第二目标层级下的第二层级标识,包括:
获取所述第二目标层级对应的第二层级标识位数;
基于所述第二层级标识位数和所述第四数据节点在所述层级序列维护字段中的层级序列维护信息,为所述第四数据节点配置第二层级标识。
8.根据权利要求3-4、7任一项所述的数据处理方法,其特征在于,所述树形结构数据中各层级对应的层级标识位数相同。
9.根据权利要求1所述的数据处理方法,其特征在于,所述基于所述起始层级序列信息和所述目标层级序列信息,获取所述子树搜索请求对应的子树搜索结果,包括:
基于所述起始层级序列信息和所述目标层级序列信息,构建以所述起始数据节点为根节点的子树图,作为所述子树搜索结果。
10.一种数据处理装置,其特征在于,包括:
搜索指示获取模块,用于响应于对树形结构数据中的子树搜索请求,基于所述子树搜索请求提取待搜索子树的搜索指示信息,所述搜索指示信息包括所述待搜索子树的起始数据节点在层级序列字段下的起始层级序列信息;所述树形结构数据中各数据节点在所述层级序列字段下的层级序列信息不同,所述层级序列字段用于表征相应数据节点在所述树形结构数据中、从根数据节点至所述相应数据节点按照所述树形结构数据的层级顺次经过的数据节点;
搜索模块,用于将所述起始层级序列信息与所述树形结构数据中各数据节点在所述层级序列字段下的层级序列信息进行匹配处理,得到匹配的目标层级序列信息;所述目标层级序列信息的头部层级序列信息与所述起始层级序列信息相同;
子树搜索结果获取模块,用于基于所述起始层级序列信息和所述目标层级序列信息,获取所述子树搜索请求对应的子树搜索结果;
其中,所述搜索指示信息还包括所述待搜索子树的终止数据节点在层级序列字段下的终止层级序列信息;所述子树搜索结果获取模块包括:
第一子树获取单元,用于基于所述起始层级序列信息和所述终止层级序列信息,从所述目标层级序列信息中筛选出从所述起始数据节点至所述终止数据节点的子树搜索结果。
11.根据权利要求10所述的数据处理装置,其特征在于,所述层级序列字段下的层级序列信息中包括的各数据节点使用各数据节点的层级标识进行表示,所述树形结构数据中处于同一父节点下且同一层级中的数据节点的层级标识不同;所述装置还包括:
节点移动响应模块,用于响应于将所述树形结构数据中第一数据节点移动至第二数据节点之后的节点移动请求,基于所述第一数据节点在所述层级序列字段下的第一层级序列信息,在所述树形结构数据中查找得到以所述第一数据节点为根节点的子树结构数据;所述子树结构数据中的子数据节点在所述层级序列字段下的层级序列信息以所述第一层级序列信息为起始信息;
父节点更新模块,用于将所述第一数据节点的父节点更新为所述第二数据节点;
第一层级标识配置模块,用于为所述第一数据节点配置在第一目标层级下的第一层级标识;所述第一目标层级为所述第二数据节点在所述树形结构数据中所处层级的下一层级;所述第一层级标识与所述第一目标层级下的层级标识不同;
层级序列更新模块,用于拼接所述第二数据节点在层级序列字段下的二层级序列信息和所述第一层级标识,得到所述第一数据节点在所述第一目标层级情况下、所述层级序列字段下的更新层级序列信息;
子树更新模块,用于根据所述子树结构数据中各数据节点之间的层级关系以及所述第一数据节点的所述更新层级序列信息,依次更新各子数据节点在所述层级序列字段下的层级序列信息;其中,更新后的任一子数据节点在层级序列字段下的层级序列信息以所述第一数据节点的所述更新层级序列信息为起始信息。
12.根据权利要求11所述的数据处理装置,其特征在于,所述层级标识为数字编码标识,所述树形结构数据的存储还包括层级序列维护字段,所述层级序列维护字段对应的数据类型为正整数;所述装置还包括:
层级序列维护信息获取模块,用于获取所述第二数据节点下当前子数据节点在层级序列维护字段中的第二层级序列维护信息;
层级序列维护信息更新模块,用于基于所述第二层级序列维护信息,更新所述第一数据节点在所述层级序列维护字段中的层级序列维护信息为第一层级序列维护信息;所述第一层级序列维护信息与各所述第二层级序列维护信息不同;
相应地,所述第一层级标识配置模块包括:
层级标识位数获取单元,用于获取所述第一目标层级对应的第一层级标识位数;
第一层级标识配置单元,用于基于所述第一层级标识位数和所述第一层级序列维护信息,得到所述第一数据节点待配置的所述第一层级标识。
13.根据权利要求12所述的数据处理装置,其特征在于,所述层级序列维护信息更新模块包括:
筛选单元,用于从所述第二层级序列维护信息筛选出目标层级序列维护信息,所述目标层级序列维护信息高于所述第二层级序列维护信息中除所述目标层级序列维护信息之外的第二层级序列维护信息;
层级序列维护信息更新单元,用于在所述目标层级序列维护信息的基础上增加预设数值,得到所述第一层级序列维护信息。
14.根据权利要求11所述的数据处理装置,其特征在于,所述子树更新模块包括:
获取单元,用于获取目标子数据节点的当前层级标识以及所述目标子数据节点的父节点被更新后的层级序列信息;所述目标子数据节点为所述子树结构数据中任一子数据节点;
子树更新单元,用于拼接所述被更新后的层级序列信息和所述当前层级标识,得到所述目标子数据节点更新后的、在所述层级序列字段下的层级序列信息。
15.根据权利要求10所述的数据处理装置,其特征在于,所述装置还包括:
新增节点响应模块,用于响应于在所述树形结构数据中的第三数据节点下增加新的第四数据节点的请求,为所述第四数据节点配置全局节点标识,并将所述第四数据节点的父节点设置为所述第三数据节点;
层级序列获取模块,用于获取所述第三数据节点在所述层级序列字段下的第三层级序列信息;
第二层级标识配置模块,用于配置所述第四数据节点在第二目标层级下的第二层级标识;所述第四数据节点在所述第二目标层级下的第二层级标识、与所述第三数据节点下当前子数据节点在所述第二目标层级下的第二层级标识不同;所述第二目标层级为所述第三数据节点在所述树形结构数据中所处层级的下一层级;
拼接模块,用于拼接所述第三层级序列信息和所述第二层级标识,得到所述第四数据节点在所述层级序列字段下的层级序列信息。
16.根据权利要求15所述的数据处理装置,其特征在于,所述第二层级标识为数字编码标识,所述树形结构数据的存储还包括层级序列维护字段,所述层级序列维护字段对应的数据类型为正整数;所述装置还包括:
序列维护信息获取模块,用于获取所述第三数据节点下当前子数据节点在层级序列维护字段中的第三层级序列维护信息;
序列维护信息配置模块,用于基于所述第三层级序列维护信息,配置所述第四数据节点在所述层级序列维护字段中的层级序列维护信息;所述第四数据节点在所述层级序列维护字段中的层级序列维护信息与所述第三层级序列维护信息不同;
相应地,所述第二层级标识配置模块包括:
位数获取单元,用于获取所述第二目标层级对应的第二层级标识位数;
第二层级标识配置单元,用于基于所述第二层级标识位数和所述第四数据节点在所述层级序列维护字段中的层级序列维护信息,为所述第四数据节点配置第二层级标识。
17.根据权利要求12-13、16任一项所述的数据处理装置,其特征在于,树形结构数据中各层级对应的层级标识位数相同。
18.根据权利要求10所述的数据处理装置,其特征在于,所述子树搜索结果获取模块包括:
第二子树获取单元,用于基于所述起始层级序列信息和所述目标层级序列信息,构建以所述起始数据节点为根节点的子树图,作为所述子树搜索结果。
19.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行请求的存储器;
其中,所述处理器被配置为执行所述可执行请求以实现权利要求1至9中任意一项所述的数据处理方法。
20.一种非易失性计算机可读存储介质,其上存储有计算机程序请求,其特征在于,所述计算机程序请求被处理器执行时实现权利要求1至9中任意一项所述的数据处理方法。
CN202310940226.9A 2023-07-28 2023-07-28 数据处理方法、装置、电子设备及存储介质 Active CN116680278B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310940226.9A CN116680278B (zh) 2023-07-28 2023-07-28 数据处理方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310940226.9A CN116680278B (zh) 2023-07-28 2023-07-28 数据处理方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN116680278A CN116680278A (zh) 2023-09-01
CN116680278B true CN116680278B (zh) 2024-01-09

Family

ID=87779493

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310940226.9A Active CN116680278B (zh) 2023-07-28 2023-07-28 数据处理方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116680278B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116955415B (zh) * 2023-09-13 2024-01-23 成都融见软件科技有限公司 基于设计层级的数据搜索系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113515517A (zh) * 2020-04-09 2021-10-19 深圳市华胜软件技术有限公司 一种基于树形结构数据查询数据集的方法和计算机设备
CN114491172A (zh) * 2022-04-07 2022-05-13 深圳竹云科技股份有限公司 树形结构节点的快速检索方法、装置、设备及存储介质
CN115048382A (zh) * 2022-06-23 2022-09-13 深圳壹账通科技服务有限公司 基于二叉树的层级数据搜索方法、装置、设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5354842B2 (ja) * 2006-05-26 2013-11-27 キヤノン株式会社 画像処理方法および画像処理装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113515517A (zh) * 2020-04-09 2021-10-19 深圳市华胜软件技术有限公司 一种基于树形结构数据查询数据集的方法和计算机设备
CN114491172A (zh) * 2022-04-07 2022-05-13 深圳竹云科技股份有限公司 树形结构节点的快速检索方法、装置、设备及存储介质
CN115048382A (zh) * 2022-06-23 2022-09-13 深圳壹账通科技服务有限公司 基于二叉树的层级数据搜索方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN116680278A (zh) 2023-09-01

Similar Documents

Publication Publication Date Title
CN110162525B (zh) 基于b+树的读写冲突解决方法、装置及存储介质
CN104794123A (zh) 一种为半结构化数据构建NoSQL数据库索引的方法及装置
CN103678494A (zh) 客户端同步服务端数据的方法及装置
CN116680278B (zh) 数据处理方法、装置、电子设备及存储介质
CN108733810B (zh) 一种地址数据匹配方法及装置
CN104794177A (zh) 一种数据存储方法及装置
US11595427B2 (en) Systems and methods for rapidly generating security ratings
CN110807028B (zh) 用于管理存储系统的方法、设备和计算机程序产品
CN104090922A (zh) 一种清理隐私数据的方法和装置
CN110019980B (zh) 索引处理方法、装置、存储介质和计算机设备
CN110442585B (zh) 数据更新方法、数据更新装置、计算机设备及存储介质
CN113051229A (zh) 一种用户数据获取方法、装置、终端及可读存储介质
CN115563409A (zh) 一种地址行政区划识别方法、装置、设备及介质
CN110955855B (zh) 一种信息拦截的方法、装置及终端
CN110851663A (zh) 管理元数据的方法和装置
CN114741570A (zh) 图数据库的查询方法、索引创建方法及相关设备
CN114153910A (zh) 数据采集方法、装置及电子装置、计算机程序产品
CN105843809B (zh) 数据处理方法和装置
CN113553458A (zh) 图数据库中的数据导出方法及装置
CN111078773A (zh) 一种数据处理方法及装置
CN116089529A (zh) 数据同步方法、装置、电子设备及存储介质
CN114513550B (zh) 一种地理位置信息的处理方法、装置及电子设备
CN114490673B (zh) 数据信息处理方法、装置、电子设备及存储介质
CN116127154A (zh) 知识标签推荐方法、装置、电子设备及存储介质
Christen et al. A probabilistic geocoding system utilising a parcel based address file

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