View a markdown version of this page

使用列统计数据优化查询性能 - AWS Glue

使用列统计数据优化查询性能

无需设置其他数据管道,即可为 Parquet、ORC、JSON、ION、CSV 和 XML 等数据格式的 AWS Glue Data Catalog 表计算列级别的统计数据。借助列统计数据,您可以深入洞察列中的值,从而了解数据特征。

Data Catalog 支持生成列值的统计数据,例如最小值、最大值、空值总数、不同值总数、值的平均长度以及 true 值的总出现次数。AWS 分析服务(例如 Amazon Redshift 和 Amazon Athena)可以使用这些列统计数据生成查询执行计划,并选择可提高查询性能的最佳计划。

生成列统计数据的场景有三种:

自动

AWS Glue 支持在目录级别自动生成列统计数据,以便它可以自动为 中的新表生成统计数据。AWS Glue Data Catalog

已计划

AWS Glue 支持计划列统计数据生成,以便它可以按照定期计划自动运行。

通过计划的统计数据计算,列统计数据任务会使用新的统计数据更新整体表级统计数据(例如最小值、最大值和平均值),从而为查询引擎提供准确、最新的统计数据来优化查询执行。

按需

使用此选项可在需要时按需生成列统计数据。这对于临时分析或在需要立即计算统计数据时非常有用。

您可以配置为使用 AWS Glue 控制台、AWS CLI 或 AWS Glue API 操作来运行列统计数据生成任务。启动该进程时,AWS Glue 将在后台启动一个 Spark 作业并更新 Data Catalog 中的 AWS Glue 表元数据。您可以使用 AWS Glue 控制台、AWS CLI 或通过调用 GetColumnStatisticsForTable API 操作来查看列统计数据。

注意

如果您使用 Lake Formation 权限来控制对表的访问权限,则列统计数据任务代入的角色需要拥有完全的表访问权限才能生成统计数据。

注意

列统计数据不支持 Iceberg v3 数据类型,包括 VARIANT、UNKNOWN、Geography 和 Geometry。在生成统计数据期间,会跳过具有这些数据类型的列。

以下视频说明了如何使用列统计信息来提高查询性能。