# 《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
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.