注意事项和限制 - Amazon Glue
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

注意事项和限制

本节包括在 Amazon Glue Data Catalog 中使用表优化器时需要考虑的事项。

托管式数据压缩的支持的格式和限制

数据压缩支持多种用于读取和写入数据的压缩格式,例如从加密表中读取数据。

并发控制:

Apache Iceberg 支持乐观的并发控制,允许多个写入器同时执行操作。冲突在提交时进行检测并解决。使用流式处理管道时,可通过表属性和压缩设置配置适当的重试设置,以有效处理并发写入。有关详细指导,请参阅 Amazon 大数据博客中关于管理 Iceberg 表并发写入的文章:https://aws.amazon.com/blogs/big-data/manage-concurrent-write-conflicts-in-apache-iceberg-on-the-aws-glue-data-catalog/

压缩重试:

当压缩操作连续四次失败时,Amazon Glue 目录表优化功能会自动暂停优化器,以防止不必要的计算资源消耗。请先查看日志,尝试了解压缩反复失败的原因。要恢复压缩优化,您可以通过 Amazon Glue 控制台或 API 重新启用优化器。

数据压缩支持:

  • 加密 – 数据压缩仅支持默认的 Amazon S3 加密(SSE-S3)和服务器端 KMS 加密(SSE-KMS)。

  • 压缩策略:Binpack、快速排序和 Z 形排序

  • 当存储基础数据的 Amazon S3 存储桶位于另一个账户中时,您可以从数据目录所在的账户运行压缩。要实现此目的,压缩角色需要具有访问 Amazon S3 存储桶的权限。

数据压缩目前不支持:

  • 对跨账户表进行压缩 – 您无法对跨账户表进行压缩。

  • 对跨区域表进行压缩 – 您无法对跨区域表进行压缩。

  • 针对资源链接启用压缩

  • Amazon S3 Express One Zone 存储类中的表:您无法对 S3 Express One Zone Iceberg 表进行压缩。

  • Z 形排序压缩策略不支持以下数据类型:

    • 十进制

    • TimestampWithoutZone

关于快照保留和孤立文件删除优化器的注意事项

对于快照保留和孤立文件删除优化器,应注意以下几点。

  • 快照保留和孤立文件删除进程的上限为每次运行删除 1,000,000 个文件。删除已过期的快照时,如果符合删除条件的文件数量超过 1,000,000 个,则超过该阈值的所有剩余文件将继续作为孤立文件存在于表存储中。

  • 只有在满足以下两个条件时,快照保留优化器才会保留快照:要保留的最小快照数量和指定的保留期。

  • 快照保留优化器会从 Apache Iceberg 中删除过期的快照元数据,从而防止对过期快照进行时空旅行查询,并选择性删除关联的数据文件。

  • 孤立文件删除优化器会删除 Iceberg 元数据不再引用的孤立数据和元数据文件,前提是它们的创建时间早于优化器运行时设定的孤立文件删除保留期。

  • Apache Iceberg 通过分支和标签促进版本控制,这些分支和标签是指向特定快照状态的指定指针。每个分支和标签都遵循自己独立的生命周期,受其各自级别定义的保留策略的约束。Amazon Glue Data Catalog 优化器会考虑这些生命周期策略,确保遵守指定的保留规则。分支和标签级别的保留策略优先于优化器配置。

    有关更多信息,请参阅 Apache Iceberg 文档中的分支和标签部分。

  • 快照保留和孤立文件删除优化器将根据配置的参数删除符合清理条件的文件。通过在相应的存储桶上实施 S3 版本控制和生命周期策略,增强对文件删除的控制。

    有关设置版本控制和创建生命周期规则的详细说明,请参阅 https://docs.amazonaws.cn/AmazonS3/latest/userguide/Versioning.html

  • 为了正确判定孤立文件,请确保提供的表位置和任何子路径不与任何其他表或数据来源中的数据重叠,也不包含来自任何其他表或数据来源的数据。如果路径重叠,意外删除文件可能导致无法恢复的数据丢失。

调试 OversizedAllocationException 异常

要解决 OversizedAllocationException 异常,请执行以下操作:

  • 减小向量化读取器的批量大小并进行检查。默认批处理大小为 5000。此设置在 read.parquet.vectorization.batch-size 中进行控制。

    • 若多次调整后仍无效,请关闭向量化功能。此设置在 read.parquet.vectorization.enabled 中进行控制。

    • 若多次调整后仍无效,请关闭向量化功能。此设置在 read.parquet.vectorization.enabled 中进行控制。