谷歌AI团队日前推出CardBench基准测试框架

日前,谷歌AI研究团队发布了一款名为CardBench的基准测试框架,旨在降低使用学习型基数估计(Cardinality Estimation,以下简称为CE)技术进行实验的标准。

谷歌AI团队推出CardBench基准测试框架谷歌AI团队推出CardBench基准测试框架

据谷歌方面介绍,CardBench包含超过20个真实世界的数据库上的数千个查询,以及计算数据汇总统计和生成查询的脚本。与现有的CE基准相比,该基准包含了更多的数据集和训练数据,可用于实验和比较不同类型的学习型CE模型方法。


同时CardBench提供了2组训练数据集,其中一组用于具有多个筛选条件谓词的9125个单表查询,另一组则用于涉及2个表之间的8454个二进制联接查询,并且每个表都有多个过滤谓语。此外该框架还提供了一系列工具,包括能够生成真实的SQL查询,以及创建用于训练CE模型的带注释查询图。


为了展示CardBench的实际使用效果,谷歌AI研究团队在实例模型、零点模型、微调模型3种设置下训练了基于GNN(图形神经网络)和Transformer的CE模型。结果表明,零点模型难以提升准确性,尤其是在涉及联接的复杂查询中,而微调模型的表现突出,可以达到与基于实例的方法相当的准确性,并且只需使用少量样本。


以微调的GNN模型为例,其在二进制连接查询中的q-error中位数为1.32,第95百分位数为120,明显优于零点模型。值得一提的是,即使是500次查询,微调预训练模型也可以显著提高其性能,这意味着它们在训练数据有限的实际应用中适用。

谷歌AI团队推出CardBench基准测试框架

公开信息显示,CE技术对优化关系数据库的查询性能至关重要。具体而言,其是预测数据库查询将返回的中间结果数量,而这一预测会直接影响查询优化器对执行计划的选择,例如决定连接顺序、是否使用索引,以及最佳连接方法的选择。如果CE不准确,查询优化器的执行计划可能会大打折扣、导致查询速度极慢,从而严重影响数据库的整体性能。


据悉,现代数据库系统中广泛使用的传统CE技术依赖于启发式(Heuristic)方法和简化模型,例如假设数据统一和列独立。尽管这些方法的计算效率高,但往往需要精准预测复杂查询的基数,尤其是在涉及多个表和条件的情况下。而最新的数据驱动方法试图在不执行查询的情况下,对表内和表间的数据分布进行建模、从而减少消耗,但在数据发生变化时仍需要重新训练。


对此有业内人士认为,CardBench代表了学习型CE技术的重大进步,研究人员可通过这一全面、多样的基准来系统性评估和比较不同的CE模型,从而促进这一领域的进一步创新。


【本文图片来自网络】

踩(0)

最新文章

相关文章

大家都在看