問:什麼是 AWS Glue?

AWS Glue 是全受管、按用量付費的擷取、轉換和載入 (ETL) 服務,可自動化分析前的耗時資料準備步驟。AWS Glue 可透過 Glue 資料型錄自動探索和分析您的資料、建議和產生 ETL 程式碼以將來源資料轉換成目標結構描述,以及在全受管的可擴展 Apache Spark 環境執行 ETL 任務以將資料載入其目的地。它還能讓您設定、協調和監控複雜的資料流程。

問:如何開始使用 AWS Glue?

若要開始使用 AWS Glue,只要登入 AWS 管理主控台,然後導覽到 "Analytics" 類別下的 "Glue" 即可。您可以遵循我們的引導教學進行,這些教學會逐步說明 AWS Glue 的範例使用案例。您也可以在 AWS 實驗室下的 GitHub 儲存庫找到範例 ETL 程式碼。

問:AWS Glue 有哪些主要元件?

AWS Glue 含有做為集中化中繼資料儲存庫的資料型錄、可自動產生 Python 程式碼的 ETL 引擎,以及處理相依性解決方案、任務監控和重試等工作的彈性排程器。這些元件的結合可自動化大部分涉及探索、分類、清理、充實和移動資料等無差別繁重工作,讓您將更多時間花在分析資料上。

問:何時應該使用 AWS Glue?

您應該使用 AWS Glue 探索您擁有的資料屬性、轉換該資料,並做好分析的準備。Glue 可自動探索存放在 Amazon S3 資料湖、Amazon Redshift 資料倉儲,以及在 AWS 上執行之各種資料庫的結構化和半結構化資料。它透過可使用 Amazon Athena、Amazon EMR 和 Amazon Redshift Spectrum 等服務進行 ETL、查詢和報告的 Glue 資料型錄提供統一的資料檢視。Glue 會自動為 ETL 任務產生 Python 程式碼,讓您使用已熟悉的工具進一步自訂各個項目。AWS Glue 是無伺服器服務,因此無須設定和管理運算資源。

問:AWS Glue 支援哪些資料來源?

AWS Glue 原生支援存放在 Amazon Aurora、Amazon RDS for MySQL、Amazon RDS for Oracle、Amazon RDS for PostgreSQL、Amazon RDS for SQL Server、Amazon Redshift 和 Amazon S3 中的資料,以及 Amazon EC2 上執行之 Virtual Private Cloud (Amazon VPC) 中的 MySQL、Oracle、Microsoft SQL Server 和 PostgreSQL 資料庫。存放在 AWS Glue 資料型錄的中繼資料可從 Amazon Athena、Amazon EMR 和 Amazon Redshift Spectrum 輕鬆存取。您也可以撰寫自訂 PySpark 程式碼以及將自訂程式庫匯入 Glue ETL 任務,以存取不受 AWS Glue 原生支援的資料來源。如需匯入自訂程式庫的詳細資訊,請參閱我們的文件

回到頁首 »


問:什麼是 AWS Glue 資料型錄?

AWS Glue 資料型錄是集中化的儲存庫,可存放所有資料資產的結構化和操作中繼資料。您可以存放特定資料集的表格定義、實體位置、新增商業相關屬性,以及追蹤這類資料如何隨著時間改變。

AWS Glue 資料型錄與 Apache Hive 中繼存放區相容,且是 Amazon EMR 上執行之大數據應用程式 Apache Hive 中繼存放區的便利替代方案。如需設定 EMR 叢集以使用 AWS Glue 資料型錄做為 Apache Hive 中繼存放區的詳細資訊,按一下這裡

AWS Glue 資料型錄還提供立即可用的 Amazon Athena、Amazon EMR 和 Amazon Redshift Spectrum 整合。將表格定義新增到 Glue 資料型錄之後,就可用來進行 ETL,也可在 Amazon Athena、Amazon EMR 和 Amazon Redshift Spectrum 中輕鬆查詢,讓您在這些服務之間以通用的方式檢視資料。

