推荐物联网项目中采用时序数据库

简介: 时间数据库的产品已经比较成熟。在物联网项目、制造业信息化项目中,使用时序数据库有很大益处。于是简要编写一篇文章,供大家参考🤝

随着制造业数字化的发展以及物联网应用的普及,越来越非互联网、业务系统的数据被采集、记录和存储。
很多系统开发者熟悉的是 Oracle、MySQL等关系型数据库,以及像 Redis 这样的键值数据库,于是在物联网应用、制造业数字化应用中也延续了相似的数据库选型。
这样做的好处很直接,产品熟悉,技术难度可控,开发工期可控。
但随着系统运行时间的推移,该方案面临的性能挑战越来越大,而且在业务开发中会面临很多相似的查询、统计需求需要实现。
为什么呢?
我们再审视一下物联网数据、制造业数据的特点。
首先,数据结构相对简单,主要包含三列,时间、标签、值;
第二,数据生成大多具有稳定的节奏,不存在或者与一般互联网应用那样的波峰波谷;
第三,数据很少更新,更多的是一次写,多次查询;
第四,数据量极其巨大,同时对于存储成本又很敏感;
第五,数据分析统计中很重要的维度之一是时间;
……
以上这些特点和我们熟悉的交易类数据有很明显不同。虽然用关系型数据库可以存储和管理,但没有很好的利用对于数据的理解。
如果能选择针对这类数据特点的专用数据库,则会让很多技术难点得到化解,而且会提高系统的稳定性。
在数据库行业中,这类产品叫时序数据库。
时间序列数据库是广泛应用于物联网(IoT)设备监控系统 ,企业能源管理系统(EMS),生产安全监控系统,电力检测系统等行业场景的专业数据库产品,提供百万高效写入,高压缩比低成本存储、预降采样、插值、多维聚合计算,查询结果可视化功能;解决由于设备采集点数量巨大,数据采集频率高,造成的存储成本高,写入和查询分析效率低的问题。
下面介绍几款时间数据库产品供大家选择。

Informix TimeSeries

Informix TimeSeries在时间序列数据库中的位置就像Oracle 在关系数据库中一样,属于经典的产品。

它给后续时间数据库产品研发提供了很好的标杆作用。其针对时间序列数据的特殊存储结构、索引设计以及专用计算函数都属于创新性的设计。

它也是多模数据的早期实践者,能与关系型数据库引擎并存,简化了应用系统设计、部署的复杂度。
image.png
image.png

InfluxDB

时序数据库 InfluxDB®版是一款专门处理高写入和查询负载的时序数据库,用于存储大规模的时序数据并进行实时分析,包括来自DevOps监控、应用指标和IoT传感器上的数据。目前有以下特点:

  • 专为时间序列数据量身打造的高性能数据存储。TSM引擎提供数据高速读写和压缩等功能。
  • 简单高效的HTTP API写入和查询接口。
  • 针对时序数据,量身打造类似SQL的查询语言,轻松查询聚合数据。
  • 允许对tag建索引,实现快速有效的查询。
  • 数据保留策略(Retention policies)能够有效地使旧数据自动失效。

image.png

OpenTSDB

OpenTSDB是可扩展的分布式时序数据库,底层依赖HBase。作为基于通用存储开发的时序数据库典型代表,起步比较早,在时序市场的认可度相对较高。

OpenTSDB的自我定位很清晰:The Scalable Time Series Database。

如果应用场景很看中扩展性,可以选择 OpenTSDB,否则就要考虑一下是否需要接受将 HBase 也纳入到技术栈和系统中了。

image.png

阿里云智能TSDB

阿里云智能TSDB高度兼容OpenTSDB协议,采用自研的索引,数据模型,流式聚合等技术手段提供更强大的时序能力。它不是简单的把OpenTSDB在云上部署了一份,而是基于云计算架构重新设计了底层架构;同时由于阿里云TSDB底层技术架构同OpenTSDB的实现区别巨大,对于OpenTSDB的一些运维接口不会兼容。从运维管控,功能,成本,性能等方面对比,阿里云智能TSDB相比OpenTSDB而言,优势还是很明显的。

image.png

上述应用架构中,设备将原始数据通过 MQTT 协议发送到物联网平台,经由物联网平台将数据转发到消息服务系统,继而通过流计算系统对这些数据进行实时计算处理后写入到 TSDB 中存储,或者经由物联网平台直接将原始数据写入 TSDB 中存储。前端的监控系统和大数据处理系统会利用 TSDB 的数据查询和计算分析能力进行业务监控和分析结果的实时展现。

阿里云TSDB for InfluxDB

阿里云TSDB for InfluxDB则是云上的 InfluxDB 版,与InfluxDB 有很好的兼容性,可顺利的将将线下是数据库迁移至云上;同时省去了部署、运维管理的复杂度。

  • 基础版:单节点实例,适用于个人学习、中小规模DevOps监控、应用指标和IoT传感器的时序数据采集分析、中小企业开发测试。
  • 高可用版:采用Raft一致性协议的三节点架构,适合80%以上的用户场景,尤其是大中型企业的指标采集、业务监控(物联网、容器、工业生产等重要链路资源监控)。
