CN121029810B - 数据库查询方法及电子设备 - Google Patents
数据库查询方法及电子设备Info
- Publication number
- CN121029810B CN121029810B CN202511553202.3A CN202511553202A CN121029810B CN 121029810 B CN121029810 B CN 121029810B CN 202511553202 A CN202511553202 A CN 202511553202A CN 121029810 B CN121029810 B CN 121029810B
- Authority
- CN
- China
- Prior art keywords
- query
- verification
- result
- sub
- target
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据库查询方法及电子设备,涉及数据库技术领域,通过将用户输入的自然语言查询语句分解为至少两个子查询语句,分别获取至少两个子查询语句对应的初始查询结果,能够避免因自然语言查询语句涉及多个数据库时导致的初始查询结果准确率低的问题;通过调用集群管理平台中功能模块的应用程序接口,获取校验数据,并根据校验数据对初始查询结果进行验证,增加对查询结果的验证机制,能够进一步提高查询结果的准确率;通过同时获取至少两个子查询语句对应的初始查询结果并获取校验数据,能够提高复杂查询场景下的查询效率。
Description
技术领域
本申请涉及数据库技术领域,尤其涉及一种数据库查询方法及电子设备。
背景技术
在基于集群管理平台的数据库查询应用场景中,一个集群管理平台包括资源管理与统计、用户系统等多个功能模块,涉及的数据库和业务表的数量众多且表结构复杂,因此如何从复杂的数据库中查询到准确的信息,成为一个关键的技术挑战。
相关技术中,通过对用户输入的自然语言问题进行解析生成结构化查询语句(Structured Query Language,SQL),在数据库中执行查询操作获取查询结果,并将该结果反馈给用户。然而上述方法中,在复杂查询场景下,生成SQL查询语句的准确性较低,且缺乏对查询结果的验证机制,存在查询结果准确率低的问题。
发明内容
本申请提供了一种数据库查询方法及电子设备,以至少解决相关技术中数据库查询结果准确率低的问题。
本申请提供了一种数据库查询方法,包括:
获取自然语言查询语句,并根据自然语言查询语句的语义,将自然语言查询语句分解为至少两个子查询语句;
获取针对集群管理平台的至少两个子查询语句对应的初始查询结果,其中,集群管理平台包括至少两个功能模块,功能模块用于管理集群管理平台中的服务器节点;
根据初始查询结果,分别调用对应的功能模块的应用程序接口,获取校验数据,校验数据用于表征集群管理平台中服务器节点的资源状态;
根据校验数据对初始查询结果进行验证,得到目标验证结果,并根据目标验证结果确定目标查询结果。
本申请还提供了一种数据库查询装置,包括:
第一获取模块,用于获取自然语言查询语句,并根据自然语言查询语句的语义,将自然语言查询语句分解为至少两个子查询语句;
第二获取模块,用于获取针对集群管理平台的至少两个子查询语句对应的初始查询结果,其中,集群管理平台包括至少两个功能模块,功能模块用于管理集群管理平台中的服务器节点;
第三获取模块,用于根据初始查询结果,分别调用对应的功能模块的应用程序接口,获取校验数据,校验数据用于表征集群管理平台中服务器节点的资源状态;
确定模块,用于根据校验数据对初始查询结果进行验证,得到目标验证结果,并根据目标验证结果确定目标查询结果。
本申请还提供了一种电子设备,包括:存储器,用于存储计算机程序;处理器,用于执行计算机程序时实现上述任一种数据库查询方法的步骤。
本申请还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,其中,计算机程序被处理器执行时实现上述任一种数据库查询方法的步骤。
本申请还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现上述任一种数据库查询方法的步骤。
本申请提供的数据库查询方法及电子设备,通过将用户输入的自然语言查询语句分解为至少两个子查询语句,分别获取至少两个子查询语句对应的初始查询结果,能够避免因自然语言查询语句涉及多个数据库时导致的初始查询结果准确率低的问题;通过调用集群管理平台中功能模块的应用程序接口,获取校验数据,并根据校验数据对初始查询结果进行验证,增加对查询结果的验证机制,能够进一步提高查询结果的准确率;通过同时获取至少两个子查询语句对应的初始查询结果并获取校验数据,能够提高复杂查询场景下的查询效率。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种应用环境架构示意图;
图2为本申请实施例提供的一种数据库查询方法的流程示意图一;
图3为本申请实施例提供的一种数据库查询方法的流程示意图二;
图4为本申请实施例提供的一种数据库查询方法流程示意图三;
图5为本申请实施例提供的数据库查询装置的结构示意图;
图6为本申请提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。
需要说明的是,在本申请的描述中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。本申请中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。
集群管理平台指用于统一管理和运维多个服务器节点与数据库实例的软件系统,其中,服务器节点为构成服务器集群的物理机或虚拟机,以及它们的中央处理器(CentralProcessing Unit,CPU)、内存等资源,数据库实例可能分布在不同的物理机或虚拟机上,不同的数据库用于存储不同类型的数据,如资产清单数据库用于存储所有服务器、虚拟机、数据库实例的IP(Internet Protocol)地址、主机名、规格配置等;账户数据库用于存储用户账号、角色以及访问权限等;监控数据库用于记录各种资源利用率、服务性能指标等。
集群管理平台具有多个功能模块,如用户管理模块、资源组模块、节点资源模块、任务管理模块等,其中,用户管理模块负责整个平台的访问控制和权限体系,包括身份认证、权限管理、角色管理等;资源组模块用于对平台管理的物理或逻辑资源进行分组和隔离,以实现多租户或项目制管理;节点资源模块用于管理和监控服务器的状态和性能;任务管理模块用于调度和执行用户在平台上发起的各种操作任务。
大语言模型(Large Language Model,LLM)是一种基于海量文本数据训练的、拥有巨大参数规模的深度学习模型,LLM能够学习和理解人类的自然语言,从而完成相应的任务,如内容生成、对话交互、知识问答等。随着大语言模型能力的不断提升,进一步推动了人工智能技术的普惠化和广泛应用,在各行各业涌现了众多与大语言模型有关的产品和应用,其中大语言模型与数据库对话的结合,已经成为人工智能(Artificial Intelligence,AI)落地和数据智能化的热点领域之一。
基于大语言模型的数据库查询业务流程是首先由用户直接用自然语言提问,大语言模型理解意图并将其转换为精确的数据库查询语言(主要是SQL语句),执行查询后将结果用自然语言解释或可视化呈现,在一定程度上可以使用户无需了解所有平台功能,快速获取有效信息。
虽然当前数据库查询已经有了很大的发展,但也面临着一些挑战与瓶颈,如可靠性与精度方面,大语言模型的幻觉与不确定性在操作数据库风险较高(尤其写入操作),需要严格验证和约束;对复杂业务场景、隐含规则等方面理解能力不足,需要提供更详细的上下文信息。
在集群管理平台的数据库查询场景下,一个集群管理平台包括上述多个功能模块,涉及到的数据库、业务表数量较多,表结构复杂;平台用户所提的问题,可能涉及到平台的多个功能模块。在此场景下,相关技术中的方法生成SQL查询语句的准确性较低,且缺乏对查询结果的验证机制,存在查询结果准确率低的问题。
基于此,本申请提供一种数据库查询方法,将智能对话系统集成到集群管理平台,使得用户可以通过智能对话系统进行数据库查询。本申请提供的数据库查询方法,通过将用户输入的自然语言查询语句分解为至少两个子查询语句,分别获取至少两个子查询语句对应的初始查询结果,能够避免因自然语言查询语句涉及多个数据库时导致的初始查询结果准确率低的问题;通过调用集群管理平台中功能模块的应用程序接口,获取校验数据,并根据校验数据对初始查询结果进行验证,增加对查询结果的验证机制,能够进一步提高查询结果的准确率;通过同时获取至少两个子查询语句对应的初始查询结果并获取校验数据,能够提高复杂查询场景下的查询效率。
为了使本技术领域的技术人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。
结合数据库查询方法的执行所依赖的特定应用环境架构或者特定硬件架构,在此对特定应用环境架构或者特定硬件架构进行描述。参考图1,图1为本申请实施例提供的一种应用环境架构示意图,包括:客户端11、目标服务器12和服务器集群13,客户端11和目标服务器12之间通信连接,目标服务器12和服务器集群13中的各服务器节点通信连接。客户端11用于接收用户输入的自然语言查询语句,并将自然语言查询语句发送至目标服务器12。目标服务器12上部署有集群管理平台和大语言模型,集群管理平台可以对服务器集群13中的各服务器节点和数据库实例进行运维和管理。目标服务器12接收客户端11发送的自然语言查询语句,使用大语言模型将自然语言查询语句转换为SQL查询语句,并在各数据库实例中执行查询操作,获取初始查询结果,然后调用集群管理平台的相关功能模块的应用程序接口(Application Programming Interface,API),获取服务器集群13中对应服务器节点返回的校验数据,对初始查询结果进行验证,以获取目标查询结果,其中,在验证不通过时可以重新进行语句转换和查询操作,直到验证通过,得到目标查询结果。
图2为本申请实施例提供的一种数据库查询方法的流程示意图一,如图2所示,本申请的实施例提供了一种数据库查询方法,对方法进行详细描述,如下:
S201、获取自然语言查询语句,并根据自然语言查询语句的语义,将自然语言查询语句分解为至少两个子查询语句。
本申请实施例提供的数据库查询方法的执行主体可以为计算设备,也可以为设置在计算设备中的处理器。例如,计算设备可以为图1中所示的目标服务器。例如,计算设备中的处理器可以为目标服务器中的CPU。为便于理解,在下文中,以执行主体为计算设备为例进行说明。
自然语言查询语句为用户输入的,用于获取查询结果的语句。子查询语句为对自然语言查询语句进行分解后得到的查询语句,不同的子查询语句对应不同的查询内容。
自然语言查询语句可能涉及到集群管理平台中的多个业务或功能模块。可以通过大语言模型将自然语言查询语句进行语义分析,得到至少两个子查询语句,每个子查询语句所要查询的内容分别存储于对应的数据库中。
得到子查询语句后,可以根据背景信息,使用大语言模型对子查询语句转换为能够直接在数据库中执行查询操作的SQL查询语句,背景信息包括数据库名、表名、表结构等。当自然查询语言涉及多个数据库时,背景信息的数量会很多,若直接使用大语言模型对自然语言查询语句进行转换,容易由于输入大语言模型的Tokens过长或者误导大语言模型,因此本申请中按照数据库对自然语言查询语句进行分解,使得子查询语句的背景信息只包括对应数据库的相关信息,从而提高SQL查询语句的转换准确率。
S202、获取针对集群管理平台的至少两个子查询语句对应的初始查询结果。
其中,集群管理平台包括至少两个功能模块,功能模块用于管理集群管理平台中的服务器节点。
可以通过在数据库中执行子查询语句对应的SQL查询语句获取初始查询结果。例如,可以使用大语言模型将子查询语句转换为SQL查询语句,通过在数据库中执行SQL查询语句获取查询结果。
其中,每个子查询语句对应一个独立的数据库,大语言模型可以根据背景信息对子查询语句进行转换,得到每个子查询语句对应的SQL查询语句。
初始查询结果为通过执行至少两个子查询语句对应的SQL查询语句获得的结果,例如,初始查询结果中至少包括子查询语句A对应的查询结果以及子查询语句B对应的查询结果。
在获取至少两个子查询语句对应的查询结果时,针对各子查询语句的查询操作可以并行进行,以提高查询效率。在所有子查询语句的查询操作均完成后,将包括每个子查询语句的查询结果的集合确定为初始查询结果。
S203、根据初始查询结果,分别调用对应的功能模块的应用程序接口,获取校验数据。
集群管理平台中各功能模块分别预设有对应的API接口,每个API接口有对应的描述,用于指示其对应的数据库及数据库中存储的数据,如API接口1对应资产清单数据库,其中存储的数据包括所有服务器、虚拟机、数据库实例的IP地址、主机名、规格配置等;如API接口2对应账户数据库,其中存储的数据包括用户账号、角色以及访问权限等。API接口具有响应速度快、功能简单明确的特点。
在一种可能的实现方式中,可以根据初始查询结果中数据的数据类型,判断初始查询结果对应的API接口,并通过该API接口获取校验数据,校验数据为与初始查询结果相对应的,从服务器集群的服务器节点中获取的数据。其中,数据类型即数据库中存储的具体数据,例如,资产清单数据类型、账户数据类型、监控数据类型等。当初始查询数据对应物理机A的CPU资源使用情况时,校验数据可以包括如物理机A当前时刻的CPU利用率、物理机A在过去某一时刻的CPU利用率等。
初始查询结果中包括了至少两个子查询语句对应的子查询结果,针对所有的子查询结果,可以同时调用每个子查询结果对应的功能模块的应用程序接口,获取校验查询结果,校验查询结果中包括了从各个应用程序接口获得的数据。
示例性地,可以通过如下方式获取校验数据:同时确定每一个子查询结果与功能模块对应的数据之间的第一相似度;根据第一相似度在功能模块中确定至少两个目标功能模块;分别调用至少两个目标功能模块的应用程序接口,获取校验数据。
具体地,初始查询结果中的多个子查询结果对应多个数据库,因此,针对不同的子查询结果,可以分别确定各子查询结果对应的目标功能模块,从而在功能模块中确定至少两个目标功能模块。针对任意一个子查询结果,可以通过计算子查询结果中的数据分别与各个功能模块对应的数据之间的第一相似度,在多个功能模块中确定该子查询结果对应的目标功能模块,第一相似度可以通过计算余弦相似度或欧氏距离等方式确定,对于任意一个子查询结果,选择第一相似度最高的功能模块作为目标功能模块。例如,初始查询结果中包括了子查询结果a和子查询结果b,子查询结果a为针对物理机A中账号信息的查询结果,子查询结果b为针对物理机A中资源使用情况的查询结果,经过相似度对比,账号信息的查询结果与用户管理模块对应的数据的第一相似度最高,资源使用情况的查询结果与节点资源模块对应的数据的第一相似度最高,则将用户管理模块和节点资源模块确定为目标功能模块。
上述方法中,通过相似度计算确定与初始查询结果相关的功能模块,能够确保校验数据与初始查询结果的强关联性,避免使用不相关数据进行验证导致的误判,提升验证结果的有效性。进一步地,通过同时调用多个目标功能模块的应用程序接口,能够提高查询效率,特别是在复杂查询场景下,当自然语言查询语句涉及的数据库较多时,通过同时在多个数据库中执行查询操作并调用对应的目标功能模块获取校验数据,提高复杂查询场景下的查询效率。
S204、根据校验数据对初始查询结果进行验证,得到目标验证结果,并根据目标验证结果确定目标查询结果。
可以通过对比校验数据和初始查询结果是否相同,得到目标验证结果,目标验证结果可以包括验证通过和验证不通过,例如,当校验数据和初始查询结果超过预设比例的数据相同时,确定目标验证结果为验证通过,否则为验证不通过。校验数据和初始查询结果中包括多个子查询语句对应的数据,对比时分别将校验数据中每一个子查询语句对应的数据,与子查询结果进行对比,预设比例如50%,即当有超过50%的子查询语句对应的校验数据与子查询结果相同时,目标验证结果为验证通过。
下面以一个具体的示例介绍确定目标验证结果的过程:将自然语言查询语句分解为2个子查询语句,分别为子查询语句1和子查询语句2,对应的初始查询结果中包括子查询结果1(对应子查询语句1)和子查询结果2(对应子查询语句2),子查询结果1对应的API接口为API1,子查询结果2对应的API接口为API2,通过调用API1和API2获取到校验数据,其中,校验数据中包括了针对子查询结果1的子校验数据1和针对子查询结果2的子校验数据2。在进行验证时,预设比例为50%,针对子查询语句1,判断子查询结果1与子校验数据1是否相同,对于子查询语句2,判断子查询结果2与子校验数据2是否相同,当子查询语句1和子查询语句2的判断结果中至少有一个相同时,即预设比例达到50%,目标验证结果为通过,否则目标验证结果为不通过。
示例性地,可以通过如下方式得到目标验证结果:根据实时数据对初始查询结果进行验证,得到第一验证结果;根据历史数据对初始查询结果进行验证,确定第二验证结果;当第一验证结果或第二验证结果为验证通过时,目标验证结果为验证通过;当第一验证结果和第二验证结果为验证不通过时,目标验证结果为验证不通过。
实时数据和历史数据均为通过功能模块的API接口获取的,实时数据为在当前时刻下服务器节点的相关数据,如当前时刻物理机A的资源利用率;历史数据为在预设的历史时刻下或时间段内服务器节点的相关数据,如一小时前物理机A的资源利用率。其中,历史时刻可以根据数据库的更新周期或者自然语言查询语句确定。
具体地,当自然语言查询语句需要查询当前时刻的相关数据时,由于数据库不是实时更新的,所以如果仅使用实时数据对初始查询结果进行验证,可能导致验证不准确,因此可以选择使用历史时刻的数据对初始查询结果进行辅助验证,以提高验证结果的准确性。进一步的,当自然语言查询语句需要查询某一时间段内或过去某一时刻的数据时,可以选择相对应时刻的历史数据对初始查询结果进行验证。
上述方法中,通过结合实时数据和历史数据对初始查询结果进行验证,能够避免因数据库中数据未及时更新导致的误判,同时对于不同业务场景,如实时监控、历史统计等的查询结果都能进行全面验证,能够提升验证的覆盖度和验证结果的可靠性。
示例性地,可以通过如下方式得到第一验证结果和第二验证结果:在初始查询结果中确定与实时数据相同的第一验证数据,当第一验证数据在初始查询结果中所占的比例超过第一阈值时,将第一验证结果确定为验证通过,否则为验证不通过;在初始查询结果中确定与历史数据相同的第二验证数据,当第二验证数据在初始查询结果中所占的比例超过第二阈值时,将第二验证结果确定为验证通过,否则为验证不通过。
其中,第一阈值和第二阈值为提前设置的,可以相同也可以不同,例如都为50%。第一验证数据为初始查询结果中与实时数据相同的数据,第二验证数据为初始查询结果中与历史数据相同的数据。第一验证结果和第二验证结果的确定方式与上述通过对比校验数据和初始查询结果是否相同,得到目标验证结果的方式相似,此处不再赘述。
上述方法中,通过量化阈值设定,为验证结果提供明确、客观的判定标准,避免人工判断或模糊标准导致的验证不一致,保证验证流程的规范性。
进一步地,当目标验证结果为验证通过时,将初始查询结果确定为目标查询结果;当目标验证结果为验证不通过时,重新对自然语言查询语句进行分解,以确定新的查询结果并进行验证,直到目标验证结果为验证通过时,将对应的查询结果确定为目标查询结果。
当目标验证结果为验证通过时可以直接将初始查询结果确定为目标查询结果,当目标验证结果为验证不通过时,表示初始查询结果有误,需要返回至步骤S201调整分解策略或SQL查询语句后,重新获取查询结果,直到验证通过,将此时的查询结果确定为目标查询结果。
上述方法中,通过在验证不通过时重新进行分解和语句转换操作,形成查询、验证、优化的闭环机制,能够修正查询过程中的偏差,提升目标查询结果的准确率。
本申请实施例提供的数据库查询方法,通过将用户输入的自然语言查询语句分解为子查询语句,分别获取子查询语句对应的初始查询结果,能够避免因自然语言查询语句涉及多个数据库时导致的初始查询结果准确率低的问题;通过调用集群管理平台中功能模块的应用程序接口,获取校验数据,并根据校验数据对初始查询结果进行验证,增加对查询结果的验证机制,能够进一步提高查询结果的准确率。
图3为本申请实施例提供的一种数据库查询方法的流程示意图二,如图3所示,方法包括:
S301、获取目标数据库的背景信息。
目标数据库为集群管理平台中的数据库实例,目标数据库包括多个,不同的目标数据库中存储有不同类型的数据。背景信息用于指示目标数据库的基本信息和与目标数据库相关的查询语句,基本信息例如目标数据库的名称、对目标数据库中存储的内容的描述、表名、表结构等;与目标数据库相关的查询语句为提前设置的,可以是根据目标数据库中所存储的内容生成的,也可以是在目标数据库中执行过查询操作的历史查询语句,该查询语句可以包括自然语言形式的语句以及其对应的SQL形式的语句。
示例性地,背景信息可以包括第一信息和第二信息,可以通过如下方式获取目标数据库的背景信息:对目标数据库的基本信息进行向量化处理,确定第一信息,其中,基本信息用于指示目标数据库的数据库描述和表结构;对预设查询语句对进行向量化处理,确定第二信息,其中,预设查询语句对为与目标数据库相关的自然语言问题描述及对应的SQL查询语句。
目标数据库的基本信息例如目标数据库的名称、对目标数据库中存储的内容的描述、表名、表结构等,对基本信息进行向量化处理得到第一信息。预设查询语句对为经过验证的、与目标数据库相关的自然语言查询语句及其对应的SQL查询语句,对预设查询语句对进行向量化处理得到第二信息。
上述方法中,将第一信息中包括的非结构化或半结构化信息转化为大语言模型可高效检索、理解的向量形式,通过对预设查询语句对的向量化,建立业务需求(自然语言)与查询实现(SQL)的语义映射,为后续子的查询匹配、SQL查询语句生成提供标准化、结构化的基础数据,避免大语言模型因信息格式混乱无法精准调用数据库知识,提升信息检索与利用效率。
S302、根据背景信息,为目标数据库创建相应的子系统,子系统中部署有第一大语言模型。
每个目标数据库分别对应一个子系统,每个子系统中记录有对应的背景信息,每个子系统中分别部署有一个预设的第一大语言模型,子系统用于通过第一大语言模型将子查询语句转换为SQL查询语句,并执行查询操作。各子系统可以并行执行,例如子系统A对子查询语句A的查询操作,以及子系统B对子查询语句B的查询操作可以同时执行。第一大语言模型为能够对子查询语句进行分析,并将子查询语句转换为SQL查询语句的深度学习模型,第一大语言模型可以是经过训练的、已有的LLM模型,如生成式预训练Transformer模型(Generative Pre-trained Transformer,GPT)等,本申请实施例对此不做具体限制。第一大语言模型用于根据背景信息中所包含的数据库名、表名、表结构等信息将子查询语句转换为SQL查询语句。
S303、获取自然语言查询语句,根据背景信息,使用第二大语言模型对自然语言查询语句进行分解,得到至少一个子查询语句,并将子查询语句分配至对应的子系统。
第二大语言模型可以是经过训练的、已有的LLM模型,如GPT等,本申请实施例对此不做具体限制。第二大语言模型为与第一大语言模型不同的模型,第二大语言模型用于对自然语言查询语句进行分解,第二大语言模型可以根据背景信息中所包含的数据库名、表名、表结构等信息,确定自然语言查询语句所涉及的目标数据库,并根据目标数据库对自然语言查询语句进行分解,得到至少一个子查询语句,每个子查询语句要查询的内容唯一存储于一个目标数据库中,然后将子查询语句分配至对应的子系统,以使子系统在对应的目标数据库中获取查询结果。
S304、通过子系统中的第一大语言模型将子查询语句转换为SQL查询语句,并执行查询操作,得到子查询语句对应的初始查询结果。
可以通过背景信息中所包含的数据库名、表名、表结构等信息,确定构建SQL查询语句所需的信息,然后将子查询语句转换为SQL查询语句。
在一种可能的实现方式中,可以通过背景信息中包含的预设查询语句对,对SQL查询语句进行优化。预设查询语句对为经过验证的查询语句对,可以通过其给出构建SQL查询语句的标准示例,指导第一大语言模型生成准确性更高的SQL查询语句。
在一种可能的实现方式中,可以通过背景信息中包含的预设查询语句对,直接确定SQL查询语句。当检测到子查询语句与预设查询语句对中的查询语句相同,或其查询的内容相同时,可以直接将预设查询语句对中的查询语句对应的SQL查询语句确定为子查询语句对应的SQL查询语句,以提升查询效率。
示例性地,可以通过如下方式将子查询语句转换为SQL查询语句:对子查询语句进行向量化处理,得到子查询向量;计算子查询向量与第一信息之间的第二相似度,并将第二相似度大于第三阈值的第一信息确定为第一目标信息;确定子查询向量与第二信息之间的第三相似度,并将第三相似度大于第四阈值的第二信息确定为第二目标信息;根据第一目标信息和第二目标信息,使用第一大语言模型将子查询语句转换为SQL查询语句。
第三阈值和第四阈值为提前设置的,用于在第一信息和第二信息中筛选出与子查询语句相关的向量数据,第三阈值和第四阈值可以相同也可以不同。第二相似度和第三相似度可以通过计算余弦相似度或欧氏距离等方法确定。
第一目标信息为与子查询语句相关的背景信息,用于指示生成子查询语句对应的SQL查询语句时需要用到的信息,如数据库名、表名、表之间的依赖关系;第二目标信息为与子查询语句相关的查询语句对,用于指导第一大语言模型优化SQL查询语句或者直接确定SQL查询语句。
针对每一个子查询语句,分别将其转换为对应的SQL查询语句,并在其对应的子系统中执行查询操作,得到初始查询结果,即初始查询结果中包括多个子查询语句对应的查询结果。
上述方法中,通过相似度计算精准筛选出与子查询语句高度相关的背景信息,避免大语言模型输入Tokens过长或被无关信息误导,同时能让大语言模型聚焦子查询语句对应的业务场景和数据库规则,减少SQL查询语句的语法错误和逻辑偏差,提高SQL查询语句生成的准确性和效率。
S305、根据初始查询结果,分别调用对应的功能模块的应用程序接口,获取校验数据。
S306、根据校验数据对初始查询结果进行验证,得到目标验证结果,并根据目标验证结果确定目标查询结果。
可选地,可以将经过验证的初始查询结果及自然语言查询语句增加至背景信息中,更新背景信息的预设查询语句对,进一步提升查询的准确率。
进一步地,可以将目标查询结果返回给第二大语言模型,通过第二大语言模型将目标查询结果进行整理,转化为表格、图片等容易阅读的形式返回给用户,供用户查阅。
示例性地,S305和S306可以通过如下方式实现:调用集群管理平台中功能模块的应用程序接口,获取实时数据,实时数据为在当前时刻功能模块中与初始查询结果相关的数据;调用集群管理平台中功能模块的应用程序接口,获取历史数据,历史数据为在预设的历史时刻功能模块中与初始查询结果相关的数据;对实时数据与初始查询结果进行对比,得到第一验证结果,当第一验证结果为验证通过时,确定目标验证结果为验证通过;当第一验证结果为验证不通过时,对历史数据与初始查询结果进行对比,得到第二验证结果,当第二验证结果为验证通过时,确定目标验证结果为验证通过;当第二验证结果为验证不通过时,确定目标验证结果为验证不通过。
本申请实施例提供的数据库查询方法,针对集群管理平台多数据库、多功能模块的复杂场景,将跨库复杂查询拆解为单个数据库的针对性查询,避免跨库多表联合查询的语法复杂度和数据冗余;同时,通过子系统的第一大语言模型,结合数据库背景信息生成SQL查询语句,让SQL查询语句更贴合对应数据库的表结构和业务规则,降低跨数据库查询的难度,提升查询操作的针对性和整体执行效率。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
图4为本申请实施例提供的一种数据库查询方法流程示意图三。如图4所示,首先通过问题分解将自然语言查询语句分解为多个子查询语句(图中以三个子查询语句为例),并确定每个子查询任务对应的子系统,如子系统一至子系统三,其中,子查询任务即子查询语句对应的查询任务。通过各子系统获取初始查询结果,然后通过验证系统对初始查询结果进行验证,若验证通过,则将初始查询结果确定为目标查询结果,若验证未通过,则重新回到问题分解步骤,直到验证通过,得到目标查询结果。其中,各子系统的处理流程包括:根据与数据库有关的背景信息和用户问题(即自然语言查询语句)生成系统提示词,第一大语言模型根据系统提示词生成SQL查询语句,然后在对应的目标数据库中执行SQL查询语句,得到初始查询结果。
图5为本申请实施例提供的数据库查询装置的结构示意图。如图5所示,本申请的实施例还提供了一种数据库查询装置50,包括:
第一获取模块501,用于获取自然语言查询语句,并根据自然语言查询语句的语义,将自然语言查询语句分解为至少两个子查询语句 ;
第二获取模块502,用于获取针对集群管理平台的至少两个子查询语句对应的初始查询结果,其中,集群管理平台包括至少两个功能模块,功能模块用于管理集群管理平台中的服务器节点;
第三获取模块503,用于根据初始查询结果,分别调用对应的功能模块的应用程序接口,获取校验数据,校验数据用于表征集群管理平台中服务器节点的资源状态;
确定模块504,用于根据校验数据对初始查询结果进行验证,得到目标验证结果,并根据目标验证结果确定目标查询结果。
在一种可能的实现方式中,第三获取模块503具体用于:
同时确定每一个子查询结果与功能模块对应的数据之间的第一相似度;
根据第一相似度在功能模块中确定至少两个目标功能模块;
分别调用至少两个目标功能模块的应用程序接口,获取校验数据。
在一种可能的实现方式中,确定模块504具体用于:
根据实时数据对初始查询结果进行验证,得到第一验证结果;
根据历史数据对初始查询结果进行验证,确定第二验证结果;
当第一验证结果或第二验证结果为验证通过时,得到目标验证结果为验证通过,当第一验证结果和第二验证结果为验证不通过时,得到目标验证结果为验证不通过。
在一种可能的实现方式中,确定模块504还用于:
在初始查询结果中确定与实时数据相同的第一验证数据,当第一验证数据在初始查询结果中所占的比例超过第一阈值时,将第一验证结果确定为验证通过,否则为验证不通过;
在初始查询结果中确定与历史数据相同的第二验证数据,当第二验证数据在初始查询结果中所占的比例超过第二阈值时,将第二验证结果确定为验证通过,否则为验证不通过。
在一种可能的实现方式中,确定模块504还用于:
当目标验证结果为验证通过时,将初始查询结果确定为目标查询结果;
当目标验证结果为验证不通过时,重新对自然语言查询语句进行分解,以确定新的查询结果并进行验证,直到目标验证结果为验证通过时,将对应的查询结果确定为目标查询结果。
在一种可能的实现方式中,第一获取模块501具体用于:
获取目标数据库的背景信息,背景信息用于指示目标数据库的基本信息和与目标数据库相关的查询语句;
根据背景信息,为目标数据库创建相应的子系统,子系统中部署有第一大语言模型,第一大语言模型用于将子查询语句转换为SQL查询语句;
获取自然语言查询语句,根据背景信息,使用第二大语言模型对自然语言查询语句进行分解,得到至少两个子查询语句,其中,第二大语言模型为与第一大语言模型不同的模型,第二大语言模型用于对自然语言查询语句进行分解。
在一种可能的实现方式中,第二获取模块502具体用于:
将子查询语句分配至对应的子系统;
通过子系统中的第一大语言模型将子查询语句转换为SQL查询语句,并执行查询操作,得到子查询语句对应的初始查询结果。
在一种可能的实现方式中,第一获取模块501还用于:
对目标数据库的基本信息进行向量化处理,确定第一信息,其中,基本信息用于指示目标数据库的数据库描述和表结构;
对预设查询语句对进行向量化处理,确定第二信息,其中,预设查询语句对为与目标数据库相关的自然语言问题描述及对应的SQL查询语句。
在一种可能的实现方式中,第二获取模块502还用于:
对子查询语句进行向量化处理,得到子查询向量;
计算子查询向量与第一信息之间的第二相似度,并将第二相似度大于第三阈值的第一信息确定为第一目标信息;
确定子查询向量与第二信息之间的第三相似度,并将第三相似度大于第四阈值的第二信息确定为第二目标信息;
根据第一目标信息和第二目标信息,使用第一大语言模型将子查询语句转换为SQL查询语句。
图6为本申请提供的电子设备的结构示意图。如图6所示,本实施例提供的电子设备60包括:至少一个处理器601和存储器602。可选地,该电子设备60还包括通信部件603。其中,处理器601、存储器602以及通信部件603通过总线连接。
在具体实现过程中,至少一个处理器601执行存储器602存储的计算机执行指令,使得至少一个处理器601执行上述的数据库查询方法实施例。
处理器601的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
在上述的实施例中,应理解,处理器可以是中央处理单元(Central ProcessingUnit,简称:CPU),还可以是其他通用处理器、数字信号处理器(Digital SignalProcessor,简称:DSP)、专用集成电路(Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速存储器(Random Access Memory,RAM),也可能还包括非易失性存储器(Non-volatile Memory,NVM),例如至少一个磁盘存储器。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一种数据库查询方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本申请的实施例还提供了一种计算机程序产品,上述计算机程序产品包括计算机程序,计算机程序被处理器执行时实现上述任一种数据库查询方法实施例中的步骤。
本申请的实施例还提供了另一种计算机程序产品,包括非易失性计算机可读存储介质,非易失性计算机可读存储介质存储计算机程序,计算机程序被处理器执行时实现上述任一种数据库查询方法实施例中的步骤。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上对本申请所提供的一种数据库查询进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只适用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (8)
1.一种数据库查询方法,其特征在于,包括:
获取自然语言查询语句,并根据所述自然语言查询语句的语义,将所述自然语言查询语句分解为至少两个子查询语句;
获取针对集群管理平台的至少两个所述子查询语句对应的初始查询结果,其中,所述集群管理平台包括至少两个功能模块,所述功能模块用于管理集群管理平台中的服务器节点;
根据所述初始查询结果,分别调用对应的功能模块的应用程序接口,获取校验数据,所述校验数据为从服务器集群的服务器节点中获取的、与所述初始查询结果相对应的数据,所述初始查询结果中数据的数据类型包括资产清单数据类型、账户数据类型、监控数据类型;
根据所述校验数据对所述初始查询结果进行验证,得到目标验证结果,并根据所述目标验证结果确定目标查询结果;
所述初始查询结果中包括至少两个子查询结果,所述子查询结果与所述子查询语句一一对应,所述根据所述初始查询结果,分别调用对应的功能模块的应用程序接口,获取校验数据,包括:
同时确定每一个所述子查询结果与所述功能模块对应的数据之间的第一相似度;
根据所述第一相似度在所述功能模块中确定至少两个目标功能模块;
分别调用所述至少两个目标功能模块的应用程序接口,获取校验数据;
所述校验数据包括实时数据和历史数据,所述根据所述校验数据对所述初始查询结果进行验证,得到目标验证结果,包括:
根据所述实时数据对所述初始查询结果进行验证,得到第一验证结果;
根据所述历史数据对所述初始查询结果进行验证,得到第二验证结果;
当所述第一验证结果或所述第二验证结果为验证通过时,所述目标验证结果为验证通过,当所述第一验证结果和所述第二验证结果为验证不通过时,所述目标验证结果为验证不通过。
2.根据权利要求1所述的数据库查询方法,其特征在于,所述根据所述实时数据对所述初始查询结果进行验证,得到第一验证结果,包括:
在所述初始查询结果中确定与所述实时数据相同的第一验证数据,当所述第一验证数据在所述初始查询结果中所占的比例超过第一阈值时,将所述第一验证结果确定为验证通过,否则为验证不通过;
所述根据所述历史数据对所述初始查询结果进行验证,确定第二验证结果,包括:
在所述初始查询结果中确定与所述历史数据相同的第二验证数据,当所述第二验证数据在所述初始查询结果中所占的比例超过第二阈值时,将所述第二验证结果确定为验证通过,否则为验证不通过。
3.根据权利要求1所述的数据库查询方法,其特征在于,所述根据所述目标验证结果确定目标查询结果,包括:
当所述目标验证结果为验证通过时,将所述初始查询结果确定为目标查询结果;
当所述目标验证结果为验证不通过时,重新对所述自然语言查询语句进行分解,以确定新的查询结果并进行验证,直到目标验证结果为验证通过时,将对应的查询结果确定为目标查询结果。
4.根据权利要求1所述的数据库查询方法,其特征在于,所述获取自然语言查询语句,并根据所述自然语言查询语句的语义,将所述自然语言查询语句分解为至少两个子查询语句,包括:
获取目标数据库的背景信息,所述背景信息用于指示所述目标数据库的基本信息和与所述目标数据库相关的查询语句;
根据所述背景信息,为所述目标数据库创建相应的子系统,所述子系统中部署有第一大语言模型,所述第一大语言模型用于将子查询语句转换为SQL查询语句;
获取自然语言查询语句,根据所述背景信息,使用第二大语言模型对所述自然语言查询语句进行分解,得到至少两个子查询语句,其中,所述第二大语言模型为与所述第一大语言模型不同的模型,所述第二大语言模型用于对自然语言查询语句进行分解。
5.根据权利要求4所述的数据库查询方法,其特征在于,所述获取针对集群管理平台的至少两个所述子查询语句对应的初始查询结果,包括:
将所述子查询语句分配至对应的子系统;
通过所述子系统中的第一大语言模型将所述子查询语句转换为SQL查询语句,并执行查询操作,得到所述子查询语句对应的初始查询结果。
6.根据权利要求5所述的数据库查询方法,其特征在于,所述背景信息包括第一信息和第二信息,所述获取目标数据库的背景信息,包括:
对目标数据库的基本信息进行向量化处理,确定所述第一信息,其中,所述基本信息用于指示所述目标数据库的数据库描述和表结构;
对预设查询语句对进行向量化处理,确定所述第二信息,其中,预设查询语句对为与所述目标数据库相关的自然语言问题描述及对应的SQL查询语句。
7.根据权利要求6所述的数据库查询方法,其特征在于,所述通过所述子系统中的第一大语言模型将所述子查询语句转换为SQL查询语句,包括:
对所述子查询语句进行向量化处理,得到子查询向量;
计算所述子查询向量与所述第一信息之间的第二相似度,并将第二相似度大于第三阈值的第一信息确定为第一目标信息;
确定所述子查询向量与所述第二信息之间的第三相似度,并将第三相似度大于第四阈值的第二信息确定为第二目标信息;
根据所述第一目标信息和所述第二目标信息,使用第一大语言模型将所述子查询语句转换为SQL查询语句。
8.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述数据库查询方法的步骤。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202511553202.3A CN121029810B (zh) | 2025-10-28 | 2025-10-28 | 数据库查询方法及电子设备 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202511553202.3A CN121029810B (zh) | 2025-10-28 | 2025-10-28 | 数据库查询方法及电子设备 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN121029810A CN121029810A (zh) | 2025-11-28 |
| CN121029810B true CN121029810B (zh) | 2026-01-27 |
Family
ID=97770786
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202511553202.3A Active CN121029810B (zh) | 2025-10-28 | 2025-10-28 | 数据库查询方法及电子设备 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN121029810B (zh) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113191852A (zh) * | 2021-05-19 | 2021-07-30 | 拉扎斯网络科技(上海)有限公司 | 数据校验方法及装置、存储介质、计算机设备 |
| CN114416441A (zh) * | 2021-12-06 | 2022-04-29 | 浙江中控技术股份有限公司 | 实时数据库自动化测试方法、系统、电子设备及存储介质 |
| CN120723807A (zh) * | 2025-08-28 | 2025-09-30 | 北京肿瘤医院(北京大学肿瘤医院) | 基于大语言模型的Text2SQL医疗数据处理方法和电子设备 |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115982230A (zh) * | 2022-12-09 | 2023-04-18 | 中国平安财产保险股份有限公司 | 数据库的跨数据源查询方法、系统、设备及存储介质 |
| US20240338393A1 (en) * | 2023-04-06 | 2024-10-10 | Nec Laboratories America, Inc. | Interactive semantic document mapping and navigation with meaning-based features |
| CN120235237A (zh) * | 2023-12-27 | 2025-07-01 | 杭州阿里云飞天信息技术有限公司 | 信息推理方法、系统和电子设备 |
| CN120147034A (zh) * | 2025-02-27 | 2025-06-13 | 上海尚诚消费金融股份有限公司 | 数据处理方法、处理系统、电子设备、存储介质及产品 |
-
2025
- 2025-10-28 CN CN202511553202.3A patent/CN121029810B/zh active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113191852A (zh) * | 2021-05-19 | 2021-07-30 | 拉扎斯网络科技(上海)有限公司 | 数据校验方法及装置、存储介质、计算机设备 |
| CN114416441A (zh) * | 2021-12-06 | 2022-04-29 | 浙江中控技术股份有限公司 | 实时数据库自动化测试方法、系统、电子设备及存储介质 |
| CN120723807A (zh) * | 2025-08-28 | 2025-09-30 | 北京肿瘤医院(北京大学肿瘤医院) | 基于大语言模型的Text2SQL医疗数据处理方法和电子设备 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN121029810A (zh) | 2025-11-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10853396B2 (en) | Intelligent natural language query processor | |
| JP7730698B2 (ja) | デジタルツインおよびグラフベース構造を用いたコンピュータ実装システムおよび方法 | |
| CN118981475B (zh) | 基于大模型的sql语句生成方法及装置 | |
| US10572881B2 (en) | Applying entity search techniques to expedite entitlement resolution in support services | |
| CN119759598B (zh) | 基于大模型意图感知的算力网络资源智能调度方法 | |
| CN116974554A (zh) | 代码数据处理方法、装置、计算机设备和存储介质 | |
| CN120631919B (zh) | 基于大模型和mcp协议的内生安全数据库查询方法及装置 | |
| CN119357376A (zh) | 基于知识图谱和向量的混合检索方法、装置、设备及存储介质 | |
| CN119293192A (zh) | 基于用户权限分离的智能对话方法及相关装置 | |
| CN115269862A (zh) | 一种基于知识图谱的电力问答与可视化系统 | |
| CN118606438A (zh) | 数据分析方法、装置、计算机设备、可读存储介质和程序产品 | |
| KR20210034547A (ko) | 다중 소스 타입 상호운용성 및/또는 정보 검색 최적화 | |
| US11953979B2 (en) | Using workload data to train error classification model | |
| CN120085843B (zh) | 基于大模型技术生成软件的方法、装置、介质及电子设备 | |
| US20250110977A1 (en) | System and method for generating an executable data query | |
| CN121029810B (zh) | 数据库查询方法及电子设备 | |
| CN120578594A (zh) | 一种测试用例的生成方法、装置、电子设备及存储介质 | |
| CN119719300A (zh) | 一种基于llm的多云存储意图分解优化方法、系统和装置 | |
| CA3256236A1 (en) | System and method for saas data control platform | |
| US12393852B2 (en) | Machine learning for categorizing text | |
| KR102324196B1 (ko) | 지식 베이스 보강을 위한 시스템 및 방법 | |
| US12530649B2 (en) | Compositional construction of digital twins | |
| CN120832889B (zh) | 语义解析模型的增强应用方法、装置、设备及存储介质 | |
| CN116383883B (zh) | 一种基于大数据的数据管理权限处理方法及系统 | |
| EP4657240A1 (en) | Infrastructure-as-code validation with language models |
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 |