Glue ETL

【AWS 數據戰情室】Day 3 Glue 基本介紹 - Part 2

上一篇提到了Data Catelogue可彙整不同來源的資料,本篇要來介紹 Glue 的另外兩個主要功能:ETL job 與Workflow。

ETL Job

ETL Job 有三種 ETL 方式可以使用

  • Python shell

當資料量還不需要分散式運算的計算量時,可以考慮使用 Python shell,Python shell 與 Lambda 相似,可以執行 Python Script 並且沒有計算時間的限制,運算能力最高可以到 4 core 16G RAM,所以在中量或是計算不複雜的情況下 Python shell 也是可以考慮的工具。

  • Spark

今天資料成長到一定量時就會需要分散式的運算資源支持 ETL 的工作,Spark 是分散式運算中常見的工具,在 ETL Job 上可以使用 PySpark 或 Scala 進行程式開發
Input 的部分可以選擇 Data Catelog 所建立的虛擬 Table 資料,Output 的部分可以選擇S3 或是 Sata Catelog 所連結的 DatabaceETL Job 可以支援多個 Input,例如:訂單資料是CSV儲存在S3,會員資料儲存在 RDS,則透過 Data Catelog 的 Table,可以將兩個不同來源的資料進行 Join;Output 的部分也可以同時寫入 S3 和 RDS 或其他資料庫。

  • Spark streaming

Spark streaming 的 Input 目前只支援 Kinesis 與 Kafka,透過 Spark streaming,可以對 Streaming 資料進行即時分析,目前已有支援 PySpark 與 Scala 的程式開發。

Workflow

當每個 ETL job 之間或與 Data Catelog 之間有執行順序的問題時可以使用 Workflow 設計自動化的工作流程,例如:Data Catelog 需要執行完成後才能執行 ETL job,在 Workflow 上可以設定為 Data Catelog 成功後自動執行 ETL Job,而這個工作流程的啟動方式可以是排程或是 API 啟動。

AWS 上 Glue 可以當成資料處理的核心,透過 Glue 可以很方便的整合大部分常見的儲存點,並串接到 ETL Job 進行資料處理,因此加快了抓取資料與回存資料的速度,Glue 也提供順序排程的功能讓自動化的處理流程可以更為方便,簡少在自動化流程設定上的困難度。

請持續鎖定 Nextlink 架構師專欄,以獲得最新專業資訊喔!

若您有任何 AWS 需求,歡迎與我們聯繫!