相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
18天前
|
存储 关系型数据库 MySQL
一个项目用5款数据库?MySQL、PostgreSQL、ClickHouse、MongoDB区别,适用场景
一个项目用5款数据库?MySQL、PostgreSQL、ClickHouse、MongoDB——特点、性能、扩展性、安全性、适用场景比较
|
3天前
|
存储 JSON Ubuntu
时序数据库 TDengine 支持集成开源的物联网平台 ThingsBoard
本文介绍了如何结合 Thingsboard 和 TDengine 实现设备管理和数据存储。Thingsboard 中的“设备配置”与 TDengine 中的超级表相对应,每个设备对应一个子表。通过创建设备配置和设备,实现数据的自动存储和管理。具体操作包括创建设备配置、添加设备、写入数据,并展示了车辆实时定位追踪和车队维护预警两个应用场景。
18 3
|
11天前
|
SQL 关系型数据库 MySQL
Go语言项目高效对接SQL数据库:实践技巧与方法
在Go语言项目中,与SQL数据库进行对接是一项基础且重要的任务
28 11
|
1月前
|
JavaScript Java 关系型数据库
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
本文介绍了一个基于Spring Boot和Vue.js实现的在线考试系统。随着在线教育的发展,在线考试系统的重要性日益凸显。该系统不仅能提高教学效率,减轻教师负担,还为学生提供了灵活便捷的考试方式。技术栈包括Spring Boot、Vue.js、Element-UI等,支持多种角色登录,具备考试管理、题库管理、成绩查询等功能。系统采用前后端分离架构,具备高性能和扩展性,未来可进一步优化并引入AI技术提升智能化水平。
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
|
1月前
|
Java 关系型数据库 MySQL
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
本文介绍了一款基于Spring Boot和JSP技术的房屋租赁系统,旨在通过自动化和信息化手段提升房屋管理效率,优化租户体验。系统采用JDK 1.8、Maven 3.6、MySQL 8.0、JSP、Layui和Spring Boot 2.0等技术栈,实现了高效的房源管理和便捷的租户服务。通过该系统,房东可以轻松管理房源,租户可以快速找到合适的住所,双方都能享受数字化带来的便利。未来,系统将持续优化升级,提供更多完善的服务。
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
|
24天前
|
Java 关系型数据库 数据库连接
SpringBoot项目使用yml文件链接数据库异常
【10月更文挑战第3天】Spring Boot项目中数据库连接问题可能源于配置错误或依赖缺失。YAML配置文件的格式不正确,如缩进错误,会导致解析失败;而数据库驱动不匹配、连接字符串或认证信息错误同样引发连接异常。解决方法包括检查并修正YAML格式,确认配置属性无误,以及添加正确的数据库驱动依赖。利用日志记录和异常信息分析可辅助问题排查。
59 10
|
18天前
|
前端开发 Java 数据库连接
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
本文是一份全面的表白墙/留言墙项目教程,使用SpringBoot + MyBatis技术栈和MySQL数据库开发,涵盖了项目前后端开发、数据库配置、代码实现和运行的详细步骤。
24 0
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
|
23天前
|
Java 关系型数据库 MySQL
SpringBoot项目使用yml文件链接数据库异常
【10月更文挑战第4天】本文分析了Spring Boot应用在连接数据库时可能遇到的问题及其解决方案。主要从四个方面探讨:配置文件格式错误、依赖缺失或版本不兼容、数据库服务问题、配置属性未正确注入。针对这些问题,提供了详细的检查方法和调试技巧,如检查YAML格式、验证依赖版本、确认数据库服务状态及用户权限,并通过日志和断点调试定位问题。
|
1月前
|
Java 数据库连接 数据库
数据库以及其他项目配置
该项目配置了数据库连接和MyBatis设置,并解决了配置文件加载问题。启动类使用 `@SpringBootApplication` 注解,可通过 `@ComponentScan` 指定扫描包。Lombok 自动生成 getter/setter 等方法,简化代码。Result 实体类用于统一返回格式。用户模块包括注册与登录功能,使用 MD5 加密密码、Spring Validation 参数校验及 JWT 认证。JWT 工具类处理令牌生成与解析,并通过拦截器验证。Redis 优化登录功能,利用 ThreadLocal 存储用户信息。此外,还包括文章模块的相关功能,如文章分类管理、
39 2
|
2月前
|
消息中间件 存储 传感器
RabbitMQ 在物联网 (IoT) 项目中的应用案例
【8月更文第28天】随着物联网技术的发展,越来越多的设备被连接到互联网上以收集和传输数据。这些设备可以是传感器、执行器或其他类型的硬件。为了有效地管理这些设备并处理它们产生的大量数据,需要一个可靠的消息传递系统。RabbitMQ 是一个流行的开源消息中间件,它提供了一种灵活的方式来处理和转发消息,非常适合用于物联网环境。
120 1

相关产品

  • 物联网平台