本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
考量和限制
本節包含在 AWS Glue Data Catalog中使用資料表最佳化工具時應考慮的事項。
受管資料壓縮支援的格式和限制
資料壓縮支援各種資料類型和壓縮格式來讀取和寫入資料,包括從加密資料表中讀取資料。
並行控制:
Apache Iceberg 支援樂觀並行控制,允許多個寫入器同時執行操作。在遞交時偵測並解決衝突。使用串流管道時,請透過資料表屬性和壓縮設定來設定適當的重試設定,以有效地處理並行寫入。如需詳細指引,請參閱有關在 Iceberg 資料表中管理並行寫入 AWS 的大數據部落格。請參閱 https://https://aws.amazon.com/blogs/big-data/manage-concurrent-write-conflicts-in-apache-iceberg-on-the-aws-glue-data-catalog/
壓縮重試:
當壓縮操作連續四次失敗時, AWS Glue 目錄資料表最佳化會自動暫停最佳化工具,以防止不必要的運算資源消耗。首先調查日誌,並嘗試了解壓縮重複失敗的原因。若要繼續壓縮最佳化,您可以透過 AWS Glue 主控台或 API 重新啟用最佳化工具。
資料壓縮支援:
加密 – 資料壓縮僅支援預設的 Amazon S3 加密 (SSE-S3) 和伺服器端 KMS 加密 (SSE-KMS)。
壓縮策略 – Binpack、sort 和 Z-order 排序
-
當儲存基礎資料的 Amazon S3 儲存貯體位於其他帳戶中時,您可以從 Data Catalog 所在的帳戶中執行壓縮程序。若要執行此程序,壓縮角色需要 Amazon S3 儲存貯體的存取權。
資料壓縮目前不支援:
-
跨帳戶資料表壓縮 – 您無法在跨帳戶資料表上執行壓縮程序。
-
跨區域戶資料表壓縮 – 您無法在跨區域資料表上執行壓縮。
在資源連結上啟用壓縮功能
-
Amazon S3 Express One Zone 儲存類別中的資料表 – 無法在 S3 Express One Zone Iceberg 資料表上執行壓縮。
Z-order 壓縮策略不支援下列資料類型:
Decimal (小數)
TimestampWithoutZone
快照保留和孤立檔案刪除最佳化工具的考量
下列考量適用於快照保留和孤立檔案刪除最佳化工具。
快照保留和孤立檔案刪除程序的上限為每次執行刪除 1,000,000 個檔案。刪除過期快照時,如果刪除的合格檔案數目超過 1,000,000,則任何超出該閾值的剩餘檔案將繼續以孤立檔案的形式存在於資料表儲存中。
-
只有在滿足兩個條件時,快照保留最佳化工具才會保留快照:要保留的快照數目下限和指定的保留期間。
-
快照保留最佳化工具會從 Apache Iceberg 刪除過期的快照中繼資料,以防止進行過期快照的時間歷程查詢,並選擇性地刪除相關聯的資料檔案。
-
孤立檔案刪除最佳化工具會刪除 Iceberg 中繼資料不再參考的孤立資料和中繼資料檔案,前提是其建立時間早於最佳化工具執行後的孤立檔案刪除保留期。
-
Apache Iceberg 透過分支和標籤來促進版本控制,其為特定快照狀態的具名標誌。每個分支和標籤都遵循自己的獨立生命週期,由其各自層級定義的保留政策管理。 AWS Glue Data Catalog 最佳化工具會將這些生命週期政策納入考量,確保遵守指定的保留規則。分支和標籤層級保留政策優先於最佳化工具組態。
如需詳細資訊,請參閱 Apache Iceberg 文件中的分支和標記
。 -
快照保留和孤立檔案刪除最佳化工具將根據設定的參數來刪除符合清除資格的檔案。透過在適當的儲存貯體上實作 S3 版本控制和生命週期政策,加強您對檔案刪除的控制。
如需有關設定版本控制和建立生命週期規則的詳細說明,請參閱https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html。
-
為了正確判斷孤立檔案,請確保提供的資料表位置和任何子路徑不會與任何其他資料表或資料來源的資料重疊或包含其中的資料。如果路徑重疊,則可能會因為意外刪除檔案而導致無法復原的資料遺失。
偵錯 OversizedAllocationException 例外狀況
若要解決 OversizedAllocationException 例外狀況:
減少向量化讀取器的批量大小並檢查。預設批量大小為 5000。在
read.parquet.vectorization.batch-size中進行控制。如果即使在多個變化後仍無法運作,則請關閉向量化。在
read.parquet.vectorization.enabled中進行控制。如果即使在多個變化後仍無法運作,則請關閉向量化。在
read.parquet.vectorization.enabled中進行控制。