本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS Glue 適用於 Spark 和 AWS Glue Ray
在 Apache Spark (AWS Glue ETL) AWS Glue 的 中,您可以使用 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 Ray?
Ray 是開放原始碼的分散式運算架構,可用於縱向擴展工作負載並專注處理 Python。如需 Ray 的詳細資訊,請參閱 Ray 網站
您可以使用 AWS Glue 讓 Ray 編寫 Python 指令碼,以進行跨多部機器平行執行的運算。在 Ray 任務與互動式工作階段中,您可以使用熟悉的 Python 程式庫 (例如 pandas),讓您的工作流程易於撰寫和執行。如需有關 Ray 資料集的詳細資訊,請參閱 Ray 文件中的 Ray 資料集
當您使用 AWS Glue for Ray 時,您可以針對企業規模的大數據執行 pandas 工作流程,只需要幾行程式碼。您可以從 AWS Glue 主控台或 SDK 建立 Ray AWS 任務。您也可以開啟 AWS Glue 互動式工作階段,在無伺服器 Ray 環境中執行程式碼。 AWS Glue Studio 尚不支援 中的視覺化任務。
AWS Glue for Ray 任務可讓您依排程執行指令碼,或回應來自 Amazon EventBridge 的事件。任務會存放 CloudWatch 中的日誌資訊和監控統計資訊,讓您了解指令碼的運作狀態和可靠性。如需 AWS Glue 任務系統的詳細資訊,請參閱 在 中使用 Ray 任務 AWS Glue。
Ray 會根據負載,將處理程序分配至一組機器叢集,藉此自動調整 Python 程式碼的擴展任務。這會改善某些工作負載的每美元效能。使用 Ray 任務,我們已在 AWS Glue 任務模型中原生建置自動擴展,因此您可以充分利用此功能。Ray 任務在 AWS Graviton 上執行,因此整體價格效能更高。
除了節省成本,您還可以使用原生自動擴展功能來執行 Ray 任務負載,而無須耗費時間進行叢集維護、調整和管理。您可以立即使用熟悉的開放原始碼程式庫,例如 pandas 和 AWS SDK for Pandas。這些程式庫可提高您在 AWS Glue for Ray 上進行開發時的反覆運算速度。當您將 AWS Glue 用於 Ray 時,您將能夠快速開發和執行符合成本效益的資料整合工作負載。