当前位置: 首页 > article >正文

物联网监控数据采集,传输和存储方案:使用 GreptimeDB 和 YoMo

概述

随着物联网(IoT)技术的广泛应用,企业在管理海量实时数据时面临越来越多的挑战。物联网设备生成的数据不仅数量庞大,而且需要以高效、安全、低延迟的方式传输和存储,才能支持实时业务决策。

在此背景下,我们提出并集成了一种高效的数据采集、传输和存储解决方案,结合了 YoMo 边缘计算框架和 GreptimeDB 时序数据库的强大功能,旨在最大化数据处理效率,减少网络延迟,并提升数据存储与分析的效果。通过这一集成方案,企业不仅能优化数据使用效率,还能显著提升实时数据处理和分析的能力,为业务决策提供更加及时、准确的支持。

YoMo:低延迟边缘计算框架

YoMo 是一个开源的地理位置分布式的边缘计算框架,专注于实时数据处理。其设计理念是将端测数据通过安全的低时延网络以流的方式输送至云端,并在云端通过 Stateful Serverless 进行实时处理。

YoMo 的优势主要包括:

  • 低时延传输:尤其在蜂窝网络下,YoMo 能够有效减少 IoT 设备的数据传输延迟,提升吞吐量。

  • 地理位置分布式(Geo-distributed):针对大规模企业级 IoT 应用的特性,支持多区域部署,数据始终被路由至最近的数据中心,并完成实时处理。

  • 高度安全性:可为每个独立 IoT 设备单独配置 TLS v1.3 证书,确保数据传输链路的安全性。

GreptimeDB:高性能时序数据库

GreptimeDB 是一款云原生时序数据库,专为处理海量时序数据而设计。其核心能力体现在高效的数据存储与实时分析上,能够应对各种复杂的 IoT 数据应用场景。

GreptimeDB 的优势主要包括:

  • 数据压缩率优越,对象存储成本低廉:在边缘计算场景下,GreptimeDB 的数据压缩率是传统 SQLite 的 19 倍,大大降低了数据存储和传输的开销。其对象存储与主流云服务兼容,通过灵活的资源配置,能够显著减少计算和存储成本,适合大规模 IoT 场景。

  • 高性能写入,水平扩展能力强:与 Grafana Mimir 相比,GreptimeDB 能够在同等条件下支持单集群至少 150 个节点的规模,同时仅占用 1/5 的 CPU 和内存资源。其高效的水平扩展能力使其在处理海量 IoT 时序数据时,性能表现更加优越。

  • 支持 SQL 查询和分析:GreptimeDB 支持完整的 SQL 查询语法,便于数据工程师快速上手使用,同时支持复杂的时序数据分析和聚合操作。无论是简单的时序数据查询,还是复杂的业务分析,GreptimeDB 都能够提供快速的查询响应和高效的分析能力。

方案应用示例

以客户 HS 为例,该公司为制糖工厂提供技术支持,业务范围涵盖美国和亚洲。HS 的传统物联网系统面临两个主要难题:

1. 不稳定的 IoT 网络

HS 近 90% 的 IoT 设备通过蜂窝网络传输数据,丢包率超过 10% 的连接占比达 28%,丢包率超过 20% 的占比为 8%。同时,50% 的设备连接 RTT(往返时间)超过 30ms。传统的 IoT 系统在这种高丢包率和高延迟的网络环境下,性能下降了 80%,严重影响了数据传输的可靠性和系统的可用性。

通过使用 YoMo 框架简单重写数采模块吼,借助 QUIC 协议的高效传输能力,该公司成功地在弱网环境中实现了数据的低延迟传输,99% 的数据能够在 50ms 内写入云端,从而大幅提升了系统的稳定性。

2. 海量 IoT 数据的存储和分析

HS 的 IoT 系统每天从全球的制糖工厂中收集超过 2TB 的时序数据,涵盖了温度、湿度、生产线效率等信息。在数据量日益增长的情况下,传统系统面临存储和查询效率的瓶颈,尤其是在每小时的生产高峰期,数据的写入速度和查询延迟问题尤为严重,影响了工厂的实时生产管理。

为了解决这一问题,HS 选择使用 GreptimeDB 来优化其存储和分析架构,效果如下:

  • 高效写入:GreptimeDB 支持高并发写入,HS 系统在高峰时段每秒处理 50 万条数据,GreptimeDB 通过水平扩展,快速扩展写入容量到 2 倍以上,同时保持资源开销在合理水平避免了系统过载问题。

  • 存储优化:GreptimeDB 通过时序数据压缩算法,使存储开销降低了约 50%,这帮助 HS 显著减少了硬件投入和云存储成本。

  • 实时查询和分析:借助 GreptimeDB 的查询优化技术,HS 能够在 1 秒内处理上百万条时序数据,并通过 SQL 进行复杂聚合查询,保证了工厂运营的实时监控和分析需求。

