基于表关系识别的PostgreSQL数据库查询语句生成方法及设备与流程

摘要: 本技术涉及电数字数据处理,具体涉基于表关系识别的postgresql数据库查询语句生成方法及设备。背景技术:1、当前多数企业的核心业务系统通常采用第三方外包开发...
基于表关系识别的PostgreSQL数据库查询语句生成方法及设备与流程

本技术涉及电数字数据处理,具体涉基于表关系识别的postgresql数据库查询语句生成方法及设备。

背景技术:

1、当前多数企业的核心业务系统通常采用第三方外包开发模式,随着postgresql数据库在企业级业务系统中的广泛应用,大量第三方开发的业务系统为提升性能与灵活性,普遍不设置显式外键约束,这就导致数据库表间关联关系不透明,企业难以自主获取完整数据结构,当企业进行报表开发、数据分析等工作时,必须向原厂商提出相应需求,在提高使用成本的同时,也大大增加了业务响应周期,严重制约企业数据自主化能力和业务响应速度。

技术实现思路

1、为了解决上述问题,本技术提出了基于表关系识别的postgresql数据库查询语句生成方法及设备,包括:

2、基于postgresql数据库的标准化元数据,提取所述postgresql数据库中的显式外键关系,并对不存在显式外键关联的数据表进行表间关系推断,以得到候选关系列表,以及所述候选关系列表中包含的各候选关系对应的可信度;

3、根据所述可信度,对所述候选关系和所述显式外键关系进行分级处理,以得到对应的可信度等级;

4、基于所述可信度等级,将满足预设可信要求的候选关系持久化存储为关系图数据,并生成所述数据表对应的向量索引;

5、将用户输入的查询语句转换为查询向量,基于所述向量索引,查询所述数据表中与所述查询向量相匹配的候选表,并根据所述关系图数据对所述候选表进行关系扩散,以获取关联表信息;

6、基于所述关联表信息构建上下文信息,将所述查询语句和所述上下文信息输入至预设的多智能体识别引擎中,以输出所述查询语句对应的sql语句。

7、在本发明的一种实现方式中,对不存在显式外键关联的数据表进行表间关系推断,以得到候选关系列表,以及所述候选关系列表中包含的各候选关系对应的可信度,具体包括:

8、针对不存在显式外键关联的数据表,通过不同维度的推断引擎,对所述数据表之间的表间关联特征进行全量推断,以输出对应的候选关系以及所述候选关系对应的关系可信评分;其中,所述推断引擎包括规则推断引擎和模型推断引擎,所述规则推断引擎至少包括以下任意一项或多项:名称推断引擎、注释推断引擎、索引推断引擎、语义推断引擎;

9、基于各维度的推断引擎输出的候选关系,得到候选关系列表;

10、对所述候选关系列表中各候选关系对应的关系可信评分进行加权求和,得到对应的可信度。

11、在本发明的一种实现方式中,通过不同维度的推断引擎,对所述数据表之间的表间关联特征进行全量推断,以输出对应的候选关系以及所述候选关系对应的关系可信评分,具体包括:

12、通过所述名称推断引擎,根据数据表名称构建对应的表名索引,并提取数据表字段中字段名称符合预设命名规则的字段前缀,将所述字段前缀与所述表名索引进行匹配,以根据匹配结果,输出对应的第一候选关系及对应的第一关系可信评分;

13、通过所述注释推断引擎,从字段注释中提取指向性关键词,根据所述指向性关键词指向的数据表,输出对应的第二候选关系及对应的第二关系可信评分;

14、通过所述索引推断引擎,根据全部数据表的索引信息构建对应的索引字段集合,并根据所述数据表中的字段是否命中所述索引字段集合中的任一字段,输出对应的第三候选关系及对应的第三关系可信评分;

15、通过所述语义推断引擎,生成所述数据表的数据表名称和字段名称分别对应的表名向量和字段向量,针对每个数据表,计算所述数据表的字段向量与另一数据表的表名向量之间的相似度,以根据所述相似度,输出对应的第四候选关系及对应的第四关系可信评分;

