本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon DynamoDB 中的彙總資料,用於 Athena 中的 ML 預測
由 Sachin Doshi (AWS) 和 Peter Molnar (AWS) 建立
環境:生產 | 技術:機器學習和 AI;資料庫;無伺服器 | |
工作負載:開放原始碼 | AWS 服務:Amazon AthenaAmazon DynamoDBAWSLambda、Amazon SageMaker、Amazon QuickSight |
Summary
此模式說明如何使用 Amazon Athena 在 Amazon DynamoDB 資料表中建置複雜的物聯網 (IoT) 資料彙總。您也會了解如何使用 Amazon 以機器學習 (ML) 推論豐富資料, SageMaker 以及如何使用 Athena 查詢地理空間資料。您可以使用此模式作為建立符合組織需求的 ML 預測解決方案的基礎。
為了示範目的,此模式使用操作機車共乘且想要預測必須為不同城市社區客戶部署之機車的最佳數量的企業範例案例。企業使用預先訓練的 ML 模型,根據過去四小時預測下一個小時的客戶需求。該案例使用路易斯維爾地鐵政府公民創新與技術辦公室
先決條件和限制
作用中 AWS 帳戶
為下列項目建立具有 AWS Identity and Access Management (IAM) 角色的 AWS CloudFormation 堆疊的許可:
Amazon Simple Storage Service (Amazon S3) 儲存貯體
Athena
DynamoDB
SageMaker
AWS Lambda
架構
技術堆疊
Amazon QuickSight
Amazon S3
Athena
DynamoDB
Lambda
SageMaker
目標架構
下圖顯示使用 Athena、Lambda 函數、Amazon S3 儲存體、 SageMaker 端點和 QuickSight 儀表板的查詢功能,在 DynamoDB 中建置複雜資料彙總的架構。
該圖顯示以下工作流程:
DynamoDB 資料表擷取從機群傳輸的 IoT 資料。
Lambda 函數會使用擷取的資料載入 DynamoDB 資料表。
Athena 查詢會為代表城市鄰里的地理空間資料建立新的 DynamoDB 資料表。
查詢位置會儲存在 S3 儲存貯體中。
Athena 函數會從託管預先訓練 ML 模型的 SageMaker 端點查詢 ML 推論。
Athena 會直接從 DynamoDB 資料表查詢資料,並彙總資料進行分析。
使用者會在 QuickSight 儀表板中檢視分析資料的輸出。
工具
AWS 服務
Amazon Athena 是一種互動式查詢服務,可協助您使用標準 直接在 Amazon S3 中分析資料SQL。
Amazon DynamoDB 是完全受管的無SQL資料庫服務,可提供快速、可預測且可擴展的效能。
Amazon SageMaker 是一項受管 ML 服務,可協助您建置和訓練 ML 模型,然後將模型部署到生產就緒的託管環境中。
Amazon Simple Storage Service (Amazon S3) 是一種雲端型物件儲存服務,可協助您儲存、保護和擷取任何數量的資料。
Amazon QuickSight 是一種雲端規模的商業智慧 (BI) 服務,可協助您在單一儀表板中視覺化、分析和報告資料。
AWS Lambda 是一項運算服務,可協助您執行程式碼,無需佈建或管理伺服器。它只會在需要時執行程式碼並自動擴展,因此您只需支付您使用的運算時間。
程式碼儲存庫
透過 GitHub Amazon Athena ML 儲存庫的 Amazon DynamoDB 資料,此模式的程式碼可在使用 ML 預測
DynamoDB 資料表
Lambda 函數可載入具有相關資料的資料表
推論請求的 SageMaker 端點,具有儲存在 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 建立。 如需處理形狀檔案並產生此表格的 Python 程式碼,請參閱 AWS 範例中的使用 Amazon Athena 對GIS形狀檔案進行地理空間處理 | 資料工程師 |
任務 | 描述 | 所需的技能 |
---|---|---|
在 Athena 中宣告要查詢 的函數 SageMaker。 |
| 資料科學家、資料工程師 |
從彙總的 DynamoDB 資料,依鄰里預測滑板機的需求。 | 現在,您可以使用 Athena 直接從 DynamoDB 查詢交易資料,然後彙總資料進行分析和預測。直接查詢 DynamoDB NoSQL 資料庫並不容易達成此目標。
SQL 陳述式會執行下列動作:
如需使用 SQL 彙總 Athena 中的 DynamoDB 資料和 SageMaker 推論資料的相關資訊,請參閱 中的 athena_long.sql | 應用程式開發人員、資料科學家 |
驗證輸出。 | 輸出資料表包含鄰里、經度和鄰里中樞的緯度。它還包括預測下一個小時的車輛數量。 查詢會產生所選時間點的預測。您可以透過變更陳述式中 如果您的 DynamoDB 資料表中有即時資料饋送,請將時間戳記變更為 | 應用程式開發人員、資料科學家 |
任務 | 描述 | 所需的技能 |
---|---|---|
刪除資源。 |
| 應用程式開發人員、 AWS DevOps |
相關資源
Amazon Athena 查詢聯合 SDK
(GitHub) 查詢地理空間資料 (AWS 文件)
透過 Amazon DynamoDB 資料搭配 Amazon Athena ML 使用 ML 預測
(AWS 大資料部落格) Amazon ElastiCache (RedisOSS)
(AWS 文件) Amazon Neptune
(AWS 文件)