本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從 AWS Glue Python shell 任務中移轉
AWS 於 2018 年啟動了 AWS Glue Python shell 任務,AWS 於 2018 年啟動了 AWS Glue Python shell 任務,讓客戶能夠輕鬆執行中小型 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 巨量資料落格:深入了解適 AWS Glue 4.0 for Apache Spark
將工作負載移轉至 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 運算子而非 AWS Glue Python Shell 任務會非常簡單。Python 運算子是在 Airflow 工作流程中執行 Python 程式碼的運算子。不過,如果您沒有現有的 MWAA 環境,建議探索其他選項。
將工作負載移轉至 Amazon SageMaker AI AI 訓練任務
Amazon SageMaker AI Training 是由 Amazon SageMaker AI 提供的全受管機器學習 (ML) 服務,可協助您有效地大規模訓練各種 ML 模型。Amazon SageMaker AI AI 任務的核心是 ML 工作負載的容器化和管理 AWS 運算資源的能力。如果您偏好沒有最大逾時的無伺服器環境,Amazon SageMaker AI AI 訓練任務可能非常適合您。不過,啟動延遲通常比 AWS Glue Python Shell 任務更長。對於延遲敏感任務,建議探索其他選項。