16、对所述规则推断引擎推断出的候选关系所关联的数据表进行预筛选,针对预筛选出的指定数据表,通过所述模型推断引擎内置的大语言模型,输出所述指定数据表之间的第五候选关系及对应的第五关系可信评分。

17、在本发明的一种实现方式中,根据所述指向性关键词指向的数据表,输出对应的第二候选关系及对应的第二关系可信评分,具体包括:

18、确定所述指向性关键词指向的目标数据表;

19、将所述目标数据表作为索引键,将引用所述目标数据表的字段所在的源数据表作为索引值,构建所述目标数据表对应的注释映射索引;

20、针对每个数据表,判断所述数据表是否位于所述注释映射索引中,以输出对应的第二候选关系及第二关系可信评分。

21、在本发明的一种实现方式中,对所述第一候选关系、所述第二候选关系、所述第三候选关系和所述第四候选关系关联的数据表进行预筛选,具体包括:

22、针对每个候选关系,对其对应的所述第一关系可信评分、所述第二关系可信评分、所述第三关系可信评分和所述第四关系可信评分进行预加权,得到对应的预可信度;

23、在所述预可信度不超过预设的可信度阈值的情况下,筛除对应候选关系关联的若干数据表,以得到预筛选出的指定数据表。

24、在本发明的一种实现方式中,根据所述关系图数据对所述候选表进行关系扩散,以获取关联表信息,具体包括:

25、以所述候选表为起始节点,在所述关系图数据中按照预设的扩散层数进行广度优先搜索,得到与所述起始节点存在关联关系的关联表;

26、在所述广度优先搜索的过程中,根据所述关系图数据中各候选关系对应的可信度等级进行路径过滤,以保留预设可信度等级的候选关系对应的关联表;其中,所述预设可信度等级包括可信度大于第一预设可信度阈值的可信度等级;

27、将所述关联表对应的标准化元数据,以及所述候选表与所述关联表之间的关联关系,作为关联表信息。

28、在本发明的一种实现方式中,输出所述查询语句对应的sql语句之后,所述方法还包括:

29、对所述sql语句进行校验,以确定所述sql语句是否符合预设的审核规则;其中,校验包括表校验、列校验、关联校验和风险校验中的至少一种;

30、以及对所述sql语句的执行计划进行分析,以识别所述sql语句是否满足执行性能需求;

31、若否,确定所述sql语句未通过审核,并返回对应的审核信息。

32、在本发明的一种实现方式中,输出所述查询语句对应的sql语句之后,所述方法还包括:

33、接收用户对所述sql语句的反馈操作;其中,所述反馈操作至少包括以下任意一项或多项:确认操作、修改操作和忽略操作;

34、响应于所述反馈操作,确定所述关系图数据中对应的目标关系,并更新所述目标关系对应的可信度;

35、根据更新后的关系图数据,更新所述向量索引,以通过更新后的关系图数据和向量索引,生成下一查询语句对应的sql语句。

36、本技术实施例提供了基于表关系识别的postgresql数据库查询语句生成设备,所述设备包括:

37、至少一个处理器;

38、以及,与所述至少一个处理器通信连接的存储器;

39、其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上任一项所述的基于表关系识别的postgresql数据库查询语句生成方法。

40、本技术实施例提供了一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:

41、如上任一项所述的基于表关系识别的postgresql数据库查询语句生成方法。

42、通过本技术提出的基于表关系识别的postgresql数据库查询语句生成方法能够带来如下有益效果:

43、基于标准化元数据提取显式外键关系,并对无显式外键关联的数据表通过多维度推断引擎进行表间关系推断,使得企业在无真实外键约束的条件下也能自动获得完整的表间关联关系,无需再向原厂商索取数据结构。基于向量索引与关系图数据进行关系扩散和上下文构建,并通过多智能体识别引擎生成sql语句,使企业人员能够以自然语言直接查询数据库,无需依赖原厂商即可自主完成数据查询与分析,显著降低了报表开发与数据分析的成本,缩短了需求响应周期。