問:如何將中繼資料填入 AWS Glue 資料型錄?

AWS Glue 提供多種方式將中繼資料填入 AWS Glue 資料型錄。Glue 網路爬取程式可掃描您擁有的各種資料存放區,以自動推斷結構描述和分割結構,並將對應的表格定義和統計資料填入 Glue 資料型錄。您也可以將網路爬取程式排定為定期執行,讓您的中繼資料永遠保持最新狀態並與基礎資料保持同步。或者,使用 AWS Glue 主控台或呼叫 API 手動新增和更新表格詳細資訊。您也可以透過 Amazon Athena 主控台或 Amazon EMR 叢集的 Hive 用戶端執行 Hive DDL 陳述式。最後,如果您已經有持久性 Apache Hive 中繼存放區,可使用我們的匯入指令碼將該中繼資料批次匯入 AWS Glue 資料型錄。

問:什麼是 AWS Glue 網路爬取程式?

AWS Glue 網路爬取程式連接到資料存放區,依序處理已排定優先順序的分類器清單以擷取資料的結構描述和其他統計資料,然後將該中繼資料填入 Glue 資料型錄。網路爬取程式可定期執行以偵測是否有可用的新資料以及表格定義變更等現有資料變更。網路爬取程式會自動新增表格、現有表格的新分區,以及新的表格定義版本。您可以自訂 Glue 網路爬取程式以分類自己的檔案類型。

問:如何將資料從現有的 Apache Hive 中繼存放區匯入 AWS Glue 資料型錄?

只要執行從 Apache Hive 中繼存放區讀取的 ETL 任務、將資料匯出成 Amazon S3 的中繼格式,然後將該資料匯入 AWS Glue 資料型錄即可。

問:如果將中繼資料存放在 AWS Glue 資料型錄,是否還需要保留 Apache Hive 中繼存放區?

否。AWS Glue 資料型錄與 Apache Hive 中繼存放區相容。您可以指向 Glue 資料型錄終端節點,然後使用它做為 Apache Hive 中繼存放區替代方案。如需如何設定叢集以使用 AWS Glue 資料型錄做為 Apache Hive 中繼存放區的詳細資訊,請參閱我們這裡的文件。

問:如果我已經使用 Amazon Athena 或 Amazon Redshift Spectrum,而且在 Amazon Athena 內部資料型錄中擁有表格,如何開始使用 AWS Glue 資料型錄做為通用中繼資料儲存庫?

開始使用 AWS Glue 資料型錄做為 Amazon Athena、Amazon Redshift Spectrum 和 AWS Glue 間的通用中繼資料儲存庫之前,必須先將 Amazon Athena 資料型錄升級為 AWS Glue 資料型錄。請參閱這裡以取得升級所需的詳細步驟。

回到頁首 »


問:如何自訂 AWS Glue 產生的 ETL 程式碼?

AWS Glue 的 ETL 指令碼建議系統會產生 PySpark 程式碼。它利用 Glue 的自訂 ETL 程式庫簡化資料來源的存取和管理任務執行。您可以在我們的文件中了解更多有關程式庫的詳細資訊。您可以使用 AWS Glue 自訂程式庫撰寫 ETL 程式碼,或使用 AWS Glue 主控台指令碼編輯器的內嵌編輯,以 Python 撰寫任意 Spark 程式碼 (PySpark 程式碼),下載自動產生的程式碼,然後在自己的 IDE 進行編輯。您也可以使用 Github 儲存庫託管的眾多範例,開始自訂程式碼。

問:是否可在 ETL 指令碼中匯入自訂程式庫?

是。您可以將自訂 PySpark 程式庫匯入 AWS Glue ETL 任務。如需詳細資訊,請參閱我們這裡的文件。

問:是否可使用我自己的程式碼?

是。您可以使用 AWS Glue ETL 程式庫撰寫自己的程式碼,或撰寫自己的 PySpark 程式碼並將其上傳到 Glue ETL 任務。如需詳細資訊,請參閱我們這裡的文件。

問:如何使用我自己的 IDE 開發 ETL 程式碼?

