AWS Glue 中的藍圖概觀 - AWS Glue

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

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 指令碼複製到指定的位置,並將該位置指定為任務指令碼位置屬性。您也可以包含任何程式庫或其他支援檔案,前提是您的指令碼處理它們。

標記為藍圖的框包含兩個較小的框,一個標記為 Python 指令碼和另一個標記為 Config 檔案。
藍圖執行

當您從藍圖建立工作流程時,AWS Glue 會執行藍圖,此藍圖會啟動非同步處理程序以建立工作流程,以及工作流程封裝的任務、爬蟲程式和觸發。AWS Glue 會使用藍圖執行來協調工作流程及其元件的建立。您可以透過檢視藍圖執行狀態來檢視建立程序的狀態。藍圖執行也會儲存您為藍圖參數提供的值。

標示為藍圖執行的方塊包含標示為工作流程和參數值的圖示。

您可以使用 AWS Glue 主控台或 AWS Command Line Interface (AWS CLI) 來檢視藍圖。檢視或疑難排解工作流程時,您一律可以傳回藍圖執行以檢視用於建立工作流程的藍圖參數值。

藍圖的生命週期

藍圖使用 AWS Glue 來開發、測試、註冊,然後執行以建立工作流程。藍圖生命週期通常涉及三個人物。

人物 任務
AWS Glue 開發人員
  • 寫入工作流程配置指令碼並建立組態檔案。

  • 使用 AWS Glue 服務提供的程式庫在本機測試藍圖。

  • 建立指令碼、組態檔和支援檔案的 ZIP 封存,並將存檔發佈到 Amazon S3 中的某個位置。

  • 將儲存貯體政策新增至 Amazon S3 儲存貯體,該政策授予儲存貯體物件的讀取許可給 AWS Glue 管理員的 AWS 帳戶。

  • 將 Amazon S3 中 ZIP 封存的 IAM 讀取許可授予 AWS Glue 管理員。

AWS Glue 管理員
  • 向 AWS Glue 註冊藍圖。AWS Glue 會將 ZIP 封存的複本複製到保留的 Amazon S3 位置。

  • 將藍圖上的 IAM 許可授與資料分析師。

資料分析
  • 執行藍圖以建立工作流程,並提供藍圖參數值。檢查藍圖執行狀態,以確保已順利產生工作流程和工作流程元件。

  • 執行並疑難排解工作流程。在執行工作流程之前,可以檢視 AWS Glue 主控台中的工作流程設計圖來驗證工作流程。