[SEO 子標題]
本指引示範使用事件驅動、無伺服器且可擴展的架構,在 AWS 上自動設定資料湖。其善用 AWS 受管服務來擷取、存放、處理和分析資料,提供安全、靈活且經濟高效的設計,並具備適當的資料控管。相較於傳統資料管理系統,這種方法提供更大的敏捷性、靈活性與可靠性。整個解決方案使用基礎架構即程式碼 (IaC) 以及持續整合、持續交付 (CI/CD) 管道,做為編碼應用程式進行建置。
請注意:[免責聲明]
架構圖
![](https://d1.awsstatic.com/apac/events/2021/aws-innovate-aiml/2022/eng/innovate-aiml-22-UI_Gradient-Divider.082bb46e8d9654e48f62bf018e131dd8ec563c4e.jpg)
[架構圖說明]
步驟 1
資料管理員會在 Amazon Simple Storage Service (Amazon S3) 原始儲存貯體中上傳 JSON 檔案。在 Amazon S3 中建立物件會觸發 Amazon EventBridge 中的事件。
步驟 2
EventBridge 有一項規則,可在 Amazon Simple Queue Service (Amazon SQS) 中傳送訊息,這會調用 AWS Lambda 函數。
步驟 3
Lambda 函數會觸發 AWS Step Functions 工作流程,其中另一個 Lambda 函數會從 S3 原始儲存貯體中讀取檔案並執行轉換。此外還會將新的 JSON 檔案集寫入 S3 階段儲存貯體。
步驟 4
A Lambda 函數會以 Step Function 任務狀態更新 Amazon DynamoDB 資料表。
步驟 5
在 S3 階段儲存貯體中建立檔案後,會在 EventBridge 中觸發事件,其中有一項規則,可在 Amazon SQS 中傳送包含已建立檔案詳細資訊的訊息。
步驟 6
Eventbridge 排程器會以特定間隔執行並調用 Lambda 函數,這會從 Amazon SQS 中擷取訊息,並啟動另一項 Step Functions 工作流程。
步驟 7
AWS Glue 擷取、轉換、載入 (ETL) 會從 AWS Glue 資料庫階段讀取資料,然後將檔案從 JSON 轉換為 Parquet 格式。
步驟 8
AWS Glue ETL 會將 Parquet 檔案寫入 S3 分析儲存貯體中。AWS Glue 編目程式會在同一儲存貯體中編目 Parquet 檔案,然後在 AWS Glue 資料庫分析中建立分析資料表。
步驟 9
所有暫存和分析型錄都會在 AWS Glue Data Catalog 中維護。
步驟 10
Lambda 函數會以 Step Functions 任務狀態更新 DynamoDB 資料表。
步驟 11
業務分析師使用 Amazon Athena 來查詢 AWS Glue 資料庫分析。
Well-Architected 支柱
![](https://d1.awsstatic.com/apac/events/2021/aws-innovate-aiml/2022/eng/innovate-aiml-22-UI_Gradient-Divider.082bb46e8d9654e48f62bf018e131dd8ec563c4e.jpg)
AWS Well-Architected Framework 可協助您了解在雲端建立系統時所做決策的利弊。該架構的六根支柱讓您能夠學習設計和操作可靠、安全、高效、經濟高效且永續的系統的架構最佳實務。使用 AWS Well-Architected Tool (在 AWS 管理主控台中免費提供),您可以透過回答每根支柱的一組問題來針對這些最佳實務審查您的工作負載。
上方的架構圖是一個考量到 Well-Architected 最佳實務而建立的的解決方案的範例。若要完全實現 Well-Architected,您應該盡可能地多遵循 Well-Architected 的最佳實務。
-
卓越營運
Amazon CloudWatch 透過每個架構元件的營運日誌記錄,提供有關效能與運作狀況的全面洞察。使用 Amazon S3 伺服器存取日誌記錄,來追蹤對資料湖提出請求的詳細記錄,讓您能夠進行安全與存取稽核,以及了解您的 Amazon S3 帳單。DynamoDB 細緻地追蹤資料湖管道任務狀態,讓您能夠快速識別並解決可能出現的任何錯誤。
-
安全性
AWS Key Management Service (AWS KMS) 藉由使用客戶受管金鑰加密所有靜態資料,來保護您的資料湖。使用穩健的 TLS 1.2 加密來保護傳輸中的資料。 AWS Identity and Access Management (IAM) 可讓您透過最低權限原則,精確地管理身分並存取 AWS 服務和資源。
-
可靠性
Amazon S3 可充當高度耐用且可用的儲存層。資料管道透過 EventBridge 觸發,這會傳送訊息至 Amazon SQS 以啟動管道任務。將訊息移至無效字母佇列進行偵錯和重新處理,來處理錯誤。如果區域發生故障,您可將指引重新部署至其他 AWS 區域或帳戶,從而確保靈活性和彈性。
-
效能達成效率
此解決方案使用 Lambda 進行輕量型工作,並使用 AWS Glue 進行繁重資料轉換來最佳化效能。AWS Glue 是一項無伺服器資料整合服務,可簡化並加速資料準備,同時降低成本。其善用 Apache Spark 進行可擴展的轉換任務執行。Step Functions 可協調 AWS Glue 任務,提供分散式處理功能,以提升資料管道的效能。
-
成本最佳化
本指引使用無伺服器 AWS 服務,降低總體擁有成本,並根據需求實現可擴展性。Amazon S3 可充當儲存層,提供各種經濟高效的儲存類別,以及針對各種資料存取模式的自動生命週期管理。藉由將基礎設施管理移至 AWS,無伺服器方法可讓開發人員專注於程式碼,進一步降低成本並改善效率。
-
永續發展
此指引中的無伺服器服務會視需求擴展,最大化能源效率,並最大限度地減少運算資源。Amazon S3 可實作資料生命週期政策,並以 Parquet 格式儲存擷取的資料。這種壓縮格式可減少每項查詢的資料掃描,進一步減少工作負載所需的運算資源。無伺服器架構和高效資料儲存相結合,可最佳化整體效能和資源使用率。
免責聲明
範例程式碼、軟體庫、命令列工具、概念驗證、範本或其他相關技術 (包括我們的人員提供的任何上述技術) 依據 AWS 客戶協議或您與 AWS 之間的相關書面協議 (以適用者為準) 作為 AWS 內容提供給您。您不得在您的生產帳戶、生產或其他關鍵資料中使用此 AWS 內容。您有責任根據您的特定品質控制實務和標準,依生產級用途來測試、保護和最佳化 AWS 內容 (如範例程式碼)。部署 AWS 內容可能會因建立或使用 AWS 收費資源 (如執行 Amazon EC2 執行個體或使用 Amazon S3 儲存) 而產生 AWS 費用。
本指引中對第三方服務或組織的參考並不意味著 Amazon 或 AWS 與第三方之間的認可、贊助或聯繫。AWS 的指引是技術起點,您可以在部署架構時自訂與第三方服務的整合。