利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务

这是与 MongoDB 的 Babu Srinivasan 共同撰写的客座文章。

随着行业在当今快节奏的商业环境中不断发展,无法进行实时预测给严重依赖准确和及时洞察的行业带来了重大挑战。各个行业缺乏实时预测带来了紧迫的业务挑战,可能会严重影响决策和运营效率。如果没有实时洞察,企业就很难适应动态的市场条件、准确预测客户需求、优化库存水平并做出主动的战略决策。金融、零售、供应链管理和物流等行业面临着错失机会、成本增加、资源配置效率低下以及无法满足客户期望的风险。通过探索这些挑战,组织可以认识到实时预测的重要性,并探索创新的解决方案来克服这些障碍,使他们能够保持竞争力,做出明智的决策,并在当今快节奏的商业环境中蓬勃发展。

通过利用 MongoDB 原生的变革潜力 时间序列 数据能力并将其与 亚马逊 SageMaker 画布,组织可以克服这些挑战并释放新的敏捷性水平。 MongoDB 强大的时间序列数据管理允许实时存储和检索大量时间序列数据,而先进的机器学习算法和预测功能则通过 SageMaker Canvas 提供准确、动态的预测模型。

在这篇文章中,我们将探讨使用 MongoDB 时间序列数据和 SageMaker Canvas 作为综合解决方案的潜力。

MongoDB地图集

MongoDB地图集 是一个完全托管的开发人员数据平台,可简化云中 MongoDB 数据库的部署和扩展。它是一种基于文档的存储,提供完全托管的数据库,具有内置的全文和矢量 搜索, 支持 地理空间 查询, 图表 和高效的原生支持 时间序列 存储和查询能力。 MongoDB Atlas 为大容量数据摄取提供自动分片、水平可扩展性和灵活的索引。其中,本机时间序列功能是一个突出的功能,使其成为管理大量时间序列数据的理想选择,例如业务关键应用程序数据、遥测、服务器日志等。通过高效的查询、聚合和分析,企业可以从带时间戳的数据中提取有价值的见解。通过使用这些功能,企业可以有效地存储、管理和分析时间序列数据,从而实现数据驱动的决策并获得竞争优势。

亚马逊 SageMaker 画布

亚马逊 SageMaker 画布 是一项可视化机器学习 (ML) 服务,使业务分析师和数据科学家能够构建和部署自定义 ML 模型,而无需任何 ML 经验或无需编写一行代码。 SageMaker Canvas 支持多种用例,包括 时间序列预测,使企业能够准确预测未来的需求、销售、资源需求和其他时间序列数据。该服务使用深度学习技术来处理复杂的数据模式,使企业即使使用最少的历史数据也能生成准确的预测。通过使用 Amazon SageMaker Canvas 功能,企业可以做出明智的决策、优化库存水平、提高运营效率并提高客户满意度。

SageMaker Canvas UI 可让您无缝集成来自云端或本地的数据源、轻松合并数据集、训练精确的模型以及利用新兴数据进行预测,所有这些都无需编码。如果您需要自动化工作流程或直接将 ML 模型集成到应用程序中,可以通过以下方式访问 Canvas 预测功能 APIs.

解决方案概述

用户将其事务时间序列数据保存在 MongoDB Atlas 中。通过Atlas Data Federation,数据被提取到Amazon S3存储桶中。 Amazon SageMaker Canvas 访问数据以构建模型并创建预测。预测结果存储在 S3 存储桶中。使用 MongoDB 数据联合服务,通过 MongoDB 图表直观地呈现预测。

下图概述了建议的解决方案架构。

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

先决条件

对于此解决方案,我们使用 MongoDB Atlas 来存储时间序列数据,使用 Amazon SageMaker Canvas 来训练模型并生成预测,并使用 Amazon S3 来存储从 MongoDB Atlas 中提取的数据。

确保您具备以下先决条件:

配置 MongoDB Atlas 集群

按照以下中的说明创建免费的 MongoDB Atlas 集群 创建集群。设置 数据库访问网络访问.

填充 MongoDB Atlas 中的时间序列集合

出于本演示的目的,您可以使用来自 Kaggle 并使用 MongoDB 将其上传到 MongoDB Atlas 工具 ,优选 MongoDB指南针.

以下代码显示了时间序列集合的示例数据集:

{ "store": "1 1", "timestamp": { "2010-02-05T00:00:00.000Z"}, "temperature": "42.31", "target_value": 2.572, "IsHoliday": false
}

以下屏幕截图显示了 MongoDB Atlas 中的示例时间序列数据:

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

创建一个S3存储桶

创建 AWS中的S3存储桶,需要在其中存储和分析时间序列数据。请注意,我们有两个文件夹。 sales-train-data 用于存储从 MongoDB Atlas 中提取的数据,而 sales-forecast-output 包含来自 Canvas 的预测。

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

创建数据联合

设置 数据联合 在 Atlas 中并将之前创建的 S3 存储桶注册为数据源的一部分。请注意,在 Atlas 集群的数据联合中创建了三个不同的数据库/集合、用于 MongoDB Atlas 数据的 S3 存储桶以及用于存储 Canvas 结果的 S3 存储桶。

