Docs 菜单
Docs 主页
/

使用 MongoDB 进行智能电表分析

MongoDB 为智能电表系统提供了一个可扩展的平台,实现实时数据收集、时间序列分析和异常检测。

使用案例: IoT应用驱动的分析单一视图

行业: 制造与移动、能源与环境

产品和工具: MongoDB AtlasMongoDB Atlas ChartsMongoDB Change StreamsMongoDB 时间序列集合MongoDB 查询语言

合作伙伴: Cedalo

随着智能电表技术采用率的提高,MongoDB 提供了全面平台,用于大规模扩展管理和分析智能电表的时间序列数据。该智能电表解决方案可帮助公用事业公司:

  • 收集高频仪表读数

  • 实时处理流数据。

  • 高效存储历史数据

  • 检测异常以识别电压尖峰、服务中断或异常消费模式等问题

该解决方案利用以下MongoDB集成和功能,支持公司在扩展时保持性能和数据可访问性:

  • 物联网(IoT)消息传递协议集成:MongoDB 与 MQTT 等物联网(IoT)消息传递协议集成,支持从智能电表的前端单元可靠地引入数据。

  • MongoDB Atlas:MongoDB Atlas的原生时间序列支持可实现时态数据的高效存储和查询。

  • MongoDB高级功能:像数据层级和Atlas Online Archive这样的高级功能有助于经济高效地管理历史数据。

  • 分析和监控:内置分析功能通过可自定义的仪表盘和报告启用实时监控和运营见解。

该解决方案包含两个主要组件:智能电表数据存储使用MongoDB进行智能电表数据管理

为了使用智能电表,电力公司部署了一个核心智能电表生态系统,其中包括以下组件:

  • 智能电表:智能电表收集来自终端消费者的数据,并通过 LAN 将其传输到数据聚合器。您可以根据数据需求将传输频率调整为 15 分钟、30 分钟或每小时。

  • 电表数据集合网络:聚合器检索智能电表数据,然后将其传输到 HES

  • 头端系统:HES 分析数据并将其发送到 MDMS。初始通信路径使用可直接发送到仪表、客户数或分配设备的命令。

  • 计量数据管理系统:MDMS 系统使用 MongoDB Atlas 作为该解决方案的后端数据库。数据到达 HES 后,将通过 MQTT 协议传输,提供商将其传输到 MongoDB Atlas。MongoDB Atlas 存储智能电表数据,包括电表 ID、时间戳等信息,以及能源、电流或电压等测量值。

领先的 MQTT 提供商(例如,Cedalo)具有与 MongoDB 的集成,启用跨实例和区域的横向扩展实现无缝数据传输和对智能电表收集的信息进行高效管理。该解决方案采用了 Cedalo Pro Mosquitto MQTT 代理来促进有效的消息传输。Cedalo 代理连接到MongoDB,确保两个系统之间的数据持续流动。

将智能电表数据存储在 MongoDB Atlas 中后,您可以对其进行分析以获取异常情况和见解。该解决方案利用三个关键 MongoDB 功能来创建下一代 MDMS:

  1. MongoDB 变更流

  2. MongoDB 时间序列集合

  3. 最出色的特性

MongoDB变更流启用实时捕获和处理数据库更改(例如插入操作),从而立即见解能源消耗模式、系统异常和潜在故障。智能电表系统的实时功能允许使用MongoDB聚合框架进行及时分析,检测异常并防止代价高昂的损坏和服务中断。

MongoDB将分析后的数据存储在时间序列集合中。这些专门的集合对您的智能电表数据执行以下操作:

  • 提供高压缩

  • 增强时间序列数据的查询性能

  • 启用快速操作

端到端智能电表管理系统架构

图 1. 端到端智能电表管理系统架构

该解决方案使用两个时间序列数据模型。您可以将第一个模型用于原始智能电表数据,并将 meter_id 作为 metaField

{
"_id": "668cb56d3830323642e562d9" ,
"timestamp": { "$date": "1720497517183" },
"power_factor": 0.89 ,
"power": 220.1 ,
"frequency": 49.85,
"meter_id": 1,
"energy": 0.22,
"current": 1,
"voltage": 219.38
}

第二数据集包括根据预定义标准在各种测量中检测到的异常。在以下示例中,异常是指与平均值相差超过三个标准偏差的读数。此数据集使用 meter_id 作为 metaField

{
"_id": "668d4a023819ef77d3fc84d8",
"timestamp": { "$date": "1720535553856" },
"meter_id": 3,
"data": {
"voltage": 190.06,
"current": 18.13,
"power": 3445.67,
"energy": 3.45,
"power_factor": 0.76,
"frequency": 49.92
},
"anomalies": ["voltage", "current"]
}

该智能电表数据管理解决方案使用 MQTT 代理和 MongoDB Atlas 来收集和分析现代能源基础设施数据。

注意

虽然此实现展示了 Cedalo 的 MQTT 代理,但该解决方案与代理无关,并支持与各种 MQTT 提供商集成。

按照以下步骤,使用MongoDB设立智能电表数据管理系统。有关此解决方案的更详细实现,请参阅 GitHub 存储库。

1
  1. 设置MQTT 代理以实现可靠的消息处理。

  2. 配置代理与 MongoDB 的集成。

  3. 建立安全的数据流媒体管道。

  4. 支持智能电表实时数据收集。

  5. 实现代理管理和监控。

2

配置环境变量:

  • MQTT 代理连接详细信息

  • MongoDB 连接 URI

  • 数据库和集合名称

  • 分析引擎配置

  • Atlas Charts集成

3
  1. 创建包含所需集合的MongoDB 数据库。

  2. 为以下内容设置 时间序列集合:

    • Anomalies data

    • 指标数据

    • 转换后的数据

  3. 配置数据转换管道。

  4. 启用实时数据处理功能。

4
  1. 部署应用程序组件。

  2. 实现实时监控功能。

  3. 设置异常检测算法。

  4. 创建自定义仪表盘。

  5. 能够进行交互式数据探索。

  • 数据管理至关重要:智能电表会生成大量时间序列数据,这给数据互操作性、隐私和处理带来了挑战。解决方案需要灵活、可扩展的数据库来处理高频、复杂的数据流。

  • MQTT 支持高效的 IoT 通信:智能电表生态系统需要轻量级的发布-订阅协议,以便在设备、聚合器和管理系统之间进行高效、安全的数据传输。

  • MongoDB 提供全面的 IoT 数据解决方案:时间序列集合、变更流、聚合框架和灵活的文档模型帮助 MongoDB 解决智能电表的关键挑战,如异常检测、实时分析和可扩展的数据存储。

  • 使用集成方法:成功的智能电表实现结合了 MQTT 等消息传递协议、高级数据库技术和综合分析,将原始电表数据转换为可行的见解。

  • Dr. Humza Akhtar, MongoDB

  • Rami Pinto,MongoDB

  • Sebastian Rojas Arbulu, MongoDB

  • Diego Canales, MongoDB

  • 利用 IoT 数据实现应用程序驱动型智能

  • 为智能制造构建物联网(IoT)数据中心

  • 基于音频的实时 AI 诊断

后退

构建 IoT 数据中心

在此页面上