CN114817316B - 一种父级层级查询方法、装置、设备及存储介质 - Google Patents
一种父级层级查询方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114817316B CN114817316B CN202210777276.5A CN202210777276A CN114817316B CN 114817316 B CN114817316 B CN 114817316B CN 202210777276 A CN202210777276 A CN 202210777276A CN 114817316 B CN114817316 B CN 114817316B
- Authority
- CN
- China
- Prior art keywords
- parent
- level
- target
- data
- primary key
- 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
Links
Images
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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/288—Entity relationship models
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)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种父级层级查询方法、装置、设备及存储介质,涉及大数据技术领域,包括:获取组织架构图中除最高层级外所有层级中每一对象的对象信息,并将所述每一对象的对象信息进行整合,以得到多个第一整合数据;将所有所述第一整合数据整合为一行,以得到第二整合数据;将所述第二整合数据输入至自定义的用户定义表生成函数中;当监测到需要对所述组织架构图中的目标对象的父级层级进行查询时,通过所述用户定义表生成函数从所述第二整合数据中查询到所述目标对象的各级父级主键并进行输出。本申请通过用户定义表生成函数能够简便、直观地输出组织架构图中指定类型层级中对象的各级父级主键,提高查询效率,并节省查询成本。
Description
技术领域
本申请涉及大数据技术领域,特别涉及一种父级层级查询方法、装置、设备及存储介质。
背景技术
目前,在对组织架构图中的对象进行父级层级查询时通常需要编写繁复的代码,导致查询的效率较低,并且不利于后续维护和升级。在应用于数据量大的查询场景时查询效果则会更差,并且对于隔代查询,精准度也不是很高。例如,大数据离线计算场景中,在层级数量无法确定的情况下,寻找子级层级(如门店层级)的所有父级层级时,由于数据量大会导致查询效率低。
综上所述,如何快速的对组织架构图中的对象进行父级层级查询是目前还有待进一步解决的问题。
发明内容
有鉴于此,本申请的目的在于提供一种父级层级查询方法、装置、设备及存储介质,能够简便、直观地输出指定类型层级中对象的各级父级主键,提高查询效率,并节省查询成本。其具体方案如下:
第一方面,本申请公开了一种父级层级查询方法,包括:
获取组织架构图中除最高层级外所有层级中每一对象的对象信息,并将所述每一对象的对象信息进行整合,以得到多个第一整合数据;所述对象信息包括该对象的层级类型、主键id和对应的上一层级的父级主键pid;
将所有所述第一整合数据整合为一行,以得到第二整合数据;
将所述第二整合数据输入至自定义的用户定义表生成函数中;
当监测到需要对所述组织架构图中的目标对象的父级层级进行查询时,通过所述用户定义表生成函数从所述第二整合数据中查询到所述目标对象的各级父级主键并进行输出。
可选的,所述将所述每一对象的对象信息进行整合,以得到多个第一整合数据,包括:
按照预设的数据结构将所述每一对象的所述层级类型、所述主键id和对应的上一层级的所述父级主键pid进行整合,得到多个第一整合数据。
可选的,所述当监测到需要对所述组织架构图中的目标对象的父级层级进行查询时,通过所述用户定义表生成函数从所述第二整合数据中查询到所述目标对象的各级父级主键并进行输出,包括:
当监测到需要对所述组织架构图中任一子级层级中的目标对象的父级层级进行查询时,确定所述目标对象对应的目标层级类型;
通过所述用户定义表生成函数从所述第二整合数据中确定出包含所述目标层级类型的所有所述第一整合数据,得到目标整合数据,并从所述目标整合数据中解析得到所述目标对象的各级父级主键并进行输出。
可选的,所述从所述目标整合数据中解析得到所述目标对象的各级父级主键并进行输出,包括:
从所述目标整合数据中解析得到多个同一所述目标层级类型对应的所述目标对象的各级父级主键并进行多行输出。
可选的,所述从所述目标整合数据中解析得到多个同一所述目标层级类型对应的所述目标对象的各级父级主键并进行多行输出,包括:
根据为所有所述目标对象预设的主键id排序规则,从所述目标整合数据中解析得到多个同一所述目标层级类型对应的所述目标对象的各级父级主键并进行多行输出。
可选的,所述通过所述用户定义表生成函数从所述第二整合数据中查询到所述目标对象的各级父级主键并进行输出,包括:
从所述第二整合数据中获取包含所述目标对象的目标主键id的所有第一整合数据,得到第三整合数据;
确定出所述第三整合数据中所有所述目标主键id对应的上一级目标父级主键pid;
将所述目标父级主键pid作为新主键id,并从所述第三整合数据中确定出与所述新主键id对应的上一级父级主键pid,得到新父级主键pid,再将所述新父级主键pid作为当前主键id,直到无法从所述第三整合数据中确定出与所述当前主键id对应的上一级父级主键pid为止;
分别将所述目标主键id、所述目标父级主键pid和对应的所有所述新父级主键pid整合为一行并进行多行输出。
可选的,所述通过所述用户定义表生成函数从所述第二整合数据中查询到所述目标对象的各级父级主键并进行输出,包括:
可选的,所述通过所述用户定义表生成函数从所述第二整合数据中查询到所述目标对象的各级父级主键并进行输出,包括:
初始化所述用户定义表生成函数;
获取所述第二整合数据和所述目标对象,并在初始化后的所述用户定义表生成函数中设定目标处理规则;
利用所述目标处理规则从所述第二整合数据中查询所述目标对象的各级父级主键,并输出所述目标对象的各级父级主键。
第二方面,本申请公开了一种父级层级查询装置,包括:
数据获取模块,用于获取组织架构图中除最高层级外所有层级中每一对象的对象信息;所述对象信息包括该对象的层级类型、主键id和对应的上一层级的父级主键pid;
第一数据整合模块,用于将所述每一对象的对象信息进行整合,以得到多个第一整合数据;
第二数据整合模块,用于将所有所述第一整合数据整合为一行,以得到第二整合数据;
数据输入模块,用于将所述第二整合数据输入至自定义的用户定义表生成函数中;
父级层级查询模块,用于当监测到需要对所述组织架构图中的目标对象的父级层级进行查询时,通过所述用户定义表生成函数从所述第二整合数据中查询到所述目标对象的各级父级主键并进行输出。
第三方面,本申请公开了一种电子设备,包括处理器和存储器;其中,所述处理器执行所述存储器中保存的计算机程序时实现前述的父级层级查询方法。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述的父级层级查询方法。
可见,本申请先获取组织架构图中除最高层级外所有层级中每一对象的对象信息,并将所述每一对象的对象信息进行整合,以得到多个第一整合数据,然后将所有所述第一整合数据整合为一行,以得到第二整合数据,再将所述第二整合数据输入至自定义的用户定义表生成函数中,当监测到需要对所述组织架构图中的目标对象的父级层级进行查询时,通过所述用户定义表生成函数从所述第二整合数据中查询到所述目标对象的各级父级主键并进行输出。本申请通过将组织架构图中的数据进行多次整合,并将多次整合后的数据输入至用户定义表生成函数中进行数据查询,能够简便、直观地输出组织架构图中指定层级类型中目标对象的各级父级主键,提高查询效率,并节省查询成本。解决了在层级数量未知的情况下,子级层级快速高效寻找所有的父级id的问题,可应用于报表的场景中,快速查询到所有父级层级或父级节点。本申请的用户定义表生成函数的效果在于:实现了动态层级未知时,通过将组织架构中的数据进行整合成一行,实现输入一行整合后的数据输出该目标层级下所有主键id及其对应的各层父级id的多行数据。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种父级层级查询方法流程图;
图2为本申请公开的一种具体的父级层级查询方法流程图;
图3为本申请公开的一种具体的组织架构图;
图4为本申请公开的一种父级层级查询装置结构示意图;
图5为本申请公开的一种电子设备结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例公开了一种父级层级查询方法,参见图1所示,该方法包括:
步骤S11:获取组织架构图中除最高层级外所有层级中每一对象的对象信息,并将所述每一对象的对象信息进行整合,以得到多个第一整合数据;所述对象信息包括该对象的层级类型、主键id和对应的上一层级的父级主键pid。
本实施例中,首先需要对组织架构图中除最高层级外的所有层级中每一对象的层级类型、主键id(Identity document,身份证标识号)以及对应的上一层级的父级主键pid(Parent Identification,父标识)进行获取,然后将上述每一对象的所述层级类型、所述主键id和对应的上一层级的所述父级主键pid进行整合,得到多个第一整合数据。
本实施例中,所述组织架构为企业门店组织架构图,每一对象的层级类型为门店层级。所述组织架构图(即关系图谱)是根据组织架构中组织单元之间的相互关系构建的图表,是把企业组织分成若干部分,并且标明各部分之间可能存在的各种关系的一种架构图,所述关系包括但不限于上下级领导关系、物流关系、资金流关系和资料传递关系等。需要指出的是,通过组织架构图可以直接查看组织单元的详细信息,还可以查看与组织架构关联的如职位、人员等的信息。具体的,所述每一对象的所述主键id依据自身组织架构关系预先存储在所述组织架构图中。
步骤S12:将所有所述第一整合数据整合为一行,以得到第二整合数据。
本实施例中,将所述每一对象的对象信息进行整合得到多个第一整合数据之后,进一步的,可以将所有上述第一整合数据再次进行整合,整合为一行一列的数据,得到所述第二整合数据。
在一种具体的实施方式中,所述将所有所述第一整合数据整合为一行,以得到第二整合数据,具体可以包括:按照预设的排序规则对所有所述第一整合数据进行排序,得到排序后整合数据;在所述排序后整合数据中的任意两个相邻的所述第一整合数据之间添加预设分隔符并整合为一行,得到第二整合数据。也即,在得到所述第一整合数据之后,可以先按照预设的排序规则,如按照层级类型从低到高并且按照主键id从小到大或从低到高或从前到后的顺序规则,对所有上述第一整合数据进行排序,得到排序后整合数据,然后在上述排序后整合数据中的任意两个相邻的所述第一整合数据之间添加预设分隔符,再将添加完分隔符后的整合数据整合为一行,得到第二整合数据。
步骤S13:将所述第二整合数据输入至自定义的用户定义表生成函数中。
本实施例中,将所有所述第一整合数据整合为一行得到第二整合数据之后,进一步的,将上述第二整合数据输入至自定义的用户定义表生成函数(User-Defined Table-Generating Functions,UDTF)中。
步骤S14:当监测到需要对所述组织架构图中的目标对象的父级层级进行查询时,通过所述用户定义表生成函数从所述第二整合数据中查询到所述目标对象的各级父级主键并进行输出。
本实施例中,将所述第二整合数据输入至自定义的用户定义表生成函数中之后,当监测到需要对上述组织架构图中任意一个子级层级中的目标对象的父级层级进行查询时,可以通过上述用户定义表生成函数从上述第二整合数据中查询到与上述目标对象对应的各级父级主键,然后将查询到的多个所述目标对象对应的各级父级主键进行输出。其中,所述目标对象既可以是所述组织架构图中任一子级层级中的所有对象,也可以是所述组织架构图中任一子级层级中的指定对象,所述指定对象既可以为一个也可以为多个。
本实施例中,所述通过所述用户定义表生成函数从所述第二整合数据中查询到所述目标对象的各级父级主键并进行输出,具体可以包括:初始化所述用户定义表生成函数;获取所述第二整合数据和所述目标对象,并在初始化后的所述用户定义表生成函数中设定目标处理规则;利用所述目标处理规则从所述第二整合数据中查询所述目标对象的各级父级主键,并输出所述目标对象的各级父级主键。具体的,可以通过继承org.apache.hadoop.hive.ql.udf.generic.GenericUDTF来实现用户定义表生成函数的功能,当监测到需要对组织架构图中的目标对象的父级层级进行查询时,先通过调用initialize方法来实现用户定义表生成函数的初始化,然后获取上述第二整合数据和上述目标对象,并在初始化后的所述用户定义表生成函数中为所述第二整合数据和所述目标对象设定目标处理规则,再按照所述目标处理规则并调用process函数从上述第二整合数据中获取到所有所述目标对象的各级父级主键并进行输出,进一步的,为了节省系统的存储资源,可以调用close方法对产生的数据进行清理。
需要指出的是,在应用于如多个企业的大数据离线计算场景时,可以通过hsql(一种面向对象的查询语言)语法实现上述父级层级查询的过程,hsql语法较为简便,有利于后续代码的维护和升级。
可见,本申请实施例获取组织架构图中除最高层级外所有层级中每一对象的对象信息,并将所述每一对象的对象信息进行整合,以得到多个第一整合数据,然后将所有所述第一整合数据整合为一行,以得到第二整合数据,再将所述第二整合数据输入至自定义的用户定义表生成函数中,当监测到需要对所述组织架构图中的目标对象的父级层级进行查询时,通过所述用户定义表生成函数从所述第二整合数据中查询到所述目标对象的各级父级主键并进行输出。本申请实施例通过将组织架构图中的数据进行多次整合,并将多次整合后的数据输入至用户定义表生成函数中进行数据查询,能够简便、直观地输出组织架构图中指定类型层级中对象的各级父级主键,提高查询效率,并节省查询成本。解决了在层级数量未知的情况下,子级层级快速高效寻找所有的父级id的问题,可应用于报表的场景中,快速查询到所有父级层级或父级节点。本申请的用户定义表生成函数的效果在于:实现了动态层级未知时,通过将组织架构中的数据进行整合成一行,实现输入一行整合后的数据输出该目标层级下所有主键id及其对应的各层父级id的多行数据。
本申请实施例公开了一种具体的父级层级查询方法,参见图2所示,该方法包括:
步骤S21:获取组织架构图中除最高层级外所有层级中每一对象的对象信息,并按照预设的数据结构将所述每一对象的所述层级类型、所述主键id和对应的上一层级的所述父级主键pid进行整合,得到多个第一整合数据;所述对象信息包括该对象的层级类型、主键id和对应的上一层级的父级主键pid。
本实施例中,首先获取组织架构图中除最高层级以外的所有层级中每一对象的层级类型、主键id以及对应的上一层级的父级主键pid,然后可以按照预设的数据结构将上述每一对象的所述层级类型、所述主键id和对应的上一层级的所述父级主键pid进行整合,得到相应的多个第一整合数据。
在一种具体的实施方式中,所述按照预设的数据结构将所述每一对象的所述层级类型、所述主键id和对应的上一层级的所述父级主键pid进行整合,以得到第一整合数据,具体可以包括:按照先主键id后父级主键pid再层级类型的数据结构将所述每一对象的所述层级类型、所述主键id和对应的上一层级的所述父级主键pid进行整合,得到第一整合数据。例如,参见图3所示,图3示出了一个企业级的组织架构图,具体包括:企业层级(即最高层级)的企业A和企业B、省级层级(包括江苏省和湖南省)、市级层级和门店层级的门店a至门店i。在获取到图3所示的组织架构图之后,先获取上述组织架构图中除企业层级(即最高层级)外的所有层级中每一对象所在的层级对应的层级类型otype(即object type)、主键id以及对应的上一层级的父级主键pid,然后按照(主键id,上一层级父级主键pid,层级类型otype)的数据结构对上述每一对象的所述主键id、对应的上一层级的所述父级主键pid和所述层级类型otype进行整合,得到多个第一整合数据,如针对门店层级中门店a至门店i的对象,先确定出门店a至门店i各自对应的主键id,然后确定出门店层级的层级类型(otype=1),再确定出门店a至门店i各自对应的上一层级父级主键pid,最后对门店层级的门店a至门店i获取到的数据进行整合,分别得到(门店a,苏州市,1)、(门店b,苏州市,1)、(门店c,南京市,1)、(门店d,南京市,1)、(门店e,长沙市,1)、(门店f,长沙市,1)、(门店g,娄底市,1)、(门店h,苏州市,1)、(门店i,长沙市,1),同理,可以对市级层级和省级层级中的每一对象进行数据整合,分别得到(苏州市,江苏省,2)、(南京市,江苏省,2)、(长沙市,湖南省,2)、(娄底市,湖南省,2)、(苏州市,江苏省,2)、(长沙市,湖南省,2)、(江苏省,企业A,3)、(湖南省,企业A,3)、(江苏省,企业B,3)、(湖南省,企业B,3)。
需要指出的是,门店层级对应的层级类型otype可根据实际情况进行设置,只是用来区分不同的层级,不对具体的otype数值进行限定。在得到除企业层级外的门店层级、市级层级和省级层级的上述19个整合数据之后,还可以进一步的对上述19个整合数据进行标记,如将(门店a,苏州市,1)标记为idinfo1(即Identification Information 1)、将(门店b,苏州市,1)标记为idinfo2、(门店c,南京市,1)标记为idinfo3、(门店d,南京市,1)标记为idinfo4、(门店e,长沙市,1)标记为idinfo5、(门店f,长沙市,1)标记为idinfo6、(门店g,娄底市,1)标记为idinfo7、(门店h,苏州市,1)标记为idinfo8、(门店i,长沙市,1)标记为idinfo9、(苏州市,江苏省,2)标记为idinfo10、(南京市,江苏省,2)标记为idinfo11、(长沙市,湖南省,2)标记为idinfo12、(娄底市,湖南省,2)标记为idinfo13、(苏州市,江苏省,2)标记为idinfo14、(长沙市,湖南省,2)标记为idinfo15、(江苏省,企业A,3)标记为idinfo16、(湖南省,企业A,3)标记为idinfo17、(江苏省,企业B,3)标记为idinfo18、(湖南省,企业B,3)标记为idinfo19。
步骤S22:将所有所述第一整合数据整合为一行,以得到第二整合数据。
在一种具体的实施方式中,按照预设的数据结构将所述每一对象的所述层级类型、所述主键id和对应的上一层级的所述父级主键pid进行整合得到多个第一整合数据之后,可以进一步的按照预设的排序规则对所有所述第一整合数据进行排序得到排序后整合数据,然后在上述排序后整合数据中的任意两个相邻的所述第一整合数据之间添加预设分隔符并整合为一行,得到第二整合数据。例如,按照层级类型从低到高,即按照门店层级、市级层级、省级层级、企业层级,并按照每一层级中的对象从前到后的顺序对图3中除企业A和企业B外的上述标记后的19个整合数据进行排序,得到排序后的idinfo1、idinfo2、idinfo3、idinfo4、idinfo5、idinfo6、idinfo7、idinfo8、idinfo9、idinfo10、idinfo11、idinfo12、idinfo13、idinfo14、idinfo15、idinfo16、idinfo17、idinfo18、idinfo19,然后用分号将上述排序后的19个整合数据中的任意两个相邻的整合数据隔开并整合为一行,得到(idinfo1;idinfo2;idinfo3;idinfo4;idinfo5;idinfo6;idinfo7;idinfo8;idinfo9;idinfo10;idinfo11;idinfo12;idinfo13;idinfo14;idinfo15;idinfo16;idinfo17;idinfo18;idinfo19)。
步骤S23:将所述第二整合数据输入至自定义的用户定义表生成函数中。
步骤S24:当监测到需要对所述组织架构图中任一子级层级中的目标对象的父级层级进行查询时,确定所述目标对象对应的目标层级类型。
本实施例中,将所述第二整合数据输入至自定义的用户定义表生成函数中之后,当监测到需要对上述组织架构图中任一子级层级中的目标对象的父级层级进行查询时,先确定出上述子级层级对应的目标层级类型。例如,当监测到需要对图3中门店层级中的所有对象的所有父级层级或某一父级层级进行查询时,可以先确定出所述门店层级对应的层级类型(即设定otype=1,表示门店层级),即寻找otype为1的所有整合数据。
步骤S25:通过所述用户定义表生成函数从所述第二整合数据中确定出包含所述目标层级类型的所有所述第一整合数据,得到目标整合数据,并从所述目标整合数据中解析得到所述目标对象的各级父级主键并进行输出。
在一种具体的实施方式中,确定出所述目标对象对应的目标层级类型之后,可以通过所述用户定义表生成函数从上述第二整合数据中确定出包含所述目标层级类型的所有所述第一整合数据得到目标整合数据,然后从上述目标整合数据中解析得到多个同一所述目标层级类型对应的所述目标对象的各级父级主键,再分别将所有同一所述目标层级类型对应的所述目标对象的各级父级主键进行多行输出。
进一步的,所述从所述目标整合数据中解析得到多个同一所述目标层级类型对应的所述目标对象的各级父级主键并进行多行输出,具体可以包括:根据为所有所述目标对象预设的主键id排序规则,从所述目标整合数据中解析得到多个同一所述目标层级类型对应的所述目标对象的各级父级主键并进行多行输出。也即,按照预设的主键id排序规则将所有同一目标层级类型对应的目标对象的各级父级主键进行多行输出。例如,在对图3中门店层级中的所有对象进行父级层级查询时,可以按照主键id从上到下的顺序依次输出,即按照门店a、门店b、门店c、门店d、门店e、门店f、门店g、门店h、门店i、门店j的顺序依次输出各目标对象的所有父级层级的查询结果。
具体的,所述通过所述用户定义表生成函数从所述第二整合数据中查询到所述目标对象的各级父级主键并进行输出,可以包括:从所述第二整合数据中获取包含所述目标对象的目标主键id的所有第一整合数据,得到第三整合数据;确定出所述第三整合数据中所有所述目标主键id对应的上一级目标父级主键pid;将所述目标父级主键pid作为新主键id,并从所述第三整合数据中确定出与所述新主键id对应的上一级父级主键pid,得到新父级主键pid,再将所述新父级主键pid作为当前主键id,直到无法从所述第三整合数据中确定出与所述当前主键id对应的上一级父级主键pid为止;分别将所述目标主键id、所述目标父级主键pid和对应的所有所述新父级主键pid整合为一行并进行多行输出。例如,从上述(idinfo1;idinfo2;idinfo3;idinfo4;idinfo5;idinfo6;idinfo7;idinfo8;idinfo9;idinfo10;idinfo11;idinfo12;idinfo13;idinfo14;idinfo15;idinfo16;idinfo17;idinfo18;idinfo19)中确定出otype=1(即门店层级)的所有整合数据(idinfo1;idinfo2;idinfo3;idinfo4;idinfo5;idinfo6;idinfo7;idinfo8;idinfo9),然后进一步的确定出对应的目标主键id和对应的上一级目标父级主键pid,如确定出idinfo1对应的目标主键为门店a,对应的上一级目标父级主键为苏州市。在确定出idinfo1对应的目标主键为门店a,对应的上一级目标父级主键为苏州市之后,将所述目标父级主键,即苏州市,作为新主键id,然后查找所述新主键id的上一级父级主键,即江苏省,再将江苏省作为当前主键id,找到所述江苏省的上一级父级主键,即企业A,再查找企业A的上一级父级主键,发现企业A无上一级父级主键,则表明企业A为最高父级层级。然后分别将所述目标主键id、所述目标父级主键pid和对应的所有所述新父级主键pid整合为一行得到父级主键整合数据,接着按照预设的主键id排序规则将所有所述父级主键整合数据进行多行输出。如将上述目标主键为门店a,对应的上一级目标父级主键苏州市及对应的新父级主键(即江苏省和企业A)整合为一行一列的数据,得到门店a的各级父级主键,即门店a-苏州市-江苏省-企业A,进一步的,可以在第二行输出门店b的各级父级主键,即门店b-苏州市-江苏省-企业A,在第三行输出门店b的各级父级主键,即门店c-南京市-江苏省-企业A,直到在第九行输出门店i的各级父级主键,即门店i-长沙市-湖南省-企业B。
可见,本申请实施例通过对组织架构图中的数据进行多次整合,利用自定义的用户定义表生成函数进行数据查询,能够简便、直观地输出指定类型的对象的各级父级主键。解决了在层级数量无法确定的情况下,子级层级寻找所有父级主键的问题,并提高了查询效率,节省了查询成本。取得了输入一行输出多行的技术效果。其中,输入一行是指将具体的组织架构图中所有组织架构的id数据,压缩成的一行数据进行输入。输出多行是指输出目标层级所有主键id及各层父级id数据。如输入一个企业的组织架构图,输出该企业在最低层级(若为具体的店铺名称)的所有主键id及各层父级id数据。最低层级若为具体的店铺名称,企业下有多少家店铺就输出多少条数据。本申请实施例能够适用于大数据量级的门店数据应用场景,快速处理得到各父级主键。
相应的,本申请实施例还公开了一种父级层级查询装置,参见图4所示,该装置包括:
数据获取模块11,用于获取组织架构图中除最高层级外所有层级中每一对象的对象信息;所述对象信息包括该对象的层级类型、主键id和对应的上一层级的父级主键pid;
第一数据整合模块12,用于将所述每一对象的对象信息进行整合,以得到多个第一整合数据;
第二数据整合模块13,用于将所有所述第一整合数据整合为一行,以得到第二整合数据;
数据输入模块14,用于将所述第二整合数据输入至自定义的用户定义表生成函数中;
父级层级查询模块15,用于当监测到需要对所述组织架构图中的目标对象的父级层级进行查询时,通过所述用户定义表生成函数从所述第二整合数据中查询到所述目标对象的各级父级主键并进行输出。
其中,关于上述各个模块的具体工作流程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本申请实施例中,获取组织架构图中除最高层级外所有层级中每一对象的对象信息,并将所述每一对象的对象信息进行整合,以得到多个第一整合数据,然后将所有所述第一整合数据整合为一行,以得到第二整合数据,再将所述第二整合数据输入至自定义的用户定义表生成函数中,当监测到需要对所述组织架构图中的目标对象的父级层级进行查询时,通过所述用户定义表生成函数从所述第二整合数据中查询到所述目标对象的各级父级主键并进行输出。本申请实施例通过将组织架构图中的数据进行多次整合,并将多次整合后的数据输入至用户定义表生成函数中进行数据查询,能够简便、直观地输出组织架构图中指定类型层级中对象的各级父级主键,提高查询效率,并节省查询成本。
在一些具体实施例中,所述第一数据整合模块12,具体可以包括:
数据整合单元,用于按照预设的数据结构将所述每一对象的所述层级类型、所述主键id和对应的上一层级的所述父级主键pid进行整合,得到多个第一整合数据。
在一些具体实施例中,所述父级层级查询模块15,具体可以包括:
层级类型确定单元,用于当监测到需要对所述组织架构图中任一子级层级中的目标对象的父级层级进行查询时,确定所述目标对象对应的目标层级类型;
第一数据获取单元,用于通过所述用户定义表生成函数从所述第二整合数据中确定出包含所述目标层级类型的所有所述第一整合数据,得到目标整合数据;
第一数据输出单元,用于从所述目标整合数据中解析得到所述目标对象的各级父级主键并进行输出。
在一些具体实施例中,所述第一数据输出单元,具体可以包括:
第二数据输出单元,用于从所述目标整合数据中解析得到多个同一所述目标层级类型对应的所述目标对象的各级父级主键并进行多行输出。
在一些具体实施例中,所述第二数据输出单元,具体可以包括:
第三数据输出单元,用于根据为所有所述目标对象预设的主键id排序规则,从所述目标整合数据中解析得到多个同一所述目标层级类型对应的所述目标对象的各级父级主键并进行多行输出。
在一些具体实施例中,所述父级层级查询模块15,具体可以包括:
第二数据获取单元,用于从所述第二整合数据中获取包含所述目标对象的目标主键id的所有第一整合数据,得到第三整合数据;
第一父级主键确定单元,用于确定出所述第三整合数据中所有所述目标主键id对应的上一级目标父级主键pid;
第二父级主键确定单元,用于将所述目标父级主键pid作为新主键id,并从所述第三整合数据中确定出与所述新主键id对应的上一级父级主键pid,得到新父级主键pid,再将所述新父级主键pid作为当前主键id,直到无法从所述第三整合数据中确定出与所述当前主键id对应的上一级父级主键pid为止;
第四数据输出单元,用于分别将所述目标主键id、所述目标父级主键pid和对应的所有所述新父级主键pid整合为一行并进行多行输出。
在一些具体实施例中,所述父级层级查询模块15,具体可以包括:
初始化单元,用于初始化所述用户定义表生成函数;
处理规则设定单元,用于获取所述第二整合数据和所述目标对象,并在初始化后的所述用户定义表生成函数中设定目标处理规则;
第三父级主键确定单元,用于利用所述目标处理规则从所述第二整合数据中查询所述目标对象的各级父级主键;
第五数据输出单元,用于输出所述目标对象的各级父级主键。
进一步的,本申请实施例还公开了一种电子设备,图5是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图5为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的父级层级查询方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的父级层级查询方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的父级层级查询方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种父级层级查询方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (8)
1.一种父级层级查询方法,其特征在于,包括:
获取组织架构图中除最高层级外所有层级中每一对象的对象信息,并将所述每一对象的对象信息进行整合,以得到多个第一整合数据;所述对象信息包括该对象的层级类型、主键id和对应的上一层级的父级主键pid;
将所有所述第一整合数据整合为一行,以得到第二整合数据;
将所述第二整合数据输入至自定义的用户定义表生成函数中;
当监测到需要对所述组织架构图中的目标对象的父级层级进行查询时,通过所述用户定义表生成函数从所述第二整合数据中查询到所述目标对象的各级父级主键并进行输出;
其中,所述当监测到需要对所述组织架构图中的目标对象的父级层级进行查询时,通过所述用户定义表生成函数从所述第二整合数据中查询到所述目标对象的各级父级主键并进行输出,包括:当监测到需要对所述组织架构图中任一子级层级中的目标对象的父级层级进行查询时,确定所述目标对象对应的目标层级类型;通过所述用户定义表生成函数从所述第二整合数据中确定出包含所述目标层级类型的所有所述第一整合数据,得到目标整合数据,并从所述目标整合数据中解析得到所述目标对象的各级父级主键并进行输出;
所述从所述目标整合数据中解析得到所述目标对象的各级父级主键并进行输出,包括:从所述目标整合数据中解析得到多个同一所述目标层级类型对应的所述目标对象的各级父级主键并进行多行输出。
2.根据权利要求1所述的父级层级查询方法,其特征在于,所述将所述每一对象的对象信息进行整合,以得到多个第一整合数据,包括:
按照预设的数据结构将所述每一对象的所述层级类型、所述主键id和对应的上一层级的所述父级主键pid进行整合,得到多个第一整合数据。
3.根据权利要求1所述的父级层级查询方法,其特征在于,所述从所述目标整合数据中解析得到多个同一所述目标层级类型对应的所述目标对象的各级父级主键并进行多行输出,包括:
根据为所有所述目标对象预设的主键id排序规则,从所述目标整合数据中解析得到多个同一所述目标层级类型对应的所述目标对象的各级父级主键并进行多行输出。
4.根据权利要求1所述的父级层级查询方法,其特征在于,所述通过所述用户定义表生成函数从所述第二整合数据中查询到所述目标对象的各级父级主键并进行输出,包括:
从所述第二整合数据中获取包含所述目标对象的目标主键id的所有第一整合数据,得到第三整合数据;
确定出所述第三整合数据中所有所述目标主键id对应的上一级目标父级主键pid;
将所述目标父级主键pid作为新主键id,并从所述第三整合数据中确定出与所述新主键id对应的上一级父级主键pid,得到新父级主键pid,再将所述新父级主键pid作为当前主键id,直到无法从所述第三整合数据中确定出与所述当前主键id对应的上一级父级主键pid为止;
分别将所述目标主键id、所述目标父级主键pid和对应的所有所述新父级主键pid整合为一行并进行多行输出。
5.根据权利要求1至4任一项所述的父级层级查询方法,其特征在于,所述通过所述用户定义表生成函数从所述第二整合数据中查询到所述目标对象的各级父级主键并进行输出,包括:
初始化所述用户定义表生成函数;
获取所述第二整合数据和所述目标对象,并在初始化后的所述用户定义表生成函数中设定目标处理规则;
利用所述目标处理规则从所述第二整合数据中查询所述目标对象的各级父级主键,并输出所述目标对象的各级父级主键。
6.一种父级层级查询装置,其特征在于,包括:
数据获取模块,用于获取组织架构图中除最高层级外所有层级中每一对象的对象信息;所述对象信息包括该对象的层级类型、主键id和对应的上一层级的父级主键pid;
第一数据整合模块,用于将所述每一对象的对象信息进行整合,以得到多个第一整合数据;
第二数据整合模块,用于将所有所述第一整合数据整合为一行,以得到第二整合数据;
数据输入模块,用于将所述第二整合数据输入至自定义的用户定义表生成函数中;
父级层级查询模块,用于当监测到需要对所述组织架构图中的目标对象的父级层级进行查询时,通过所述用户定义表生成函数从所述第二整合数据中查询到所述目标对象的各级父级主键并进行输出;
其中,所述父级层级查询模块,具体用于当监测到需要对所述组织架构图中任一子级层级中的目标对象的父级层级进行查询时,确定所述目标对象对应的目标层级类型;通过所述用户定义表生成函数从所述第二整合数据中确定出包含所述目标层级类型的所有所述第一整合数据,得到目标整合数据,并从所述目标整合数据中解析得到所述目标对象的各级父级主键并进行输出;
所述装置,具体用于从所述目标整合数据中解析得到多个同一所述目标层级类型对应的所述目标对象的各级父级主键并进行多行输出。
7.一种电子设备,其特征在于,包括处理器和存储器;其中,所述处理器执行所述存储器中保存的计算机程序时实现如权利要求1至5任一项所述的父级层级查询方法。
8.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的父级层级查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210777276.5A CN114817316B (zh) | 2022-07-04 | 2022-07-04 | 一种父级层级查询方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210777276.5A CN114817316B (zh) | 2022-07-04 | 2022-07-04 | 一种父级层级查询方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114817316A CN114817316A (zh) | 2022-07-29 |
CN114817316B true CN114817316B (zh) | 2022-09-30 |
Family
ID=82523087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210777276.5A Active CN114817316B (zh) | 2022-07-04 | 2022-07-04 | 一种父级层级查询方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114817316B (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9311381B2 (en) * | 2013-12-30 | 2016-04-12 | Bmc Software Inc. | Lifecycle reference partitioning for database objects |
CN113190631A (zh) * | 2021-05-31 | 2021-07-30 | 中国银行股份有限公司 | 一种拆分包含多列信息的单字段的方法和装置 |
CN114168591A (zh) * | 2021-11-11 | 2022-03-11 | 四川启睿克科技有限公司 | 寻找树形结构数据路径节点的方法 |
-
2022
- 2022-07-04 CN CN202210777276.5A patent/CN114817316B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN114817316A (zh) | 2022-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110855473A (zh) | 一种监控方法、装置、服务器及存储介质 | |
CN101464894B (zh) | 数据查询方法和系统 | |
US20120054824A1 (en) | Access control policy template generating device, system, method and program | |
CN112311571B (zh) | 网络拓扑生成方法及装置、电子设备和非暂态存储介质 | |
CN112416923A (zh) | 一种元数据管理方法及装置、设备、存储介质 | |
CN111090686B (zh) | 数据处理方法、装置、服务器和存储介质 | |
CN109684402A (zh) | 一种基于大数据平台元数据血缘关系实现方法 | |
CN113723810A (zh) | 基于图数据库的电网建模方法 | |
CA2461871A1 (en) | An efficient index structure to access hierarchical data in a relational database system | |
CN112364014B (zh) | 数据查询方法、装置、服务器及存储介质 | |
CN109344306B (zh) | 一种领域多标准元数据定制化在线汇交与服务方法及系统 | |
CN114817316B (zh) | 一种父级层级查询方法、装置、设备及存储介质 | |
US11263264B2 (en) | Management of graphs using secondary index vertices | |
CN102456070B (zh) | 检索装置和检索方法 | |
CN111858617A (zh) | 用户查找方法和装置、计算机可读存储介质、电子设备 | |
CN116260702A (zh) | 数据监控的方法、装置、计算机设备和存储介质 | |
CN115858463A (zh) | 一种数据管理方法、装置、设备及存储介质 | |
JP2003316811A (ja) | 異種データベース統合システムにおける問い合わせ最適化処理装置、方法、及びその方法をコンピュータに実行させるプログラム | |
CN115017251A (zh) | 一种用于智慧城市的标准映射地图建立方法及系统 | |
CN114528446A (zh) | 一种工业互联网网络标识数据分级查询方法及装置 | |
CN113986545A (zh) | 用户与角色关联方法及装置 | |
CN113065801A (zh) | 组织架构管理方法、装置、设备及存储介质 | |
CN112860725A (zh) | Sql自动生成方法和装置、存储介质及电子设备 | |
CN105975623A (zh) | 一种通过查询表达式获取组织机构信息的方法及系统 | |
CN105930453A (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 |