AWS Glue for Spark 與 AWS Glue for Ray - AWS Glue

AWS Glue for Spark 與 AWS Glue for Ray

在 AWS Glue on Apache Spark (AWS Glue ETL) 中,您可使用 PySpark 撰寫 Python 程式碼來大規模處理資料。Spark 是解決此問題的常見解決方案,但若資料工程師的工作背景是以 Python 為主,可能會發現轉換不直觀。Spark DataFrame 模型並非極具 Python 風格 (Pythonic),其在建置時反映 Scala 語言與 Java 執行階段。

在 AWS Glue 中,您可使用 Python Shell 任務執行原生 Python 資料整合。這些任務會在單一 Amazon EC2 執行個體上運作,並受該執行個體容量的限制。這會限制您可以處理的資料輸送量,讓處理大數據時的維護成本變得昂貴。

AWS Glue for Ray 允許您縱向擴展 Python 工作負載,而無需對學習 Spark 進行大量投資。您可善用 Ray 表現更加出色的某些情況。您可以借助提供給您的選擇同時運用 Spark 和 Ray 的優勢。

AWS Glue ETL 和 AWS Glue for Ray 的底層有所不同,因此其支援不同的功能。請查看文件判斷支援的功能。

什麼是 AWS Glue for Ray?

Ray 是開放原始碼的分散式運算架構,可用於縱向擴展工作負載並專注處理 Python。如需有關 Ray 的詳細資訊,請參閱 Ray 網站。AWS GlueRay 任務和互動式工作階段可讓您在 AWS Glue 中使用 Ray。

您可以使用 AWS Glue for Ray 撰寫 Python 指令碼來進行運算,運算會在多台電腦上平行執行。在 Ray 任務與互動式工作階段中,您可以使用熟悉的 Python 程式庫 (例如 pandas),讓您的工作流程易於撰寫和執行。如需有關 Ray 資料集的詳細資訊,請參閱 Ray 文件中的 Ray 資料集。如需有關 pandas 的詳細資訊,請參閱 Pandas 網站

當您使用 AWS Glue for Ray 時,僅需幾行程式碼即可針對企業規模的大數據執行 pandas 工作流程。您可以透過 AWS Glue 主控台或 AWS SDK 建立 Ray 任務。您也可以開啟 AWS Glue 互動式工作階段,在無伺服器 Ray 環境中執行程式碼。尚不支援 AWS Glue Studio 中的視覺化任務。

AWS Glue for Ray 任務可讓您根據排程執行指令碼,或回應來自 Amazon EventBridge 的事件。任務會存放 CloudWatch 中的日誌資訊和監控統計資訊,讓您了解指令碼的運作狀態和可靠性。如需有關 AWS Glue 任務系統的詳細資訊,請參閱在 AWS Glue 中使用 Ray 任務

Ray 會根據負載,將處理程序分配至一組機器叢集,藉此自動調整 Python 程式碼的擴展任務。這會改善某些工作負載的每美元效能。我們已透過 Ray 任務將自動擴展功能原生建置至 AWS Glue 工作模型中,因此您可以充分利用此功能。Ray 任務會在 AWS Graviton 上執行,從整體上提升價格/效能比。

除了節省成本,您還可以使用原生自動擴展功能來執行 Ray 任務負載,而無須耗費時間進行叢集維護、調整和管理。您可以立即使用熟悉的開放原始碼程式庫,例如 pandas 和 pandas 版 AWS SDK。這些程式庫可提高您在 AWS Glue for Ray 上進行開發時的反覆運算速度。在使用 AWS Glue for Ray 時,您可以快速開發和執行具成本效益的資料整合工作負載。