- AWS 解決方案程式庫›
- 利用 Apache Spark on Amazon EKS 實現以 SQL 為基礎的擷取、轉換和載入 (ETL) 的指引
利用 Apache Spark on Amazon EKS 實現以 SQL 為基礎的擷取、轉換和載入 (ETL) 的指引
利用可擴充的企業級擷取、轉換和載入 (ETL) 解決方案,實現更高效的資料工作流程和更快速的洞見
概觀
使用本指引,有助於消除資料取用需求與常用 ETL 實務執行的低層級資料處理活動之間的差距。組織若採用以 SQL 為基礎的資料管理系統來運作,適應現代化的資料工程實務可能會減慢利用資料中強大洞察的程序。本指引提供具有品質感知的設計,可透過開放原始碼資料架構 Arc,以使用者為中心的 ETL 方法來提高資料處理效率。本指引可加速與 ETL 實務的互動,促進簡單性並提高抽象層級,以便在批次和串流中統一 ETL 活動。
我們還提供使用高效運算執行個體 (例如 AWS Graviton 處理器) 實現最佳設計的選項,讓您能夠最佳化在 Amazon EKS 上大規模執行 ETL 任務的效能與成本。
運作方式
此架構圖展示了如何在 Amazon EKS 上使用 Apache Spark 加速資料處理。
Well-Architected 支柱
上方的架構圖是一個考量到 Well-Architected 最佳實務而建立的的解決方案的範例。若要完全實現 Well-Architected,您應該盡可能地多遵循 Well-Architected 的最佳實務。
在 Amazon EKS 叢集內,Amazon Elastic Compute Cloud (Amazon EC2) 執行個體 (X86_64 CPU、Graviton ARM64) 充當運算節點,執行指引工作負載。根據工作負載需求,在彈性佈建的 Amazon EC2 Spot 執行個體上執行 Spark 任務。CodeBuild 和 CodePipeline 會自動執行 GitOps 程序,透過 Git 程式碼更新來建置容器映像,並將其推送至 Amazon ECR 私有登錄檔。Argo 工作流程會在 Amazon EKS 上排程 ETL 任務,自動從 Amazon ECR 提取 Arc Docker 映像檔,從成品 S3 儲存貯體下載 ETL 資產,以及將應用程式日誌傳送至 CloudWatch。這種自動化的 Data ETL 任務部署和執行可將營運開銷降至最低,並提高生產力。此外,使用 CodeBuild 和 CodePipeline 的 CI/CD 管線可協助確保持續改善和開發,同時將本指引的 Arc Docker 映像檔安全存放在 Amazon ECR 中。
Amazon EKS 叢集資源部署在 Amazon VPC 內,從而將邏輯網路與公有網際網路隔離。Amazon VPC 支援安全功能,例如 VPC 端點 (保持 AWS 網路內的流量)、安全群組、網路存取控制清單 (ACL),以及 AWS Identity and Access Management (IAM) 角色和政策,以控制傳入和傳出流量和授權。Amazon ECR 映像登錄檔提供容器層級的安全功能,例如漏洞掃描。Amazon ECR 和 Amazon EKS 遵循開放容器倡議 (OCI) 登錄檔和 Kubernetes API 標準,並採用嚴格的安全協定。IAM 針對 Amazon S3 應用程式資料提供存取控制,而 AWS Key Management Service (AWS KMS) 則在 Amazon S3 上加密靜態資料。Amazon EKS 叢集上服務帳戶 (IRSA) 的 IAM 角色可針對 Pod 進行精細的存取控制,強制實施以角色為基礎的存取控制,並限制未經授權的 Amazon S3 資料存取。Secrets Manager 可安全地存放和管理憑證。CloudFront 針對 Jupyter 和 Argo 工作流程 Web 工具提供 SSL 加密的安全入口點。
Amazon EKS 透過在多個可用區域 (AZ) 部署 Kubernetes 控制和運算平面,來實現高可用性拓樸。這有助於確保資料應用程式的持續可用性 (即使 AZ 遇到中斷),從而在 Amazon EKS 上可靠地部署多可用區域 EC2 執行個體。針對資料儲存,Amazon S3 提供高耐久性和可用性,可在區域內的多個可用區域中自動複寫資料物件。此外,Amazon ECR 在高可用性和可擴展性架構中託管 Docker 映像檔,可靠地支援以容器為基礎的應用程式部署和增量。Amazon S3、Amazon EKS 和 Amazon ECR 是專為高服務層級協議 (SLA) 設計的全受管理服務,並可降低營運成本。它們可部署業務關鍵型應用程式,以滿足高可用性需求。
Amazon EKS 叢集的 Amazon EC2 運算節點可根據應用程式工作負載動態向上擴展和縮減規模。以 Graviton 為基礎的 EC2 執行個體透過自訂設計的 Arm 處理器、最佳化的硬體和架構增強功能,提供更高的效能效率。解耦的運算儲存模式 (包含存放在 Amazon S3 中的輸入和輸出資料) 可提升動態運算擴展效率。Data Catalog 可精簡中繼資料管理,與 Athena 無縫整合,以簡化中繼資料管理並增強查詢效能。Data Catalog 可自動爬取和維護技術中繼資料,實現高效的資料處理和查詢。Athena 提供 Amazon S3 資料的快速查詢,而無需移動資料,進一步提升分析工作流程效率。
Amazon ECR 是一項受管服務,用於保護和支援容器應用程式,針對存放和提供容器映像,採用固定的每月費用。Amazon EKS 叢集運算節點可根據 Spark 工作負載向上擴展和縮減規模,提供經濟高效的 Graviton 和 Spot 執行個體類型。Data Catalog 提供無伺服器、全受管中繼資料儲存庫,無需設定和維護長期運作中的中繼資料資料庫,並降低營運開銷和成本。CodeBuild 和 CodePipeline 在無伺服器環境中自動化建置和部署 Arc ETL 架構的 Docker 映像檔,除了降低基礎設施維護成本之外,還消除了佈建和管理組建伺服器的需求。
本指引在 Graviton 處理器基礎上,以高效的運算類型執行 Amazon EKS 叢集。Amazon ECR 無需自訂硬體或實體伺服器管理。Data Catalog 和 Athena 是無伺服器服務,可進一步減少能源和環境影響。針對大規模 Apache Spark 工作負載優化 Amazon EKS 運算層,將分析工作負載的環境影響降至最低。您可靈活地根據效能需求和永續發展優先事項,選擇 Arm 處理器。
實作資源
免責聲明
找到今天所需的資訊了嗎?
讓我們知道,以便我們改善頁面內容的品質