一般最佳实践 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

一般最佳实践

无论您的用例如何,当您在上使用 Apache Iceberg 时 AWS,我们都建议您遵循这些一般的最佳实践。

  • 使用 Iceberg 格式版本 2。

    默认情况下,Athena 使用 Iceberg 格式版本 2。

    当你在 Amazon EMR 上使用 Spark 或 AWS Glue 创建 Iceberg 表时,请按照 Iceberg 文档中所述指定格式版本。

  • 使用 AWS Glue Data Catalog 作为您的数据目录。

    Athena 默认使用 AWS Glue Data Catalog 。

    当您在亚马逊 EMR 上使用 Spark 或 AWS Glue 使用 Iceberg 时,请将以下配置添加到您的 Spark 会话中以使用 AWS Glue 数据目录。有关更多信息,请参阅本指南前面的 AWS Glue 中冰山的 Spark 配置部分。

    "spark.sql.catalog.<your_catalog_name>.catalog-impl": "org.apache.iceberg.aws.glue.GlueCatalog"
  • 使用 a AWS Glue Data Catalog s 锁定管理器。

    默认情况下,Athena 对 Ic AWS Glue Data Catalog eberg 表使用作为锁管理器。

    当你在 Amazon EMR 上使用 Spark 或 AWS Glue 使用 Iceberg 时,请务必将你的 Spark 会话配置配置配置配置为使用 AWS Glue Data Catalog 作为锁定管理器。有关更多信息,请参阅 Iceberg 文档中的乐观锁定

  • 使用 Zstandard (ZSTD) 压缩。

    Iceberg 的默认压缩编解码器是 gzip,可以使用 table 属性对其进行修改。write.<file_type>.compression-codecAthena 已经使用 ZSTD 作为 Iceberg 表的默认压缩编解码器。

    一般而言,我们建议使用 ZSTD 压缩编解码器,因为它可以在 GZIP 和 Snappy 之间取得平衡,并且在不影响压缩比的情况下提供良好的读/写性能。此外,还可以根据需要调整压缩级别。有关更多信息,请参阅 Athena 文档中的 A thena 中的 ZSTD 压缩级别

    Snappy 可能提供最佳的整体读取和写入性能,但压缩率低于 GZIP 和 ZSTD。如果您优先考虑性能(即使这意味着要在 Amazon S3 中存储更大的数据量),Snappy 可能是最佳选择。