本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon DynamoDB 中的彙總資料,用於 Athena 中的 ML 預測
Sachin Doshi 和 Peter Molnar,Amazon Web Services
Summary
此模式說明如何使用 Amazon Athena 在 Amazon DynamoDB 資料表中建置複雜的物聯網 (IoT) 資料彙總。您也會了解如何使用 Amazon SageMaker AI 透過機器學習 (ML) 推論豐富資料,以及如何使用 Athena 查詢地理空間資料。您可以使用此模式做為建立符合組織需求的 ML 預測解決方案的基礎。
基於示範目的,此模式使用營運機車共乘的業務範例案例,並希望預測必須為不同城市社區客戶部署的最佳機車數量。企業使用預先訓練的 ML 模型,根據過去四小時預測下一個小時的客戶需求。此案例使用路易斯維爾都會政府公民創新技術辦公室
先決條件和限制
- 作用中 AWS 帳戶 
- 為下列項目建立具有 AWS Identity and Access Management (IAM) 角色的 AWS CloudFormation 堆疊的許可: - Amazon Simple Storage Service (Amazon S3) 儲存貯體 
- Athena 
- DynamoDB 
- SageMaker AI 
- AWS Lambda 
 
架構
技術堆疊
- Amazon QuickSight 
- Amazon S3 
- Athena 
- DynamoDB 
- Lambda 
- SageMaker AI 
目標架構
下圖顯示使用 Athena、Lambda 函數、Amazon S3 儲存體、SageMaker AI 端點和 QuickSight 儀表板的查詢功能,在 DynamoDB 中建置複雜資料彙總的架構。

該圖顯示以下工作流程:
- DynamoDB 資料表會擷取從機群機群傳輸的 IoT 資料。 
- Lambda 函數會使用擷取的資料載入 DynamoDB 資料表。 
- Athena 查詢會為代表城市鄰里的地理空間資料建立新的 DynamoDB 資料表。 
- 查詢位置會儲存在 S3 儲存貯體中。 
- Athena 函數會從託管預先訓練 ML 模型的 SageMaker AI 端點查詢 ML 推論。 
- Athena 會直接從 DynamoDB 資料表查詢資料,並彙總資料進行分析。 
- 使用者在 QuickSight 儀表板中檢視分析資料的輸出。 
工具
AWS 服務
- Amazon Athena 是一種互動式查詢服務,可協助您使用標準 SQL 直接在 Amazon S3 中分析資料。 
- Amazon DynamoDB 是一項全受管 NoSQL 資料庫服務,可提供快速、可預期且可擴展的效能。 
- Amazon SageMaker AI 是一種受管 ML 服務,可協助您建置和訓練 ML 模型,然後將模型部署到生產就緒的託管環境中。 
- Amazon Simple Storage Service (Amazon S3) 是一種雲端型物件儲存服務,可協助您儲存、保護和擷取任何數量的資料。 
- Amazon QuickSight 是一種雲端規模的商業智慧 (BI) 服務,可協助您在單一儀表板中視覺化、分析和報告您的資料。 
- AWS Lambda 是一項運算服務,可協助您執行程式碼,無需佈建或管理伺服器。它只會在需要時執行程式碼並自動擴展,因此您只需按使用的運算時間付費。 
程式碼儲存庫
此模式的程式碼可在 GitHub 透過 Amazon Athena ML 儲存庫的 Amazon DynamoDB 資料使用 ML 預測
- DynamoDB 資料表 
- 使用相關資料載入資料表的 Lambda 函數 
- 適用於推論請求的 SageMaker AI 端點,具有存放在 Amazon S3 中的預先訓練 XGBoost 模型 
- 名為 的 Athena 工作群組 - V2EngineWorkGroup
- 具名 Athena 查詢以查詢地理空間形狀檔並預測滑步車需求 
- 預先建置的 Amazon Athena DynamoDB 連接器,可讓 Athena 與 DynamoDB 通訊,並使用 AWS Serverless Application Model(AWS SAM) - 參考 DynamoDB 連接器建置應用程式 
史詩
| 任務 | 描述 | 所需的技能 | 
|---|---|---|
| 下載資料集和資源。 | 
 | 應用程式開發人員、資料科學家 | 
| 任務 | 描述 | 所需的技能 | 
|---|---|---|
| 建立 CloudFormation 堆疊。 | 
 注意CloudFormation 堆疊可能需要 15-20 分鐘才能建立這些資源。 | AWS DevOps | 
| 驗證 CloudFormation 部署。 | 若要確認 CloudFormation 範本中的範例資料已載入 DynamoDB,請執行下列動作: 
 | 應用程式開發人員 | 
| 任務 | 描述 | 所需的技能 | 
|---|---|---|
| 使用地理空間資料建立 Athena 資料表。 | 若要將地理位置檔案載入 Athena,請執行下列動作: 
 查詢會為代表城市鄰里的地理空間資料建立新的資料表。資料表是從 GIS shapefiles 建立。 如需處理 shapefile 並產生此表格的 Python 程式碼,請參閱 AWS 範例中的使用 Amazon Athena 對 GIS shapefile 進行地理空間處理 | 資料工程師 | 
| 任務 | 描述 | 所需的技能 | 
|---|---|---|
| 在 Athena 中宣告函數以查詢 SageMaker AI。 | 
 | 資料科學家、資料工程師 | 
| 從彙總的 DynamoDB 資料中,依鄰里預測摩托車的需求。 | 現在,您可以使用 Athena 直接從 DynamoDB 查詢交易資料,然後彙總資料進行分析和預測。這無法透過直接查詢 DynamoDB NoSQL 資料庫輕鬆達成。 
 SQL 陳述式會執行下列動作: 
 如需有關使用 SQL 在 Athena 中彙總 DynamoDB 資料和 SageMaker AI 推論資料的資訊,請參閱 GitHub 中的 athena_long.sql | 應用程式開發人員、資料科學家 | 
| 驗證輸出。 | 輸出資料表包含鄰里、經度和鄰里中樞的緯度。它還包含預測下一個小時的車輛數量。 查詢會產生所選時間點的預測。您可以變更陳述式中 如果您的 DynamoDB 資料表中有即時資料饋送,請將時間戳記變更為  | 應用程式開發人員、資料科學家 | 
| 任務 | 描述 | 所需的技能 | 
|---|---|---|
| 刪除 資源。 | 
 | 應用程式開發人員、AWS DevOps | 
相關資源
- Amazon Athena Query Federation SDK - (GitHub) 
- 查詢地理空間資料 (AWS 文件) 
- 透過 Amazon Athena ML 透過 Amazon DynamoDB 資料使用 ML 預測 Amazon Athena - (AWS 大數據部落格) 
- Amazon ElastiCache (Redis OSS) - (AWS 文件) 
- Amazon Neptune - (AWS 文件)