本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS Glue 中的藍圖概觀
注意
AWS Glue 主控台的下列區域目前無法使用藍圖功能:亞太區域 (雅加達) 和中東 (阿拉伯聯合大公國)。
AWS Glue 藍圖提供建立和共用 AWS Glue 工作流程的方法。當存在可用於類似使用案例的複雜 ETL 程序時,您可以建立單一藍圖,而不是為每個使用案例各建立一個 AWS Glue 工作流程。
藍圖會指定工作流程中要包含的任務和爬蟲程式,並指定工作流程使用者在執行藍圖以建立工作流程時提供的參數。使用參數可讓單一藍圖產生各種類似使用案例的工作流程。如需工作流程的相關詳細資訊,請參閱 AWS Glue 中的工作流程概觀。
以下是藍圖的使用案例範例:
-
您想要分割現有的資料集。藍圖的輸入參數是 Amazon Simple Storage Service (Amazon S3) 來源和目標路徑,以及分割區欄的清單。
-
您想要將 Amazon DynamoDB 資料表快照到像 Amazon Redshift 這樣的 SQL 資料存放區。藍圖的輸入參數是 DynamoDB 資料表名稱和 AWS Glue 連線,用於指定 Amazon Redshift 叢集和目標資料庫。
-
您想要將多個 Amazon S3 路徑中的 CSV 資料轉換為 Parquet。您想要 AWS Glue 工作流程,以針對每個路徑包含個別的爬蟲程式和任務。輸入參數是 AWS Glue Data Catalog 中的目的地資料庫,以及 Amazon S3 路徑的逗號分隔清單。請注意,在此情況下,工作流程建立的爬蟲程式和任務數目會變動。
藍圖元件
藍圖是含有下列元件的 ZIP 封存:
-
Python 配置產生器指令碼
包含指定工作流程配置的函數—為工作流程建立的爬蟲程式和任務、任務和爬蟲程式屬性,以及任務和爬蟲程式之間的相依性。此函數接受藍圖參數,並傳回 AWS Glue 用於產生工作流程的工作流程結構 (JSON 物件)。因為您使用 Python 指令碼來產生工作流程,所以您可以新增適合您使用案例的自己邏輯。
-
組態檔案
指定產生工作流程配置的 Python 函數完整名稱。同時指定指令碼所使用之所有藍圖參數的名稱、資料類型和其他屬性。
-
(選用) ETL 指令碼和支援檔案
做為進階使用案例,您可以參數化任務所使用之 ETL 指令碼的位置。您可以在 ZIP 封存中包含任務指令碼檔案,並為要將指令碼複製到的 Amazon S3 位置指定藍圖參數。配置產生器指令碼可以將 ETL 指令碼複製到指定的位置,並將該位置指定為任務指令碼位置屬性。您也可以包含任何程式庫或其他支援檔案,前提是您的指令碼處理它們。
藍圖執行
當您從藍圖建立工作流程時,AWS Glue 會執行藍圖,此藍圖會啟動非同步處理程序以建立工作流程,以及工作流程封裝的任務、爬蟲程式和觸發。AWS Glue 會使用藍圖執行來協調工作流程及其元件的建立。您可以透過檢視藍圖執行狀態來檢視建立程序的狀態。藍圖執行也會儲存您為藍圖參數提供的值。
您可以使用 AWS Glue 主控台或 AWS Command Line Interface (AWS CLI) 來檢視藍圖。檢視或疑難排解工作流程時,您一律可以傳回藍圖執行以檢視用於建立工作流程的藍圖參數值。
藍圖的生命週期
藍圖使用 AWS Glue 來開發、測試、註冊,然後執行以建立工作流程。藍圖生命週期通常涉及三個人物。
人物 | 任務 |
---|---|
AWS Glue 開發人員 |
|
AWS Glue 管理員 |
|
資料分析 |
|