Back to Blog
AWS Glue v.s. AWS Lambda
2019/10/15

當使用企業想要建置簡單的 ETL process 的時候,以 AWS 為例最常會思考的兩個解決方法就是使用 AWS Glue 或是 Lambda 去實作 ETL。這篇部落格將會幫你了解未來在選擇 AWS 的 Glue 或是 Lambda 製作 ETL 時如何做選擇。

我們先來看 AWS Glue

相關文章:

  1. Serverless framework 使用 AWS Lambda 製作爬蟲到 AWS S3
  2. 什麼是 Serverless 架構?優勢劣勢為何?
  3. 什麼是 ETL?雲端建置 ETL 的 架構?

AWS Glue

我們先來看幾個 AWS Glue 的使用情境。

情境一:使用 AWS Glue 查詢 S3

以下可以看到 AWS Glue 提供 Crawler 可以把 S3 metadata 拉到 AWS 的 Data Catalog 後面就可以使用 AWS 的一些分析或是運算工具。

查詢 Amazon S3 資料湖圖表

情境二:AWS Glue 作為 ETL 整合數據來自於多重資料庫,存到 Data Warehouse

除了 AWS Glue Catalog,Glue 也提供 ETL 可以功能可以讓你在裡面撰寫邏輯去整合不同的資料源同步到一個中央的數據中心像是 Data Warehouse,最後再到數據分析平台做分析。

分析資料倉儲中的日誌資料圖表

AWS Glue 其實與 AWS Lambda 底層所運行的方式是非常不一樣的。我們先來看一些 AWS Glue 的細節特色。

AWS Glue 特色:

  • Glue 很大一個不一樣是他並不是 Event-driven 所以他需要另一個 Glue ETL 或 Lambda 觸發,或是設定定時一段時間、或特定時間執行。
  • Spark 環境:Glue ETL 其實底層就是執行在 Spark 的環境,AWS 在 Spark 上又包了一層 GlueContext 來幫助你傳一些 schema 不用自己去傳這些參數。
  • 數據量大:由於在 Spark 之上,就可以知道他是大部分用來處理大量的數據。
  • 執行較慢:要執行 SparkContext 一般需要有等待時間讓他開機器以及分派 resources。
  • 支援 Python, Scala:目前 Glue 只支援 Python, Scala。

所以一般 AWS Glue,可以視為是 "大數據的 Serverless Lambda" 以 Spark 為基底。

AWS Lambda

再來看一下 AWS Lambda 的一些使用情境

情境一:即時處理

像是當新數據發生時,可以觸發 AWS Lambda 去自動新增一個 id 或欄位,再存到 Databases。

AWS Lambda 串流處理

情境二:ETL

像是當新數據發生時,可以觸發 AWS Lambda 去執行一個數據的轉換,存到 Databases。

AWS Lambda ETL

當然以 Lambda 來說,他應用的情境不只數據轉換、ETL。要更多參考資料可以 AWS Lambda 查看。

接下來要探討,既然 AWS Glue 以及 AWS Lambda 都可以用來作 ETL 那他的差異在哪裡。我們來看看 AWS Lambda。

AWS Lambda 特色:

  • 執行較快:相對 AWS Glue 以執行方面,雖然 AWS Lambda 在 cold start 的時候也會有執行 delay 的問題,但是相對於 AWS Glue 需要去開一個 Spark instance 相對會快許多。
  • 不是 Spark:AWS Glue 與 Lambda 最大的差別就是底層的運作, AWS Glue 底層是以 Spark 為基底,Lambda 並不是。
  • 支援更多語言:原生支援 Java、Go、PowerShell、Node.js、C#、Python 和 Ruby 程式碼,並提供 Runtime API。
  • 適合處理小量數據:AWS Lambda 有許多運算上面的限制最多只能執行 300 秒以及最多可以有 1024 線程數。不像是 AWS Glue 是採分散式運算。

AWS Glue + AWS Lambda

AWS Lambda 可以與 AWS Glue 混合運用,利用 AWS Lambda event trigger 的特性做到 AWS Glue 在某件事件發生時做大數據的運算。

事件驅動的 ETL 管道圖表

覺得困難嗎?

Canner, Inc 讓企業導入數據導向決策更簡單。Canner, Inc 所開發的 CannerFlow 是一個 Cloud-Native 的數據管理平台,解決在 Cloud Providers 上面的缺點專業人才、流程複雜、操作不易, CannerFlow 內建的數據整合系統可以節省大部分製作 ETL 流程。幫助企業導入數據分析流程更省錢快速地得到 Data-driven insights!

No reproduction without permission, please indicate the source if authorized.

Share to your friends!

Follow Us
CannerFlow Platform
Connecting data lakes, databases, files, clouds as one data platform.
Learn More
Contact Us
Want to connect with us and talk to us? Contact us now!
Request Now