- AWS Glue 教程
- AWS Glue - 首頁
- AWS Glue - 簡介
- AWS Glue - 入門指南
- AWS Glue - 資料目錄
- AWS Glue - Amazon S3 整合
- AWS Glue - 爬蟲
- AWS Glue - 效能最佳化
- AWS Glue - 成本最佳化
- AWS Glue 資源
- AWS Glue - 快速指南
- AWS Glue - 資源
- AWS Glue - 討論
AWS Glue - 效能最佳化
最佳化 Glue ETL 作業的最佳實踐
為了提高效率並降低資料處理工作流程的成本,您必須最佳化 AWS Glue 抽取、轉換和載入 (ETL) 作業。
本章重點介紹了一些最佳化 AWS Glue ETL 作業的最佳實踐。
最佳化 AWS Glue 中的資料分割槽
資料分割槽是加快查詢速度和減少 ETL 作業整體處理時間的關鍵因素。以下是最佳化資料分割槽的最佳實踐:
- 您可以使用邏輯資料夾結構(例如,基於日期的分割槽(例如,/year=2024/month=09/day=26/))在 Amazon S3 中組織資料。
- 您可以使用 AWS Glue 中的動態框架自動檢測分割槽並僅載入相關資料。這將提高作業的效能。
- 應避免建立過多的較小分割槽。這會增加處理成本。
最佳化 AWS Glue 中的 I/O 操作
輸入/輸出操作也對 ETL 作業的效能起著重要作用。讓我們看看如何最佳化 I/O 操作:
- 應將資料轉換為最佳化的列式格式,例如Apache Parquet 或ORC。這些格式減少了 I/O,因為它們只加載處理所需的關聯列。
- 您可以使用 Amazon S3 的分塊上傳和並行處理來加快 AWS 服務之間的資料傳輸速度。
使用下推謂詞
下推謂詞有助於在 ETL 流程的早期過濾資料。這意味著,只處理相關的資料子集。當您處理大型資料集時,這很有用。
請按照以下步驟最佳化下推謂詞:
- 應直接在資料來源應用過濾器。這將最大限度地減少下游處理的資料量。例如,您可以在將大型資料集載入到 Glue 作業之前,先過濾掉某些特定行。
- 您可以在 ETL 指令碼中使用push_down_predicate 引數。它只加載轉換過程所需的資料。
最佳化 AWS Glue 中的轉換
提高效能的關鍵之一是減少轉換的複雜性。AWS Glue 提供內建轉換,但以下一些技術可以使 ETL 作業更高效。
- 嘗試避免冗餘轉換,確保僅在必要時應用聯接、過濾或聚合等操作。
- 當其中一個數據集較小時,可以使用廣播聯接。此技術可以加快聯接操作的速度。
在 AWS Glue 中啟用作業書籤
AWS Glue 作業書籤旨在跟蹤 ETL 作業中最後成功處理的資料。您可以使用作業書籤來避免重新處理已處理的資料。這樣可以節省時間和資源。
- 當您處理增量資料時,始終啟用作業書籤。
- 確保為 ETL 作業使用的儲存在 Amazon S3 或資料庫中的資料集正確配置作業書籤。
管理 AWS Glue 中的記憶體和資源分配
高效的資源管理可確保最佳效能、成本效率並防止作業失敗。AWS Glue 提供各種方法來管理 ETL 作業的記憶體和資源分配。
選擇合適的 Worker 型別
AWS Glue 允許您根據工作負載需求從三種不同的 Worker 型別中進行選擇:標準型、G.1X 和 G.2X Worker。每種 Worker 型別都提供不同級別的記憶體和處理能力。
對於通用 ETL 作業,您應該使用標準型 Worker,而對於複雜的交易或處理大型資料集,您可以選擇G.1X 或 G.2X Worker
調整 DPU 的數量
AWS Glue 作業使用資料處理單元 (DPU) 來進行計算。為了顯著提高效能,您應該分配適量的 DPU。您可以先分配最少數量的 DPU,然後根據作業需求增加 DPU。
監控和調整記憶體使用情況
AWS Glue 透過 AWS CloudWatch 指標提供內建記憶體監控功能。您可以即時監控記憶體消耗,並根據需要調整作業引數。
最佳化作業並行性
AWS Glue 可以高效地將作業分佈到多個節點。此功能可確保作業執行速度更快,從而顯著提高效能。