您可以建立並連接開發終端節點,以使用多種方法連接筆記本和 IDE。

問:如何使用 AWS Glue 中的多個任務建立端對端 ETL 工作流程?

除了 ETL 程式庫和程式碼產生,AWS Glue 還提供一組強大的協調功能,讓您管理多個任務間的相依性,以建立端對端 ETL 工作流程。AWS Glue ETL 任務可依排程或任務完成事件觸發。您可平行觸發多個任務,或根據任務完成事件依序觸發多個任務。也可從 AWS Lambda 函數等外部來源觸發一或多個 Glue 任務。

問:AWS Glue 如何監控相依性?

AWS Glue 使用觸發程式管理兩個以上任務之間的相依性或外部事件的相依性。觸發程式可監控一或多個任務,也可叫用一或多個任務。您可以使用定期叫用任務的已排程觸發程式、隨需觸發程式或任務完成觸發程式。

問:AWS Glue 如何處理錯誤?

AWS Glue 會監控任務事件指標和錯誤,並將所有通知推送到 Amazon CloudWatch。使用 Amazon CloudWatch 可設定大量的動作,並根據 AWS Glue 的特定通知觸發這些動作。例如,您可以在收到來自 Glue 的錯誤或成功通知時觸發 AWS Lambda 函數。Glue 還會提供預設的重試行為,所有失敗重試三次之後才會傳送錯誤通知。

問:是否可在 AWS Glue 執行現有的 ETL 任務?

是。您可以在 AWS Glue 執行現有的 PySpark 程式碼。只要將程式碼上傳到 Amazon S3,然後建立使用該程式碼的一或多個任務即可。您可以將多個任務指向 Amazon S3 上的相同程式碼位置,就能在多個任務重複使用相同的程式碼。

問:如何使用 AWS Glue 來 ETL 串流資料?

AWS Glue ETL 是批次導向,排程 ETL 任務時可以設定最短 5 分鐘的間隔。雖然它可以處理微型批次,但無法處理串流資料。如果您的使用案例需要在串流時 ETL 資料,則可使用 Amazon Kinesis、Amazon Kinesis Firehose 或 Amazon Kinesis Analytics 執行 ETL 的第一步,然後將資料存放到 Amazon S3 或 Amazon Redshift 並觸發 Glue ETL 任務以接收該資料集,接著繼續對該資料套用其他轉換。

問:是否要同時使用 AWS Glue 資料型錄和 Glue ETL 才能使用此服務?

否。雖然我們相信同時使用 AWS Glue 資料型錄和 ETL 可提供端對端的 ETL 體驗,但您可以單獨使用其中一個,無須使用另一個。

回到頁首 »


問:何時應該使用 AWS Glue?何時又該使用 AWS Data Pipeline?

AWS Glue 提供在無伺服器 Apache Spark 環境執行的受管 ETL 服務。這可讓您專注在 ETL 任務上,無須擔心設定和管理基礎運算資源。AWS Glue 採取資料優先方法,讓您專注在資料屬性和資料操作,將資料轉換成可衍生商業洞見的形式。它提供整合的資料型錄,可為 ETL 提供中繼資料,並透過 Amazon Athena 和 Amazon Redshift Spectrum 進行查詢。

AWS Data Pipeline 提供受管的協調服務,為執行環境、存取和控制執行程式碼的運算資源,以及處理資料的程式碼本身提供更大的彈性。AWS Data Pipeline 可啟動帳戶中的運算資源,讓您直接存取 Amazon EC2 執行個體或 Amazon EMR 叢集。

此外,AWS Glue ETL 任務是以 PySpark 為基礎。如果您的使用案例需要使用 Apache Spark 以外的引擎,或者您想要執行在 Hive、Pig 等各種引擎上運作的一組異質任務,則 AWS Data Pipeline 是較好的選擇。

問:何時應該使用 AWS Glue?何時又該使用 Amazon EMR?

