一种数据库语义查询的执行计划生成方法及系统与流程

摘要: 本发明涉及数据处理领域,尤其涉及一种数据库语义查询的执行计划生成方法及系统。背景技术:1、数据库与人工智能模型的融合已成为数据处理领域的重要趋势。主流商业数据库...
一种数据库语义查询的执行计划生成方法及系统与流程

本发明涉及数据处理领域,尤其涉及一种数据库语义查询的执行计划生成方法及系统。

背景技术:

1、数据库与人工智能模型的融合已成为数据处理领域的重要趋势。主流商业数据库和湖仓平台陆续提供了在sql中调用ai模型的能力,允许用户通过自定义函数或内置语义函数对文本、图像、视频等多模态数据执行分类、抽取、摘要等语义计算任务。这类能力使得开发者可以在熟悉的sql环境中直接完成原本需要独立ai服务链路的处理工作,降低了应用开发门槛。

2、然而,现有方案在将语义计算纳入数据库查询体系时仍存在显著不足。其一,语义函数通常被优化器视为普通用户自定义函数,引擎无法感知其高延迟、高成本和外部io的特征,导致无法对其进行专门的调度优化。其二,普通谓词与语义谓词混合执行,大量本可在关系层面过滤掉的数据行仍然触发了昂贵的模型调用,造成资源浪费。其三,多模态数据(如图片、视频、音频等二进制大字段)在查询扫描阶段即被全量读取和解码,即使这些行后续会被普通条件过滤淘汰,解码与传输开销已经产生。其四,模型输出的结构化结果缺乏数据库层面的类型约束校验与修复机制,输出的json或字段值可能与目标列定义不一致,影响下游数据质量。其五,多个语义操作通常被拆分为独立的模型调用,即使它们作用于同一批数据且模型配置兼容,也无法合并执行,导致重复的token消耗和网络开销。其六,语义计算隐藏在普通函数调用内部,查询计划的可解释工具无法展示模型调用次数、失败情况、资源消耗等关键指标,运维和治理缺乏可见性。

3、因此,需要一种新型的数据库语义查询的执行计划生成方法及系统,减少不必要的模型调用和多模态大字段读取。

技术实现思路

1、为了克服上述技术缺陷,本发明的目的在于提供一种数据库语义查询的执行计划生成方法及系统,提高语义计算在数据库查询计划中的可解释性、可治理性和结构化结果可用性。

2、本发明公开了一种数据库语义查询的执行计划生成方法,由数据库查询引擎执行,包括以下步骤:

3、接收包含语义函数或语义操作符的sql查询语句;

4、识别sql查询语句中的语义表达式,并为语义表达式生成语义算子元数据,语义算子元数据描述语义算子的类型、输入输出规范、模型调用配置及执行策略;

5、将sql查询语句中的普通关系表达式与语义表达式拆分为普通关系算子和逻辑语义算子,使普通谓词过滤、采样、窗口分片及限制返回数量的操作在逻辑语义算子之前执行;

6、当逻辑语义算子依赖多模态大字段数据时,在普通关系算子执行完毕后,对经过过滤后幸存的数据行所对应的多模态数据执行按需读取或解码;

7、将数据库输出类型约束或用户指定的结构模式编译为模型结构化输出约束;

8、在物理执行阶段,根据语义算子分组键将同一数据块内的多行输入合并为一次批量模型请求,并依据行标识将返回结果拆回对应的原始数据行;

9、对模型返回的结果执行结构化校验,输出sql查询结果;

10、当模型服务提供方的能力不满足语义算子元数据的要求时,根据语义算子元数据中的降级策略执行相应的降级处理。

11、优选地,多模态大字段数据包括二进制大对象、视频帧、音频片段及文档页面中的至少一种。

12、优选地,对于视频帧输入,系统根据视频流的分层索引结构定位目标帧,仅解码语义算子所需的帧,并保持sql数组顺序生成二进制大对象数组。

13、优选地,数据库输出类型约束由数据库列定义中的类型声明、空值约束、枚举约束及检查约束中的至少一种确定。

14、优选地,当模型返回的结果校验失败时,系统根据错误处理策略执行重试修复或异常行记录操作。

