![一种列信息动态扩展查询方法、装置、设备及介质与流程](https://img.xjishu.com/img/zl/2023/1/6/5siaieok7.jpg)
1.本技术涉及数据查询领域,具体涉及一种列信息动态扩展查询方法、装置、设备及介质。
背景技术:2.目前市面上流行两种查询分析方案,一种是先建立查询数据集,然后基于查询数据集定义查询,其数据列是查询数据集里确定的,如果想在某查询里显示新的维表或现有的维表新列,则需要修改建立的查询数据集;而如果提前建立关联,则定义查询时需要从更多的列里进行选择,且额外关联的表可能在查询时影响性能。另一种在数据集之外,支持关系的定义,在定义查询时,可以选择不同的数据集的列,在查询时根据查询选择的列及其所属数据集之间的关系动态组织数据,该方案在一定程度上解决了前述方案的问题,但也存在缺陷:为自动识别关联关系,数据集之间最多定义一个关系,而且不支持数据集之间存在多个关联关系的场景,且系统内定义的数据集繁多,定义查询时选择不方便。
技术实现要素:3.为了解决上述问题,本技术提出了一种列信息动态扩展查询方法、装置、设备及介质,包括:
4.根据业务字段信息以及业务实体信息,定义业务实体以及业务字段;确定各查询数据集与所述业务字段之间的第一关联关系,以及所述业务实体与所述业务字段之间的第二关联关系;根据所述第一关联关系以及所述第二关联关系,确定所述各查询数据集之间的第三关联关系;接收来自于用户的查询字段,并根据所述查询字段确定目标查询任务的主查询数据集;根据所述第三关联关系,确定所述主查询数据集的关联查询数据集;根据所述主查询数据集以及所述关联查询数据集,以及所述查询字段,确定目标列信息。
5.在一个示例中,所述根据业务字段信息以及业务实体信息,定义业务实体以及业务字段,具体包括:根据所述业务字段信息,进行业务实体建模;将建模后的业务实体存储至预设数据库;根据所述业务字段信息,定义业务字段;将所述业务字段存储至所述预设数据库。
6.在一个示例中,所述确定各查询数据集与所述业务字段之间的第一关联关系之前,所述方法还包括:获取预存于预设数据库的数据集信息;根据所述数据集信息,建立查询数据集模型;将所述查询数据集存储至所述预设数据库。
7.在一个示例中,所述接收来自于用户的查询字段之前,所述方法还包括:获取所述业务字段对应的字段信息;根据所述字段信息,生成备选查询字段;将所述备选查询字段发送至所述用户。
8.在一个示例中,所述根据所述字段信息,生成备选查询字段,具体包括:根据所述字段信息及所述业务字段对应的业务属性,确定所述业务字段的业务等级;根据所述业务等级以及所述第一关联关系,生成备选查询字段;所述备选查询字段中包括多个字段,且所
述字段都对应至少一个查询数据集。
9.在一个示例中,所述根据所述主查询数据集以及所述关联查询数据集,以及所述查询字段,确定目标列信息,具体包括:根据所述查询字段、所述主查询数据集以及所述关联查询数据集,确定最终查询字段;生成所述最终查询字段对应的bql查询语句;通过所述查询语句,对所述查询数据集进行查询。
10.在一个示例中,所述根据所述主查询数据集以及所述关联查询数据集,以及所述查询字段,确定目标列信息之后,所述方法还包括:对所述目标列信息进行渲染,以生成查询结果;将所述查询结果发送至所述用户。
11.本技术还提供了一种列信息动态扩展查询装置,其特征在于,包括:业务字段定义模块,根据业务字段信息以及业务实体信息,定义业务实体以及业务字段;关联关系第一确定模块,确定各查询数据集与所述业务字段之间的第一关联关系,以及所述业务实体与所述业务字段之间的第二关联关系;关联关系第二确定模块,根据所述第一关联关系以及所述第二关联关系,确定所述各查询数据集之间的第三关联关系;主查询数据集确定模块,接收来自于用户的查询字段,并根据所述查询字段确定目标查询任务的主查询数据集;关联查询数据集确定模块,根据所述第三关联关系,确定所述主查询数据集的关联查询数据集;目标列信息确定模块,根据所述主查询数据集以及所述关联查询数据集,以及所述查询字段,确定目标列信息。
12.本技术还提供了一种列信息动态扩展查询设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行:根据业务字段信息以及业务实体信息,定义业务实体以及业务字段;确定各查询数据集与所述业务字段之间的第一关联关系,以及所述业务实体与所述业务字段之间的第二关联关系;根据所述第一关联关系以及所述第二关联关系,确定所述各查询数据集之间的第三关联关系;接收来自于用户的查询字段,并根据所述查询字段确定目标查询任务的主查询数据集;根据所述第三关联关系,确定所述主查询数据集的关联查询数据集;根据所述主查询数据集以及所述关联查询数据集,以及所述查询字段,确定目标列信息。
13.本技术还提供了一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:根据业务字段信息以及业务实体信息,定义业务实体以及业务字段;确定各查询数据集与所述业务字段之间的第一关联关系,以及所述业务实体与所述业务字段之间的第二关联关系;根据所述第一关联关系以及所述第二关联关系,确定所述各查询数据集之间的第三关联关系;接收来自于用户的查询字段,并根据所述查询字段确定目标查询任务的主查询数据集;根据所述第三关联关系,确定所述主查询数据集的关联查询数据集;根据所述主查询数据集以及所述关联查询数据集,以及所述查询字段,确定目标列信息。
14.通过本技术提出的方法能够以业务字段为纽带,自动建立查询数据集之间的关联关系,从而省略了现有技术中的关联关系建模的过程。同时,在用户选择查询列的方式上,基于业务字段建立查询数据集关联关系动态构造了字段树,从而提高了用户在选择查询列时的便捷性。
附图说明
15.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
16.图1为本技术实施例中一种列信息动态扩展查询方法流程示意图;
17.图2为本技术实施例中一种列信息动态扩展查询装置结构示意图。
18.图3为本技术实施例中一种列信息动态扩展查询设备结构示意图。
具体实施方式
19.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
20.以下结合附图,详细说明本技术各实施例提供的技术方案。
21.图1为本说明书一个或多个实施例提供的一种列信息动态扩展查询方法的流程示意图。该流程可以由相应领域的计算设备执行,流程中的某些输入参数或者中间结果允许人工干预调节,以帮助提高准确性。
22.本技术实施例涉及的分析方法的实现可以为终端设备,也可以为服务器,本技术对此不作特殊限制。为了方便理解和描述,以下实施例均以服务器为例进行详细描述。
23.需要说明的是,该服务器可以是单独的一台设备,可以是有多台设备组成的系统,即,分布式服务器,本技术对此不做具体限定。
24.如图1所示,本技术实施例提供一种列信息动态扩展查询方法,包括:
25.s101:根据业务字段信息以及业务实体信息,定义业务实体以及业务字段。
26.针对查询数据集之间关联关系复杂,变化多,定义繁琐问题,本技术以业务字段为纽带,自动建立数据集之间的网状关联关系。因此,首先需要根据业务字段信息以及业务实体信息,定义业务实体以及业务字段。
27.在一个实施例中,在根据业务字段信息以及业务实体信息,定义业务实体以及业务字段时,首先需要根据业务字段信息,进行业务实体建模,并将建模后的业务实体存储至预设数据库。根据业务字段信息,定义业务字段,并将业务字段存储至所述预设数据库。
28.上述业务字段信息以及业务实体信息可以预先存储在计算机设备的存储装置中,当需要定义业务实体以及业务字段时,计算机设备可以从存储装置中选取业务字段信息以及业务实体信息。当然,计算机设备还可以从其它外部设备中获取该业务字段信息以及业务实体信息。比如,将业务字段信息以及业务实体信息存储在云端,当需要定义业务实体以及业务字段时,计算机设备可以从云端获取业务字段信息以及业务实体信息,本实施例对业务字段信息以及业务实体信息的获取方式不做限定。
29.需要说明的是,这里的业务实体指的是:业务实体的概念,此处业务实体也包括该业务实体所对应的查询数据集。业务字段是对字段的业务抽象,针对实体类的字段(如组织标识、物料标识、资产标识等字段),可以指定其对应的查询数据集。
30.在一个实施例中,还需要预先确定查询数据集,需要先获取预存于预设数据库的数据集信息,并根据数据集信息,建立查询数据集模型,最后将查询数据集存储至所述预设
数据库。
31.s102:确定各查询数据集与所述业务字段之间的第一关联关系,以及所述业务实体与所述业务字段之间的第二关联关系。
32.定义了业务实体以及业务字段之后,由于业务实体、业务字段、各查询数据集之间业务属性存在重叠乃至相同的情况,此时可确定各查询数据集与业务字段之间的第一关联关系,以及业务实体与业务字段之间的第二关联关系。
33.s103:根据所述第一关联关系以及所述第二关联关系,确定所述各查询数据集之间的第三关联关系。
34.通过各查询数据集与业务字段之间的第一关联关系,以及业务实体与业务字段之间的第二关联关系,可以得到各个查询数据集之间的第三关联关系。
35.s104:接收来自于用户的查询字段,并根据所述查询字段确定目标查询任务的主查询数据集。
36.针对用户个性化配置查询列信息的问题,本发明在面向最终用户的运行时,提供查询字段的管理,用户可以设置不同的查询字段,这里的查询字段指的是用户发送的用于进行查询列信息的指令,查询字段可以体现用户的查询需求。在查询字段可以配置不同的显示列。同时为简化查询列选择,以使每个查询字段都对应一个主查询数据集。
37.在一个实施例中,接收来自于用户的查询字段之前,还可以根据定义的业务字段对应的字段信息,生成备选查询字段,并将备选查询字段发送至所述用户。以使用户可根据备选方案中的字段信息进行查询,此时每个字段信息都对应有查询数据集。
38.进一步地,根据字段信息,生成备选查询字段时,首先需要根据字段信息及业务字段对应的业务属性,确定业务字段的业务等级。再根据业务等级以及第一关联关系,生成备选查询字段。例如,业务字段可能包括业务部门、办公室等字段,若以业务建模中的业务逻辑来讲,此时办公室与业务部门存在上下级关联关系。
39.s105:根据所述第三关联关系,确定所述主查询数据集的关联查询数据集。
40.数据集的列以树型显示,通过业务字段识别的关联实体列,可以通过双击展开其关联实体的列。这样通过层层嵌套,用户可以根据其需求选择合适的列。由于是动态构造的树,在实体结构发生变化时,不需要修改引用其的查询数据集,大大减轻了二开及实施工作量。
41.s106:根据所述主查询数据集以及所述关联查询数据集,以及所述查询字段,确定目标列信息。
42.根据主查询数据集以及主查询数据集的关联查询数据集,以及用户提供的查询字段,即可确定用户想要查询的目标列信息。
43.在一个实施例中,根据主查询数据集以及关联查询数据集,以及查询字段,确定目标列信息时,首先要根据查询字段、主查询数据集以及关联查询数据集,确定最终查询字段,即在面向最终用户的运行时,提供查询字段的管理,用户可以设置不同的查询字段,在查询字段可以配置不同的显示列。同时为简化查询列选择,每个查询对应一个主查询数据集,数据集的列以树型显示,通过业务字段识别的关联实体列,可以通过双击展开其关联实体的列。这样通过层层嵌套,用户可以根据其需求选择合适的列,此时最终查询字段即为根据用户的查询字段以及用户通过双击展开的关联实体列对应的最终查询列。然后根据生成
最终查询字段对应的bql查询语句,并通过查询语句,对查询数据集进行查询。
44.为解决动态列配置的后台查询问题,可基于业务查询语言引擎,根据查询字段,动态生成bql语句,调用bql引擎进行数据查询,且使用bql可以屏蔽数据库差异,可适配多种数据库,并可支持扩展适配更多的数据库。
45.在一个实施例中,根据主查询数据集以及关联查询数据集,以及查询字段,确定目标列信息之后,还可以对目标列信息进行渲染,以生成查询结果,再将查询结果发送至所述用户。
46.在一个实施例中,还可以在在获取用户的查询字段之前,先获取用户的理想查询字段,以及理想查询字段对应的字段属性,也就是用户可能在业务字段列表中找不到自己想要查询的字段,此时可额外输入自己想要查询的词汇以及该词汇的含义。然后服务器根据字段属性,确定各业务字段与理想查询字段的相似等级,再根据相似等级确定理想查询字段的相似业务字段,并将相似业务字段以及相似业务字段对应的字段属性发送至所述用户,并接收所述用户的字段选择结果。即将该相似业务字段发送给用户之后,看是否为用户想进行查询的字段。若字段选择结果中没有现有到的业务字段,则记录理想查询字段并通知开发人员根据理想查询字段的字段属性生成业务字段。
47.如图2所示,本技术实施例还提供了一种列信息动态扩展查询装置,包括:
48.业务字段定义模块201,根据业务字段信息以及业务实体信息,定义业务实体以及业务字段。
49.关联关系第一确定模块202,确定各查询数据集与所述业务字段之间的第一关联关系,以及所述业务实体与所述业务字段之间的第二关联关系。
50.关联关系第二确定模块203,根据所述第一关联关系以及所述第二关联关系,确定所述各查询数据集之间的第三关联关系。
51.主查询数据集确定模块204,接收来自于用户的查询字段,并根据所述查询字段确定目标查询任务的主查询数据集。
52.关联查询数据集确定模块205,根据所述第三关联关系,确定所述主查询数据集的关联查询数据集。
53.目标列信息确定模块206,根据所述主查询数据集以及所述关联查询数据集,以及所述查询字段,确定目标列信息。
54.如图3所示,本技术实施例还提供了一种列信息动态扩展查询设备,包括:
55.至少一个处理器;以及,
56.与所述至少一个处理器通信连接的存储器;其中,
57.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
58.根据业务字段信息以及业务实体信息,定义业务实体以及业务字段;确定各查询数据集与所述业务字段之间的第一关联关系,以及所述业务实体与所述业务字段之间的第二关联关系;根据所述第一关联关系以及所述第二关联关系,确定所述各查询数据集之间的第三关联关系;接收来自于用户的查询字段,并根据所述查询字段确定目标查询任务的主查询数据集;根据所述第三关联关系,确定所述主查询数据集的关联查询数据集;根据所述主查询数据集以及所述关联查询数据集,以及所述查询字段,确定目标列信息。
59.本技术实施例还提供了一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
60.根据业务字段信息以及业务实体信息,定义业务实体以及业务字段;确定各查询数据集与所述业务字段之间的第一关联关系,以及所述业务实体与所述业务字段之间的第二关联关系;根据所述第一关联关系以及所述第二关联关系,确定所述各查询数据集之间的第三关联关系;接收来自于用户的查询字段,并根据所述查询字段确定目标查询任务的主查询数据集;根据所述第三关联关系,确定所述主查询数据集的关联查询数据集;根据所述主查询数据集以及所述关联查询数据集,以及所述查询字段,确定目标列信息。
61.本技术中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备和介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
62.本技术实施例提供的设备和介质与方法是一一对应的,因此,设备和介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述设备和介质的有益技术效果。
63.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
64.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
65.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
66.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
67.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
68.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
69.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
70.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
71.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。