本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從 AWS Glue Python shell 任務遷移
AWS 於 AWS 2018 年啟動 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 上的新 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 的受管協同運作服務,可以更輕鬆地在雲端中大規模設定和操作端對端資料管道。如果您已經有 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 任務更長。對於延遲敏感任務,建議探索其他選項。