Amazon EKS 上使用 Apache Spark 的 SQL 型 ETL 提供宣告式資料處理支援、無程式碼擷取-轉換-載入 (ETL) 功能和工作流程協同運作自動化,以協助您的業務使用者 (例如分析師和資料科學家) 存取其資料並建立有意義的洞察,而無需手動 IT 流程。
優勢
在 Jupyter 中建置、測試和偵錯 ETL 任務
使用 JupyterHub,一個基於 Web 的互動式整合開發環境 (IDE) 來簡化您的 ETL 應用程式開發。
使用 SQL 優先的方法
。
使用 Spark SQL 在 ETL 管道開發中實作商業邏輯和資料品質檢查。
無需程式碼即可協調任務
。
使用 Argo 工作流程排定任務並管理複雜的任務相依項,而無需使用程式碼。
自動部署 Docker 影像
。
設定 AWS 持續改進和持續開發 (CI/CD) 管道,以將資料架構 Docker 影像安全地存放在 Amazon Elastic Container Registry (Amazon ECR) 中。
概觀
以下圖表展示了您可以使用 GitHub 上的範例程式碼建置的架構。
按一下以放大
Amazon EKS 上使用 Apache Spark 的 SQL 型 ETL 架構
Amazon EKS 上使用 Apache Spark 的 SQL 型 ETL 會部署安全、容錯、自動擴展環境,以支援您包含以下元件的 ETL 工作負載:
- 可自訂和靈活的工作流程管理層 (請參閱圖表中 Amazon Elastic Kubernetes Service (Amazon EKS) 群組上的協同運作) 包含 Argo Workflows 外掛程式。此外掛程式提供基於 Web 的工具來協調 ETL 任務,而無需編寫程式碼。您也可以選擇性地使用其他工作流程工具,例如 Volcano 和 Apache Airflow。
- 安全資料處理工作區設定為統一同一 Amazon EKS 叢集中的資料工作負載。此工作區包含基於 Web 的次要工具 JupyterHub,用於互動式任務建置和測試。您可以使用宣告式方法開發 Jupyter Notebook 來指定 ETL 任務,也可以使用 PySpark 以程式設計方式編寫 ETL 步驟。此工作區還提供由 Argo 工作流程工具管理的 Spark 任務自動化。
- 解決方案中部署了一組安全功能。Amazon Elastic Container Registry (Amazon ECR) 會維護和保護資料處理架構 Docker 影像的安全。Amazon EKS 上服務帳戶 (IRSA) 功能的 AWS Identity and Access Management (IAM) 角色提供字符授權以及對其他 AWS 服務的存取控制。例如,Amazon EKS 與 Amazon Athena 整合是無密碼的,以降低在連接字串中暴露 AWS 憑證的風險。Jupyter 將登入憑證從 AWS Secrets Manager 即時擷取到 Amazon EKS。Amazon CloudWatch 使用啟用的 CloudWatch Container Insights 功能監控 Amazon EKS 上的應用程式。
- Amazon EKS 叢集上的分析工作負載將資料結果輸出到 Amazon Simple Storage Service (Amazon S3) 資料湖。資料結構描述項目 (中繼資料) 是在 AWS Glue Data Catalog 中透過 Amazon Athena 建立。