使用 MongoDB Atlas 和实时 IoT 数据监控火箭发射。
产品: MongoDB Atlas、MongoDB聚合管道、MongoDB时间序列、MongoDB Atlas Charts、MongoDB Atlas数据库、MongoDB Atlas Data Federation、MongoDB Atlas Search、MongoDB Atlas SQL接口、MongoDB Atlas触发器
解决方案概述
该解决方案使用 MongoDB 的多云数据库平台来分析火箭发射的物联网(IoT)数据。它使用来自蓝色起源火箭发射的开源数据集以及虚构数据。
典型的火箭发射从初始倒计时开始到火箭有效载荷进入轨道需要八个小时。在此窗口期间,捕获火箭性能的传感器每秒生成约一百万个数据点。
虽然来自火箭的指标构成了本使用案例中的大部分数据,但还有其他两个数据源:
笔记由火箭工程师和自动化系统创建。火箭工程师在想要标记发射后需要记住的任何内容时会创建笔记。此外,自动化系统会监控流的指标,并在值超出预期阈值时创建注释。
天气数据是从第三方检索的,存储在Amazon S3 存储桶中,并在启动后与启动数据结合进行分析。
其他适用行业和使用案例
对实时物物联网(IoT)数据执行实时分析的能力在许多行业中都很有价值,例如:
制造:制造机械装载有物联网(IoT)传感器,这些传感器一次运行数小时,类似于火箭发射。必须在机械运行期间和运行后进行分析。
供应链物流:物联网(IoT)传感器启用从运输方式到包裹本身的运输中和运输后的供应链优化。
电子商务:除了仓库和运输物流外,零售商还利用实时洞察来推动个性化或改进业务流程。
参考架构
下图显示了该解决方案的架构。MongoDB 灵活的文档模型和Atlas工具简化了数据的存储和交互方式。 实时传感器数据、工程师观察和实时天气数据都可以在MongoDB Atlas中组合。
图 1. 基于 MongoDB 的参考架构
数据模型方法
此解决方案将启动数据存储在两个Atlas集合中:launchData
和 notes
。
最初,Rocket 会生成 4 元素元组形式的指标,其结构如下:(device, timestamp, metric, value)
。然后,这些值被聚合并作为单个文档写入 launchData
集合,该文档表示特定设备在特定时间的指标,如以下示例文档所示:
{ _id: ObjectId("62f2f8b5800b621ee724bb94"), time: ISODate("2020-10-13T13:33:30.219Z"), meta: { device: 'truth' }, TIME_NANOSECONDS_TAI: Long("1602596010219040000"), truth_pos_CON_ECEF_ECEF_M2: -5268929.31643981, truth_pos_CON_ECEF_ECEF_M1: -1387897.36558835, truth_pos_CON_ECEF_ECEF_M3: 3306577.65409484, truth_vel_CON_ECEF_ECEF_MpS2: -0.00810950305119273, truth_vel_CON_ECEF_ECEF_MpS3: 0.00414972080992211, truth_quat_CON2ECEF1: -0.458400879273711, truth_quat_CON2ECEF2: -0.176758395646534, truth_quat_CON2ECEF3: 0.511475024782863, truth_vel_CON_ECEF_ECEF_MpS1: 0.00220006484335229, truth_quat_CON2ECEF4: 0.7049953208872 }
此文档模型也适用于MongoDB时间序列集合。
构建解决方案
该解决方案的 GitHub存储库提供了入门所需的数据和代码。此外,存储库还包含由三部分组成的实时流媒体记录的链接,其中详细介绍了该解决方案。
要开始使用此解决方案,请执行以下步骤。
关键要点
MongoDB 灵活的数据库平台通过提供以下功能来实现应用程序驱动的物联网(IoT)分析:
跨多种数据类型对数据进行建模:MongoDB 灵活的文档模型允许您在一个文档、集合或数据库中存储多种类型的数据,从而简化与数据交互的方式并减少对不同表的需求。
集成函数以React实时数据:MongoDB 的快速查询功能允许您实时分析数据。
通过就地聚合最大限度地减少 ETL 流程:MongoDB 的聚合管道启用您能够将数据转换为计算结果并将其存储在新的集合中。
作者
Jay Runkel,MongoDB