

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

# 上的 Apache Iceberg 參考架構 AWS
<a name="reference-architectures"></a>

本節提供在不同使用案例中套用最佳實務的範例，例如批次擷取，以及結合批次和串流資料擷取的資料湖。

## 每天批次擷取
<a name="batch-ingestion"></a>

對於這個假設性使用案例，假設您的 Iceberg 資料表每晚擷取信用卡交易。每個批次僅包含增量更新，這些更新必須合併到目標資料表中。每年收到幾次完整的歷史資料。在此案例中，我們建議使用下列架構和組態。

注意：這只是範例。最佳組態取決於您的資料和需求。

![\[Data flow diagram showing raw storage to Amazon EMR and AWS Glue ETL, then to AWS Glue Data Catalog and data lake.\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/apache-iceberg-on-aws/images/nightly-batch-ingestion.png)


建議：
+ 檔案大小：128 MB，因為 Apache Spark 任務會以 128 MB 區塊處理資料。
+ 寫入類型：copy-on-write。如本指南先前所述，此方法有助於確保以讀取最佳化的方式寫入資料。
+ 分割區變數：year/month/day。在我們的假設使用案例中，我們最常查詢最近的資料，雖然我們偶爾會執行過去兩年資料的完整資料表掃描。分割的目標是根據使用案例的需求來推動快速讀取操作。
+ 排序順序：時間戳記
+ 資料目錄： AWS Glue Data Catalog

## 結合批次和近乎即時擷取的資料湖
<a name="batch-real-time-ingestion"></a>

您可以在 Amazon S3 上佈建資料湖，以跨帳戶和區域共用批次和串流資料。如需架構圖表和詳細資訊，請參閱 AWS 部落格文章[使用 Apache Iceberg 建置交易資料湖 AWS Glue，以及使用 AWS Lake Formation 和 Amazon Athena 進行跨帳戶資料共用](https://aws.amazon.com/blogs/big-data/build-a-transactional-data-lake-using-apache-iceberg-aws-glue-and-cross-account-data-shares-using-aws-lake-formation-and-amazon-athena/)。