15、优选地,语义算子分组键由模型服务提供方标识、模型标识、提示词模板指纹及输出模式指纹确定,同一分组键下的多行输入合并为一次模型调用。

16、优选地,当同一输入数据上存在多个兼容的语义操作时,系统将多个语义操作合并为一个复合输出模式,通过一次模型调用同时返回多个结果字段,并在数据库端将多个结果字段拆分为对应的sql输出列或谓词结果。

17、优选地,降级处理根据模型服务提供方所不支持的能力类型,分别采用逐行调用、纯文本输出后校验或拒绝执行并返回错误提示。

18、优选地,还包括:在查询执行计划的可解释输出中展示语义算子的执行统计指标,执行统计指标涵盖模型调用次数、重试次数、校验失败次数及多模态数据读取量。

19、本发明还公开了一种数据库语义查询的执行计划生成系统,包括:

20、语义表达式识别模块,用于接收包含语义函数或语义操作符的sql查询语句,识别其中的语义表达式;

21、语义算子元数据模块,用于为语义表达式生成语义算子元数据,语义算子元数据描述语义算子的类型、输入输出规范、模型调用配置及执行策略;

22、计划改写模块,用于将sql查询语句中的普通关系表达式与语义表达式拆分为普通关系算子和逻辑语义算子,使普通谓词过滤、采样、窗口分片及限制返回数量的操作在逻辑语义算子之前执行;

23、多模态延迟读取模块,用于当逻辑语义算子依赖多模态大字段数据时,在普通关系算子执行完毕后,仅对经过过滤后幸存的数据行所对应的多模态数据执行按需读取或解码;

24、模式编译与校验模块,用于将数据库输出类型约束或用户指定的结构模式编译为模型结构化输出约束,并对模型返回的结果执行结构化校验;

25、数据块批处理模块,用于在物理执行阶段,根据语义算子分组键将同一数据块内的多行输入合并为一次批量模型请求,并依据行标识将返回结果拆回对应的原始数据行;

26、融合与治理模块,用于当同一输入数据上存在多个兼容的语义操作时进行融合处理,以及当模型服务提供方的能力不满足要求时执行降级处理并输出可解释的执行统计信息。

27、采用了上述技术方案后,与现有技术相比,具有以下有益效果:

28、(1)降低模型调用成本。通过将普通关系谓词前置执行,先完成可过滤的数据行淘汰,再对幸存数据触发语义算子的模型调用,避免了大量无意义的模型请求。同时,在同一数据块内根据模型配置和输入特征的分组键将多行合并为一次批量请求,进一步减少模型调用次数和网络交互开销。

29、(2)减少多模态数据的无效读取与解码。对图片、视频帧、音频等二进制大字段采用延迟读取策略,仅在普通过滤条件执行完毕、确认目标行确实需要参与语义计算后,才按需读取和解码相应的多模态数据,消除了传统方案中全量预读取造成的cpu、内存和带宽浪费。

30、(3)保障结构化输出的数据质量。将数据库列定义中的类型约束、空值约束、枚举约束和检查约束编译为模型的结构化输出规范,在模型返回后由数据库端执行二次校验与类型转换,对不符合约束的结果自动执行重试或修复,确保最终写入查询结果的数据与数据库schema严格一致。

31、(4)支持多语义操作的融合执行。当同批数据上需要执行多个语义分析任务时,系统识别兼容的操作并将其合并为一次模型调用,通过复合输出模式一次性返回多个结果字段,在数据库端拆分到对应的输出列,避免了多次重复传输相同的多模态输入数据。

32、(5)提升语义计算的可观测性与可治理性。语义算子作为查询计划中的独立物理算子存在,其执行过程在查询计划的可视化输出中提供模型调用次数、重试次数、校验失败次数、多模态数据读取量等统计指标,使开发者和运维人员能够清晰了解语义计算的资源消耗和执行状态。

33、(6)具备灵活的降级适应能力。当模型服务提供方的能力不满足语义算子的执行需求时,系统根据预设的降级策略自动调整执行方式,在保证查询可继续执行的同时记录降级事件,兼顾了可用性与治理要求。