# 《AWS Glue介紹 | 打造雲端無伺服器資料處理管道》  ## 📒 前言:為何選擇 AWS Glue? 在數據驅動的時代,企業每天都會產生大量的原始資料。然而,這些原始資料往往需要經過清洗、轉換、格式化,才能被下游的分析工具、視覺化報表或機器學習模型所使用。這個過程被稱為 ETL(Extract, Transform, Load)。 AWS Glue 是一個全受管的無伺服器 ETL 服務,它能讓您輕鬆地準備與載入資料,而無需費心管理底層的運算資源。本篇文章將透過一個實戰演練,帶您了解如何使用 AWS Glue Studio 的視覺化介面,快速建立一個自動化的資料處理管道。  > Source: [Catalog and analyze Application Load Balancer logs more efficiently with AWS Glue custom classifiers and Amazon Athena](https://aws.amazon.com/tw/blogs/big-data/catalog-and-analyze-application-load-balancer-logs-more-efficiently-with-aws-glue-custom-classifiers-and-amazon-athena/) ## 📒 核心服務概覽 ### 📘 AWS Glue * **無伺服器 (Serverless) 的 ETL 利器:** Glue 提供一個全自動化的資料擷取、轉換與載入(ETL)環境。它底層使用 Apache Spark 引擎,並支援 PySpark 與 Python 腳本,能夠高效處理儲存在 Amazon S3、Amazon Redshift 等多種來源的資料。 * **統一的資料中樞**:Glue Data Catalog 可作為您所有資料資產的中央中繼資料儲存庫。其內建的爬蟲 (Crawler) 功能可以自動掃描您的資料來源、識別結構(Schema),並建立可供查詢的資料表,方便與 Amazon Athena、Redshift Spectrum 等服務無縫整合。  > Source: [AWS官網](https://aws.amazon.com/tw/glue/) #### 彈性的開發選項 * `Glue Studio`:圖形化的 ETL 流程設計工具,讓使用者透過拖拉方式建構資料流程。 * `Glue Studio`:圖形化的 ETL 流程設計工具,讓使用者透過拖拉方式建構資料流程。 * `Glue Data Catalog`:集中管理資料結構與中繼資料的元資料儲存庫,供各服務查詢使用。 * `Glue Crawler`:自動掃描資料來源並建立或更新 Data Catalog 的 Schema。 * `Glue Jobs`:執行 ETL 任務的運算單元,支援 Python、PySpark 編碼或可視化設計。 * `Glue Workflows`:用於串接多個 Glue 元件(如 Job、Crawler)以建構完整的資料流程。 * `Glue Triggers`:用來根據事件或排程自動啟動 Glue 任務或流程。 * `Glue ML Transforms`:內建的機器學習轉換模組,協助進行資料除重或分類等任務。 ### 📘 Amazon S3 Amazon S3 (Simple Storage Service) 是 AWS 上最廣為人知的物件儲存服務。它具備高耐用性、高可用性與極佳的擴展性,可用來儲存任何格式的檔案。憑藉其直覺的操作、精細的權限控管與高度的服務整合性,S3 常被用作資料湖 (Data Lake) 的核心,也是 Glue、Athena 等資料服務最主要的資料來源。  > Source: [Amazon S3 in 3 Minutes: Quick Insights and Practical Examples for Easy Understanding](https://nolliechy.medium.com/amazon-s3-in-3-minutes-quick-insights-and-practical-examples-for-easy-understanding-ababf23a8e2b) ## 📒 實作演練:建立一個 Glue ETL 任務 ### 📘 核心概念:Glue Job 的運作模式 您可以將 AWS Glue Job 視為一個自動化的資料處理管道。當您需要處理資料時,可以啟動一個 Glue Job。AWS 會根據您的設定,自動佈建一台暫時的虛擬機器來執行您指定的資料處理任務。當任務完成後,該機器會被自動關閉並銷毀。  > 您可以根據任務的複雜度與資料量,選擇不同的 Worker 類型與數量。運算資源越強,單位時間的費用也越高。 ### 📘 開發方式 > 本文參考kaggle上關於電商的[資料集](https://www.kaggle.com/datasets/uom190346a/e-commerce-customer-behavior-dataset/data) #### 📗 1. 使用視覺化介面 (Glue Studio):透過拖拉節點的方式,直觀地建立資料處理步驟。**  #### 📗 2. 撰寫並上傳腳本 (Script):如果需要更複雜的客製化邏輯,可直接撰寫 PySpark 或 Python 腳本。  ### 📘 操作步驟:使用 Glue Studio 進行資料遮罩 #### 📗 1. 準備來源與目標 S3 儲存桶  #### 📗 2. 在 Glue Studio 中建立新任務  #### 📗 3. 應用資料轉換—資料遮罩  #### 📗 4. 調整目標 Schema 與輸出格式  :arrow_down: 另外也還有很多資料轉換的功能,有興趣的可以試看  #### 📗 5. 儲存並執行任務,可以在點擊`start job` 之後要到 `Run Detail`裡面看跑多久、成功與否、和細節  #### 📗 6. 驗證處理結果 這邊的設定是將資料分成`CSV`跟`Json`檔案,清理完成之後就會在資料夾看到這兩份檔案,其中在JSON檔案的電話號碼就被`SHA256`遮罩完畢   ## 📒 重要提示與限制 ### 📘 輸出檔案命名限制 #### 📗 AWS Glue 會自動生成輸出檔案的名稱,目前無法直接自訂有意義的檔名,算是比較明顯的缺點  #### 📗 Detect Sensitive Data 功S能有一定限制,內建的 Detect Sensitive Data 功能主要針對常見的 PII 格式,對於較不標準或客製化的欄位可能無法識別,提供客製化的選項不多  #### 📗 不過當應用情景單純,做這種快速簡單的遮罩也是不錯  ## REFERENCE📕📗📘📙📒 * https://aws.amazon.com/tw/blogs/big-data/get-started-with-aws-glue-data-quality-dynamic-rules-for-etl-pipelines/ * https://www.kaggle.com/datasets/uom190346a/e-commerce-customer-behavior-dataset/data
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up