AWS Glue 常見問答集
一般
問:什麼是 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 含有做為集中化中繼資料資料儲存器的資料型錄、可自動產生 Scala 或 Python 程式碼的 ETL 引擎,以及處理相依性解決方案、任務監控和重試等工作的彈性排程器。這些元件的結合可自動化大部分涉及探索、分類、清理、充實和移動資料等無差別繁重工作,讓您將更多時間花在分析資料上。
問:何時應該使用 AWS Glue?
您應該使用 AWS Glue 探索您擁有的資料屬性、轉換該資料,並做好分析的準備。Glue 可自動探索存放在 Amazon S3 資料湖、Amazon Redshift 資料倉儲,以及在 AWS 上執行之各種資料庫的結構化和半結構化資料。它透過可使用 Amazon Athena、Amazon EMR 和 Amazon Redshift Spectrum 等服務進行 ETL、查詢和報告的 Glue 資料型錄提供統一的資料檢視。Glue 會自動為 ETL 任務產生 Scala 或 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 輕鬆存取。您也可以撰寫自訂 Scala 或 Python 程式碼以及將自訂程式庫和 Jar 檔匯入 Glue ETL 任務,以存取不受 AWS Glue 原生支援的資料來源。如需匯入自訂程式庫的詳細資訊,請參閱我們的文件。
問:AWS Glue 與 AWS Lake Formation 有何關聯?
答:Lake Formation 與 AWS Glue 使用相同的基礎設施,包括主控台控制、ETL 程式碼建立和作業監控、通用資料目錄和無伺服器架構。AWS Glue 仍然專注於這些類型的功能,但 Lake Formation 不但涵蓋了所有 AWS Glue 功能,還提供了旨在幫助建置、保護和管理資料湖的其他功能。請參閱 AWS Lake Formation 頁面了解詳細資訊。
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 網路爬取程式以分類自己的檔案類型。
問:如果我已經使用 Amazon Athena 或 Amazon Redshift Spectrum,而且在 Amazon Athena 內部資料型錄中擁有表格,如何開始使用 AWS Glue 資料型錄做為通用中繼資料的資料儲存器?
開始使用 AWS Glue 資料型錄做為 Amazon Athena、Amazon Redshift Spectrum 和 AWS Glue 間通用中繼資料的資料儲存器之前,必須先將 Amazon Athena 資料型錄升級為 AWS Glue 資料型錄。請參閱這裡以取得升級所需的詳細步驟。
擷取、轉換和載入 (ETL)
問:可使用哪些程式設計語言撰寫 AWS Glue 的 ETL 程式碼?
您可以使用 Scala 或 Python。
問:如何自訂 AWS Glue 產生的 ETL 程式碼?
AWS Glue 的 ETL 指令碼建議系統可產生 Scala 或 Python 程式碼。它利用 Glue 的自訂 ETL 程式庫簡化資料來源的存取和管理任務執行。您可以在我們的文件中了解更多有關程式庫的詳細資訊。您可以使用 AWS Glue 自訂程式庫撰寫 ETL 程式碼,或使用 AWS Glue 主控台指令碼編輯器的內嵌編輯,以 Scala 或 Python 撰寫任意程式碼,下載自動產生的程式碼,然後在自己的 IDE 進行編輯。您也可以使用 Github 資料儲存器託管的眾多範例,開始自訂程式碼。
問:如何使用我自己的 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 ETL 是批次導向,排程 ETL 任務時可以設定最短 5 分鐘的間隔。雖然它可以處理微型批次,但無法處理串流資料。如果您的使用案例需要在串流時 ETL 資料,則可使用 Amazon Kinesis Data Firehose 或 Amazon Kinesis Data Analytics 執行 ETL 的第一步,然後將資料存放到 Amazon S3 或 Amazon Redshift 並觸發 Glue ETL 任務以接收該資料集,接著繼續對該資料套用其他轉換。
問:是否要同時使用 AWS Glue 資料型錄和 Glue ETL 才能使用此服務?
否。雖然我們相信同時使用 AWS Glue 資料型錄和 ETL 可提供端對端的 ETL 體驗,但您可以單獨使用其中一個,無須使用另一個。
AWS 產品整合
問:何時應該使用 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 任務以 Scala 或 Python 為基礎。如果您的使用案例需要使用 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?何時又該使用 Amazon Kinesis Data Analytics?
Amazon Kinesis Data Analytics 可讓您在傳入資料串流上執行標準 SQL 查詢。您可以指定 Amazon S3 這類目的地來撰寫結果。您的資料放入目標資料來源之後,即可啟動 AWS Glue ETL 任務進一步轉換資料,並做好準備以供其他分析和報告使用。
定價和帳單
問:AWS Glue 任務何時開始計費?何時結束計費?
排定任務的執行時間後立即開始計費,然後持續計費直到整個任務完成。使用 AWS Glue 只需支付任務執行時間的費用,環境佈建或關機時間不計費。
安全性與可用性
問:AWS Glue 如何保護資料的安全?
我們為靜態資料提供伺服器端加密,為動態資料提供 SSL。
問:在開發端點分配多少個 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。您可以透過 CloudWatch 動作設定 SNS 通知,以接收任務失敗或完成的相關資訊。
服務水準協議
問:AWS Glue SLA 提供哪些保證?
我們的 AWS Glue SLA 可保證,AWS Glue 的每月正常執行時間百分比至少可達 99.9%。
問:如何知道自己是否符合 SLA 服務抵扣的資格?
根據 AWS Glue SLA,如果您在一個以上可用區域執行任務,而同一個區域任一個月帳單週期內的每月正常執行時間百分比低於 99.9%,您就符合 AWS Glue 的 SLA 抵扣資格。
如需 SLA 所有條款與條件的完整詳細資訊,以及如何提交索賠的詳細資訊,請參閱 AWS Glue SLA 詳細資訊頁面。
進一步了解 AWS Glue 定價。