

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 一般最佳實務
<a name="best-practices-general"></a>

無論您的使用案例為何，當您在 上使用 Apache Iceberg 時 AWS，我們建議您遵循這些一般最佳實務。
+ **使用 Iceberg 格式第 2 版。**

  Athena 預設使用 Iceberg 格式第 2 版。

  當您在 Amazon EMR 上使用 Spark 或 AWS Glue 建立 Iceberg 資料表時，請指定 [Iceberg 文件](https://iceberg.apache.org/docs/nightly/configuration/#reserved-table-properties)所述的格式版本。
+ **使用 AWS Glue Data Catalog 做為您的資料目錄。**

  Athena AWS Glue Data Catalog 預設會使用 。

  當您在 Amazon EMR 上使用 Spark 或使用 AWS Glue Iceberg 時，請將下列組態新增至 Spark 工作階段以使用 AWS Glue Data Catalog。如需詳細資訊，請參閱本指南稍早[中 Iceberg 的 Spark 組態 AWS Glue](iceberg-glue.md#glue-spark-config)一節。

  ```
  "spark.sql.catalog.<your_catalog_name>.type": "glue"
  ```
+ **使用 AWS Glue Data Catalog 做為鎖定管理員。**

  根據預設，Athena 會使用 AWS Glue Data Catalog 做為 Iceberg 資料表的鎖定管理員。

  當您在 Amazon EMR 上使用 Spark 或使用 AWS Glue Iceberg 時，請務必將 Spark 工作階段組態設定為使用 AWS Glue Data Catalog 做為鎖定管理員。如需詳細資訊，請參閱 Iceberg 文件中的[樂觀鎖定](https://iceberg.apache.org/docs/latest/aws/#optimistic-locking)。
+ **使用 Zstandard (ZSTD) 壓縮。**

  Iceberg 的預設壓縮轉碼器是 gzip，可以使用資料表屬性 修改`write.<file_type>.compression-codec`。Athena 已使用 ZSTD 做為 Iceberg 資料表的預設壓縮轉碼器。

  一般而言，我們建議您使用 ZSTD 壓縮轉碼器，因為它在 GZIP 和 Snappy 之間取得平衡，並提供良好的讀取/寫入效能，而不會影響壓縮率。此外，可以調整壓縮層級以符合您的需求。如需詳細資訊，請參閱 [Athena 文件中的 Athena 中的 ZSTD 壓縮層級](https://docs.aws.amazon.com/athena/latest/ug/compression-support-zstd-levels.html)。

  Snappy 可能會提供最佳的整體讀取和寫入效能，但壓縮比率低於 GZIP 和 ZSTD。如果您優先考慮效能，即使這意味著在 Amazon S3 中存放較大的資料磁碟區，Snappy 仍可能是最佳選擇。