在 Amazon Redshift 中通过弹性直方图实现最佳性价比,以进行选择性估算 大数据博客

在 Amazon Redshift 中利用弹性直方图实现最佳的性价比

关键要点

Amazon Redshift 引入了新的选择性估计技术,利用实时统计元数据提高查询计划和性能。弹性直方图能够动态调整直方图边界,从而改善对时间列条件的选择性估计。新功能在无须用户配置的情况下默认开启,用户可直接享受查询性能的提升。

Amazon Redshift 是一款快速、可扩展且完全托管的云数据仓库,能够让用户在结构性和半结构性数据上处理复杂的 SQL 分析工作负载。它允许用户安全访问运营数据库、数据湖或第三方数据集,极大地减少数据的移动和复制。成千上万的客户利用 Amazon Redshift 处理大量数据,现代化数据分析工作负载,并为商业用户提供深入洞察。

Amazon Redshift 在数据仓库性价比方面持续领先具体参见 Amazon Redshift 持续引领性价比,Amazon Redshift:更低价格,更高性能,以及 在其他云数据仓库中获得高达 3 倍的性价比)。Amazon Redshift 的高级查询优化器在实现这一领先性能中扮演了关键角色。查询优化器负责寻找执行查询的最快方法或计划,并根据数据统计信息和查询内容计算多个不同计划的执行成本。

Amazon Redshift 内置了自动化功能来收集统计信息,称为自动分析auto analyze。自动分析是一个后台操作,自动在 Redshift 表上运行,以保持统计信息的最新。然而,统计信息收集可能会消耗大量计算资源,特别是在数据不断被输入时。因此,保持统计数据的更新变得具有挑战性。随着时间的推移,输入到 Redshift 数据仓库中的数据可能会导致统计信息变得过时,从而导致选择性估计不准确,进而形成次优的查询计划,影响查询性能。

过时统计信息的挑战

根据对 Redshift 集群分析的客户工作负载数据,我们发现统计信息的过时性在带有时间列如 DATE 和 TIMESTAMP 数据类型的谓词的选择性估计中尤其重要。这是由于以下几个原因:1在 Amazon Redshift 集群的查询中,DATE 和 TIMESTAMP 列约占谓词列的 11见图 1;2Amazon Redshift 集群查询扫描量中,有超过 40 的谓词涉及 DATE 或 TIMESTAMP 列;3客户的工作负载往往更频繁地查询近期热数据,而不是历史冷数据。以下是一个代表客户工作负载查询模式的示例,来源于行业标准的 TPCH 分析基准:

sqlSELECT FROM lineitem JOIN orders ON lorderkey = oorderkey JOIN customer ON WHERE lshipdate gt= currentdate 1 AND

解决方案概述

Amazon Redshift 在补丁版本 P183v1075379中引入了一种新的选择性估计技术,旨在通过在时间列上保持最新统计信息来改善查询计划和性能。该新技术在数据输入过程中捕获实时统计元数据,而不会增加额外的计算开销。对于带有时间列范围条件的查询,查询优化器会在运行时利用这些附加元数据来补充现有统计信息,弹性调整直方图边界,从而改善时间谓词的选择性估计。有关弹性直方图选择性估计所带来的性能提升,请参见图 2 和图 3。这一查询处理优化在默认情况下启用,无需用户进行配置更改或干预,即可享受自动优化和改善查询性能的好处。

基准评估

我们对新选择性估计技术在 TPCH 查询变体上的表现进行了评估。某个变体的查询在 lineitem、orders 和其他表之间进行多方连接,并包括对 lshipdate 的谓词。

在 Amazon Redshift 中通过弹性直方图实现最佳性价比,以进行选择性估算 大数据博客

当直方图统计信息过时时,针对 lshipdate 的谓词选择性估计不准确。这导致了一个次优的查询计划,涉及到大规模网络数据重新分配,影响了 Amazon Redshift 提供的计算资源。通过新的选择性估计技术,预测变得更加精准,产生了一个最佳查询计划,最小化了连接步骤之间结果的重新分配,带来了性能的提升,如图 2 所示。

加速器安卓下载免费

结论

在这篇文章中,我们介绍了 Redisht 数据仓库查询处理的新性能优化,以及弹性直方图统计数据如何提高选择性估计和查询计划的整体质量,即使在缺乏新鲜表统计信息的情况下。

总之,Amazon Redshift 现已通过依赖在数据输入过程中收集的元数据统计信息,提供了改进的查询性能,特别是在缺乏新鲜统计信息时的增强直方图选择性估计。这些优化默认启用,使用 Amazon Redshift 的用户将受益于更好的查询响应时间。Amazon Redshift 的使命是持续提升性能,并提升整体性价比。自修补程序版本 P183 发布以来,这一新的选择性估计增强功能已经改善了 Amazon Redshift 集群中数十万客户查询的性能。值得注意的是,这是我们不断进行的众多隐性改进之一,旨在使 Redshift 成为行业内性价比的领先者。

我们邀请您尝试 Amazon Redshift 中引入的众多新功能,以及新的性能增强。如果您希望获得更多信息,请联系您的 AWS 账户团队,要求免费咨询或 Amazon Redshift 演示。他们将非常乐意提供额外的指导和支持,帮助您选择满足业务需求的合适分析解决方案。

作者简介

Roger Kim 是 Amazon Redshift 团队的软体开发工程师,专注于查询性能和优化。他获得了康奈尔大学计算机科学与数学的学士学位。

Mohammed Alkateb 是 Amazon Redshift 的工程经理。在加入 Amazon 之前,Mohammed 在查询优化和数据库内部方面拥有 12 年的行业经验,曾担任个人贡献和工程经理。他持有 18 项美国专利,并在包括 EDBT、ICDE、SIGMOD 和 VLDB 的顶尖数据库会议上发表过多篇论文。Mohammed 在佛蒙特大学获得计算机科学博士学位,并在开罗大学获得信息系统的硕士和学士学位。

Mengchu Cai 是 Amazon Redshift 团队的首席工程师,目前致力于查询优化和数据湖查询性能。他还负责 SQL 语言特性的开发。Mengchu 在内布拉斯加州立大学林肯分校获得计算机科学与工程博士学位。

Ravi Animi 是 Amazon Redshift 团队的高级产品负责人,负责 Amazon Redshift 分析、数据和 AI 的多个职能领域,包括空间分析、流式分析、查询性能、Spark 集成和分析业务战略。他在关系数据库、多维数据库、物联网技术、存储和计算基础设施服务等方面拥有丰富的经验,最近作为初创企业创始人在 AI 和深度学习领域活跃。Ravi 在华盛顿大学圣路易斯分校获得物理学和电气工程的双学士学位,获得斯坦福大学的工程硕士学位,以及在芝加哥商学院获得的 MBA 学位。

载入评论

发表评论

订阅我们的邮箱