本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS 於 2018 年推出 AWS Glue Python shell 任務於 2018 年 AWS 推出 AWS Glue Python shell 任務,讓客戶能夠輕鬆執行small-to-medium ETL 任務的 Python 指令碼,並觸發 SQL 查詢。不過,現在有更現代化且更靈活的選項,可以處理目前在 PythonShell 上執行的工作負載。本主題說明如何將工作負載從 AWS Glue Python shell 任務遷移至其中一個替代選項,以利用可用的新功能。
本主題說明如何從 AWS Glue Python shell 任務遷移至替代選項。
將工作負載遷移至 AWS Glue Spark 任務
AWS Glue Spark 和 PySpark 任務可讓您以分散式方式執行工作負載。由於 AWS Glue Python Shell 任務和 AWS Glue Spark 任務都在同一平台上執行,因此很容易遷移,而且您可以繼續使用與 Python Shell AWS 任務搭配使用的現有 Glue 功能,例如 AWS Glue Workflows、 AWS Glue Triggers、 AWS Glue Amazon EventBridge 整合、\ PIP 型套件安裝等。
不過, AWS Glue Spark 任務旨在執行 Spark 工作負載,工作者數量下限為 2。如果您從 Python Shell 任務遷移而不修改指令碼,則實際上只會使用一個工作者,而其他工作者將保持閒置。這將增加您的成本。
為了提高效率,請重寫 Python 任務指令碼以利用 Spark 的功能,並將工作負載分散到多個工作者。如果您的 Python 指令碼是以 Pandas 為基礎,則使用 Spark 上的 New Pandas API 輕鬆遷移。在AWS 大數據部落格中進一步了解:深入探索適用於 Apache Spark 的 AWS Glue 4.0
將工作負載遷移至 AWS Lambda
AWS Lambda 是一種無伺服器運算服務,可讓您執行程式碼,而無需佈建或管理伺服器。由於 AWS Lambda 的啟動時間較低,且運算容量的選項更靈活,因此您可以受益於這些優勢。為了管理額外的 Python 程式庫, AWS Glue Python Shell 任務使用 PIP 型安裝。不過,對於 AWS Lambda,您需要選擇下列其中一個選項: zip 封存、容器映像或 Lambda Layers。
另一方面,逾時 AWS Lambda上限為 900 秒 (15 分鐘)。如果現有 AWS Glue Python Shell 任務工作負載的任務持續時間超過此時間,或如果您的工作負載具有可能導致較長任務持續時間的尖峰模式,則建議您探索其他選項,而不是探索其他選項 AWS Lambda。
將工作負載遷移至 Amazon ECS/Fargate
Amazon Elastic Container Service (Amazon ECS) 是一項全受管服務,可簡化容器化應用程式的部署、管理和擴展。 AWS Fargate 是適用於在 Amazon ECS 和 Amazon Elastic Kubernetes Service (Amazon EKS) 上執行之容器化工作負載的無伺服器運算引擎。Amazon ECS 和 Fargate 沒有最大逾時,因此這是長時間執行任務的好選擇。由於您可以完全控制容器映像,因此您可以將 Python 指令碼和額外的 Python 程式庫帶入容器並使用它們。不過,您需要將 Python 指令碼容器化,才能使用此方法。
將工作負載遷移至 Amazon Managed Workflows for Apache Airflow Python Operator
Amazon Managed Workflows for Apache Airflow (Managed Workflows for Apache Airflow) 是 Apache Airflow 的受管協同運作服務,可讓您更輕鬆地大規模在雲端中設定和操作end-to-end資料管道。如果您已經有 MWAA 環境,使用 Python 運算子而非 Glue Python Shell AWS 任務會非常簡單。Python 運算子是在 Airflow 工作流程中執行 Python 程式碼的運算子。不過,如果您沒有現有的 MWAA 環境,建議您探索其他選項。
將工作負載遷移至 Amazon SageMaker AI AI 訓練任務
Amazon SageMaker AI 訓練是由 提供的全受管機器學習 (ML) 服務 Amazon SageMaker AI ,可協助您大規模訓練各種 ML 模型。 Amazon SageMaker AI AI 任務的核心是 ML 工作負載的容器化,以及管理 AWS 運算資源的能力。如果您偏好沒有最大逾時的無伺服器環境, Amazon SageMaker AI AI 訓練任務可能適合您。不過,啟動延遲通常比 Glue Python Shell AWS 任務更長。對於對延遲敏感的任務,我們建議探索其他選項。