通过 GreptimeDB 的存储优化和高性能写入能力,HS 大大提升了 IoT 数据的处理效率,保障了在高数据量场景下的系统稳定性和分析能力。

方案架构设计

在这里插入图片描述

(图 1 :YoMo 和 GreptimeDB 集成架构)

这一集成方案的架构设计围绕以下几个关键环节展开:

  1. 高效数据传输:IoT 设备采集的数据首先通过 YoMo 框架在边缘设备上进行预处理,经过优化后的数据通过低延迟、高带宽的网络协议传输到 GreptimeDB 中。这不仅减少了网络带宽的占用,也确保了数据传输过程中的高效性和安全性。

  2. 集中数据存储与分析:GreptimeDB 作为核心的数据存储和分析平台,能够高效地处理从边缘设备传输的数据,支持大规模数据的高吞吐量写入和低延迟查询,帮助企业实时分析数据。

  3. 决策支持:通过 YoMo 和 GreptimeDB 的集成,企业能够迅速捕捉关键业务事件并作出及时响应,优化运营流程,提升决策效率。

总结

在大规模物联网场景中,数据的生成、采集、传输和存储要求极高的效率。通过 YoMo 和 GreptimeDB 的有效结合,这一集成方案为企业提供了从数据采集到实时分析的完整解决方案。它不仅提升了数据处理效率和网络传输性能,还提高了系统的整体运行效率和实时性,满足了 IoT 环境下对海量数据高效处理的需求。

您可以在 GitHub repo 中查看我们的示例代码,该项目展示了如何从 AI 服务器实时获取 GPU 负载数据,并通过 YoMo 将其传输至 GreptimeDB 进行存储和分析。

下图为一个实时监控 GPU 服务器的性能监测看板示例:
在这里插入图片描述

(图 2 :性能监测看板示例)

YoMo 团队在全球十多个数据中心管理着数百台 GPU 服务器,依托这一实时监控系统,确保资源的高效调度,优化全球范围内的计算任务分配。

GreptimeDB 则针对国内外客户的需求以及市场中的数据库痛点,结合云原生架构和强大的水平扩展能力,为物联网设备的数据存储和分析提供全面支持。

关于 Greptime

Greptime 格睿科技专注于为可观测、物联网及车联网等领域提供实时、高效的数据存储和分析服务,帮助客户挖掘数据的深层价值。目前基于云原生的时序数据库 GreptimeDB 已经衍生出多款适合不同用户的解决方案,更多信息或 demo 展示请联系下方小助手(微信号:greptime)。

欢迎对开源感兴趣的朋友们参与贡献和讨论,从带有 good first issue 标签的 issue 开始你的开源之旅吧~期待在开源社群里遇见你!添加小助手微信即可加入“技术交流群”与志同道合的朋友们面对面交流哦~

Star us on GitHub Now: https://github.com/GreptimeTeam/greptimedb

官网:https://greptime.cn/
文档:https://docs.greptime.cn/
Twitter: https://twitter.com/Greptime
Slack: https://greptime.com/slack
LinkedIn: https://www.linkedin.com/company/greptime/


http://www.kler.cn/a/372934.html

相关文章:

  • Java集合使用注意事项总结
  • 若依框架部署到服务器后头像资源访问404
  • Jmeter自动化实战
  • SDK如何测试
  • 直播推流和拉流--系统篇
  • 【水下生物数据集】 水下生物识别 深度学习 目标检测 机器视觉 yolo(含数据集)
  • Flink CDC系列之:调研应用Flink CDC将 ELT 从 MySQL 流式传输到 Doris方案
  • 如何解决RabbitMQ消息的重复消费问题
  • ubuntu 24 (wayland)如何实现无显示器远程桌面
  • 基于Python的A*算法实现路径规划
  • 农村扶贫管理:SpringBoot解决方案
  • PPT / Powerpoint中利用LaTeX输入公式
  • 机器学习之线性回归
  • 二、k8s快速入门之docker+Kubernetes平台搭建
  • 提升网站速度与性能优化的有效策略与实践
  • ShellScript脚本编程(函数与正则表达式)
  • 软考:中间件
  • leetcode 303.区域和检索-数组不可变
  • 1.5 新特性 C++面试常见问题
  • 【Linux】-常见指令(1)
  • MS01SF1 精准测距UWB模组助力露天采矿中的人车定位安全和作业效率提升
  • 62.不同路径 63.不同路径ii
  • 我的电脑问题
  • C++设计模式创建型模式———单例模式
  • 计算机网络(Ⅵ)应用层原理
  • HTML入门教程20:HTML头部