AWS Glue 在 Apache Spark 環境之上運作,可為您的資料轉換任務提供橫向擴展的執行環境。AWS Glue 透過推斷、演進和監控您的 ETL 任務,大幅簡化建立和維護任務的程序。Amazon EMR 可讓您直接存取 Hadoop 環境、提供較低層級的存取,以及使用 Spark 以外工具的較大彈性。

問:何時應該使用 AWS Glue?何時又該使用 AWS Database Migration Service?

AWS Database Migration Service (DMS) 協助您輕鬆安全地將資料庫遷移到 AWS。對於需要將資料庫從現場部署遷移到 AWS 或在現場部署來源和 AWS 來源間複寫資料庫的使用案例,建議您使用 AWS DMS。將資料放入 AWS 之後,可以使用 AWS Glue 將資料從資料來源移動或轉換到其他資料庫或資料倉儲,像是 Amazon Redshift。

問:何時應該使用 AWS Glue?何時又該使用 AWS Batch?

無論任務的本質為何,AWS Batch 都能讓您輕鬆、有效率地在 AWS 上執行任何批次運算任務。AWS Batch 可在您的 AWS 帳戶建立和管理運算資源,提供您所用資源的完全控制和可見性。AWS Glue 是提供無伺服器 Apache Spark 環境供您執行 ETL 任務的全受管 ETL 服務。針對您的 ETL 使用案例,我們建議您使用 AWS Glue 探索。對於其他批次導向使用案例,包含部分 ETL 使用案例,AWS Batch 可能是更好的選擇。

問:何時應該使用 AWS Glue?何時又該使用 Amazon Kinesis Analytics?

Amazon Kinesis Analytics 可讓您在傳入資料串流上執行標準 SQL 查詢。您可以指定 Amazon S3 這類目的地來撰寫結果。您的資料放入目標資料來源之後,即可啟動 AWS Glue ETL 任務進一步轉換資料,並做好準備以供其他分析和報告使用。

回到頁首 »


問:AWS Glue 如何計費?

在 AWS Glue 資料型錄存放和存取中繼資料,超過 AWS Glue 資料型錄免費方案的部分需支付簡單的月費。此外,ETL 任務和網路爬取程式執行需支付以每秒計費的小時費率,每個項目最少 10 分鐘起算。如果您選擇使用開發終端節點以互動的方式開發 ETL 程式碼,則必須依開發終端節點的佈建時間支付以每秒計費的小時費率,每個項目最少 10 分鐘起算。如需詳細資訊,請參閱我們的定價頁面。

問:AWS Glue 任務何時開始計費?何時結束計費?

排定任務的執行時間後立即開始計費,然後持續計費直到整個任務完成。使用 AWS Glue 只需支付任務執行時間的費用,環境佈建或關機時間不計費。

回到頁首 »


問:AWS Glue 如何保護資料的安全?

我們為靜態資料提供伺服器端加密,為動態資料提供 SSL。

問:AWS Glue 有哪些服務限制?

請參閱我們的文件進一步了解服務限制。

問:哪些區域提供 AWS Glue?

目前在美國東部 (維吉尼亞北部)、美國東部 (俄亥俄) 和美國西部 (奧勒岡) 等區域提供 AWS Glue,未來幾個月將會擴展到其他區域。請參閱我們的定價頁面以取得詳細資訊。

問:在開發終端節點分配多少個 DPU (資料處理單位)?

預設會在開發終端節點佈建 5 個 DPU。您可以將開發終端節點設定為最少 2 個 DPU 和最多 5 個 DPU。

問:如何擴展 AWS Glue ETL 任務的大小和效能?

只要指定您想要在 ETL 任務分配的 DPU (資料處理單位) 數量即可。一個 Glue ETL 任務至少需要 2 個 DPU。AWS Glue 預設會為每個 ETL 任務分配 10 個 DPU。

問:如何監控 AWS Glue 任務的執行?

AWS Glue 會提供每個任務的狀態,並將所有通知推送到 Amazon CloudWatch Events。您可以透過 CloudWatch 動作設定 SNS 通知,以接收任務失敗或完成的相關資訊。

回到頁首 »