以下屏幕截图显示了数据联合的设置。

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

设置Atlas应用服务

创建 MongoDB 应用服务 使用以下命令部署将数据从 MongoDB Atlas 集群传输到 S3 存储桶的功能 $出 聚合。

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

验证数据源配置

应用程序服务创建一个新的 Altas 服务名称,需要在以下函数中将其引用为数据服务。验证是否已创建 Atlas 服务名称并记下它以供将来参考。

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

创建函数

设置 Atlas 应用程序服务以创建 触发器和功能。需要根据训练模型的业务需求安排触发器以一定的周期频率将数据写入 S3。

以下脚本显示了写入 S3 存储桶的函数:

exports = function () { const service = context.services.get(""); const db = service.db("") const events = db.collection(""); const pipeline = [ { "$out": { "s3": { "bucket": "<S3_bucket_name>", "region": "<AWS_Region>", "filename": {$concat: ["<S3path>/<filename>_",{"$toString": new Date(Date.now())}]}, "format": { "name": "json", "maxFileSize": "10GB" } } } } ]; return events.aggregate(pipeline);
};

示例功能

该函数可以通过“运行”选项卡运行,并且可以使用应用程序服务中的日志功能来调试错误。此外,可以使用左窗格中的“日志”菜单来调试错误。

以下屏幕截图显示了函数的执行以及输出:

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

在 Amazon SageMaker Canvas 中创建数据集

以下步骤假设您已创建 SageMaker 域和用户配置文件。如果您尚未这样做,请确保配置 SageMaker 域和用户配置文件。在用户配置文件中,将您的 S3 存储桶更新为自定义并提供您的存储桶名称。

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

完成后,导航到 SageMaker Canvas,选择您的域和配置文件,然后选择 Canvas。

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

创建提供数据源的数据集。

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

选择数据集源为S3

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

从 S3 存储桶中选择数据位置,然后选择创建数据集。

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

检查架构并单击创建数据集

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

成功导入后,数据集将出现在列表中,如下图所示。

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

训练模型

接下来,我们将使用 Canvas 来设置训练模型。选择数据集并单击“创建”。

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。
创建模型名称,选择预测分析,然后选择创建。

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

选择目标列

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

接下来,单击配置时间序列模型并选择 item_id 作为项目 ID 列。

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

选择 tm 对于时间戳列

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

要指定您想要预测的时间量,请选择 8 周。

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

现在您可以预览模型或启动构建过程。

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

预览模型或启动构建后,您的模型将被创建,最多可能需要四个小时。您可以离开屏幕并返回查看模型训练状态。

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

模型准备好后,选择模型并单击最新版本

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

查看模型指标和列影响,如果您对模型性能感到满意,请单击预测。

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

接下来,选择批量预测,然后单击选择数据集。

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

选择您的数据集,然后单击选择数据集。

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

接下来,单击开始预测。

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

观察创建的作业或观察 SageMaker 中“推理”、“批量转换作业”下的作业进度。

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

作业完成后,选择该作业,并记下 Canvas 存储预测的 S3 路径。

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

在 Atlas 图表中可视化预测数据

要可视化预测数据,请创建 MongoDB Atlas 图表 基于 P10、P50 和 P90 预测的联合数据 (amazon-forecast-data),如下图所示。

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。

清理

  • 删除 MongoDB Atlas 集群
  • 删除 Atlas 数据联合配置
  • 删除Atlas应用服务App
  • 删除 S3 存储桶
  • 删除 Amazon SageMaker Canvas 数据集和模型
  • 删除 Atlas 图表
  • 注销 Amazon SageMaker Canvas

结论

在这篇文章中,我们从 MongoDB 时间序列集合中提取时间序列数据。这是一个针对时间序列数据的存储和查询速度进行优化的特殊集合。我们使用 Amazon SageMaker Canvas 来训练模型并生成预测,并在 Atlas 图表中可视化预测。

有关更多信息,请参阅以下资源。


关于作者

利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。伊戈尔·阿列克谢耶夫 是 AWS 数据和分析领域的高级合作伙伴解决方案架构师。 Igor 正在与战略合作伙伴合作,帮助他们构建复杂的 AWS 优化架构。 在加入 AWS 之前,作为一名数据/解决方案架构师,他在大数据领域实施了许多项目,包括 Hadoop 生态系统中的多个数据湖。 作为一名数据工程师,他参与了将 AI/ML 应用于欺诈检测和办公自动化的工作。


利用 MongoDB 时间序列集合和 Amazon SageMaker Canvas 加快洞察速度 |亚马逊网络服务柏拉图区块链数据智能。垂直搜索。人工智能。巴布·斯里尼瓦桑(Babu Srinivasan)
是 MongoDB 的高级合作伙伴解决方案架构师。 在目前的职位上,他正在与 AWS 合作,为 AWS 和 MongoDB 解决方案构建技术集成和参考架构。 他在数据库和云技术方面拥有超过二十年的经验。 他热衷于为与跨多个地区的多个全球系统集成商 (GSI) 合作的客户提供技术解决方案。

时间戳记:

更多来自 AWS机器学习