- 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 的最佳實務。
在亞馬遜 EKS 叢集中,亞馬遜彈性運算雲 (亞馬遜 EC2) 執行個體 (X86_64 CPU、Graviton ARM64) 充當運算節點,執行指導工作負載。Spark 工作會根據工作負載需求在彈性佈建的 Amazon EC2 Spot 執行個體上執行。CodeBuild 和 CodePipeline 將 GitOps 程序自動化,從 Git 代碼更新建置容器映像,並將它們推送到亞馬遜 ECR 私人登錄。Argo 工作流程會在 Amazon EKS 上排程 ETL 任務,自動從 Amazon ECR 提取 Arc Docker 映像檔,從成品 S3 儲存貯體下載 ETL 資產,以及將應用程式日誌傳送至 CloudWatch。這種自動化的 Data ETL 任務部署和執行可將營運開銷降至最低,並提高效率。此外,使用 CodeBuild 和 Code Pipeline 的 CI/CD 管道有助於確保持續改進和開發,同時將指導引的 Arc Docker 映像安全地存儲在 Amazon ECR 中。
Amazon EKS 叢集資源部署在 Amazon VPC 中,從而提供邏輯網路與公用網際網路隔離。Amazon VPC 支援安全功能,例如 VPC 端點(保持 AWS 網路內的流量)、安全群組、網路存取控制清單 (ACL),以及 AWS 身分與存取管理 (IAM) 角色和原則,以控制輸入和輸出流量和授權。Amazon ECR 映像登錄檔提供容器層級的安全功能,例如漏洞掃描。亞馬遜 ECR 和亞馬遜 EKS 遵循開放容器倡議(OCI)註冊表和 Kubernetes API 標準,並採用嚴格的安全協議。IAM 為 Amazon S3 應用程式資料提供存取控制,而 AWS 金鑰管理服務 (AWS KMS) 則會在 Amazon S3 上加密靜態資料。Amazon EKS 叢集上的服務帳戶 (IRSA) 的 IAM 角色可為 Pod 進行精細的存取控制,強制以角色為基礎的存取控制,並限制未經授權的 Amazon S3 資料存取。秘密管理員安全地存儲和管理認證。CloudFront 為 Jupyter 和 Argo 工作流程網頁工具提供 SSL 編碼的安全入口點。
Amazon EKS 透過在多個可用區域 (AZ) 部署 Kubernetes 控制和運算平面,來實現高可用性拓樸。這有助於確保資料應用程式的持續可用性 (即使 AZ 遇到中斷),從而在 Amazon EKS 上可靠的多重 AZ EC2 執行個體部署。 對於資料儲存,Amazon S3 提供高耐用性和可用性,可在區域內的多個 AZ 中自動複製資料物件。此外,Amazon ECR 在高可用性和可擴展性架構中託管 Docker 映像檔,可靠地支援以容器為基礎的應用程式部署和增量。Amazon S3、Amazon EKS 和 Amazon ECR 是專為高服務層級協議 (SLA) 設計的全受管理服務,並可降低營運成本。它們可部署業務關鍵型應用程式,以滿足高可用性需求。
Amazon EKS 叢集的 Amazon EC2 運算節點可根據應用程式工作負載動態擴展和縮減。以 Graviton 為基礎的 EC2 執行個體透過定製設計的 Arm 處理器、優化的硬體和架構增強功能,提供更高的效能效率。解耦的運算儲存模式 (包含存放在 Amazon S3 中的輸入和輸出資料) 可提升動態運算擴展效率。資料目錄簡化中繼資料管理,與 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 處理器。
Implementation 資源
免責聲明
找到今天所需的資訊了嗎?
讓我們知道,以便我們改善頁面內容的品質