物联网系统开发如何选择时序数据库

在很多物联网系统中,都需要对联网的设备进行监控,并对监控采样到的数据进行持久化。对采样数据进行持久化,其实很多年前在工业领域已经有专门的数据库来完成这个任务了。在工业领域,这个叫实时数据库。

工业领域的实时数据库具有数据采集、实时数据缓存、数据回写(向设备发送指令)、采样数据归档存盘等主要功能。目前工业领域实时数据库基本上被国外厂家所垄断,价格昂贵。以PI数据库为例,基础版本(只有5000个测点)就需要大约10万美元,每个数据采集接口需要6000美元。这个价格对新兴的物联网公司来说代价太大了。

幸好,最近几年IT公司针对IT设备运维提出了一种新型的数据库:TSDB,时序数据库。该数据库专门用来存储时序数据,物联网系统从设备上采集的数据就是一种时序数据,物联网系统完全可以用TSDB来存储设备采样数据。

目前国内大型互联网公司中的阿里巴巴、百度等已经进军物联网行业的公司都提供了云服务形式TSDB数据服务。如果你的物联网应用是运行在互联网上,并且服务器也是用了Alibaba或者百度的云服务,那么你完全可以采用他们的TSDB服务来保存系统中的时序数据。

但假如你的物联网应用是运行在封闭式的局域网或者专网中的,又该如何选择呢?

用搜索引擎搜索下 “tsdb”或者 “时序数据库”,你可以看到各种开源的时序数据库,我没有对各种开源时序数据库进行过详细对比,只是大致上看了下别人的评论。从评论来看InfluxDB应该是目前综合性能最好的,但是它的集群版是闭源的商业产品。OpenTSDB用的人也挺多,但是性能上比较差,写入速度波动幅度比较大。假如你的物联网系统需要保存历史数据的测点数量不超过5万,那么用InfluxDB应该是没问题的。

假如你想对各种TSDB做一个测试,并根据测试结果来选择,我的建议如下:

1、测试其写入速度,并关注写入速度的波动性。所有的TSDB在实现的时候肯定都用来内存来缓存写入速度的,它们需要在特定时机把缓存的数据写入到磁盘进行归档。所以,在考察写入速度的时候,一定要关注它在对内存数据进行归档化处理时候的写入速度。

2、在写入的同时测试其查询速度。因为物联网系统中设备时刻都在产生数据,你的每个查询都是和大量的写入操作同时执行的。

3、测试其数据完整性,前面我们提到tsdb在执行写操作时都是先写内存的,然后在特定时候归档到磁盘。 这样一来就存在"tsdb数据库正常关闭或者异常关闭时候 丢失数据"的可能性。作为tsdb的使用者,当然希望它关闭重启的时候尽可能少丢失已经写入的数据。

4、测试其在时序错位情况下的数据完整性,时序错位有两种情况:采样数据的时间和tsdb服务器当前时间有较大偏差;两个不同测点之间,几乎同时写入的数据,但被标记为不同的采样时间(有较大的时差);在这两种情况下,重启服务器后,测试其数据丢失情况。

5、测试其磁盘占用率,假如你的系统中连接了1000的设备,每个设备有10个测点,每个测点没秒钟持久化一次,那么你每天需要持久化的时序数据有864兆,每份数据最少包含一下内容:一个测点Id、一个时间戳、一个值。测点算它4个字节、时间戳8个字节、值4个字节。在不压缩的情况下至少需要13G磁盘空间。所以压缩性能是tsdb的一项关键指标。

6、了解其查询接口是否丰富,既然把这么多历史数据都保存下来,那当然是希望这些数据能发挥出其价值。一个强大的查询接口是这些数据发挥价值的前提条件。除了普通的按照时间和标签查询某些测点在某个时间段的所有值之外,我觉得tsdb还应该包括:降频查询(在时间轴上分组聚合),聚合查询(把一些测点按照某个算法计算相同采样时间点的值,可以在查询时聚合或者写入时聚合)。
---------------------
作者:spdata
来源:CSDN
原文:https://blog.csdn.net/spdata/article/details/79777672
版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/zouhao/p/9862142.html

时间: 2024-07-29 10:13:20

物联网系统开发如何选择时序数据库的相关文章

面向物联网,UCloud 推出高性能时序数据库 UTSDB-InfluxDB

你应该敬畏时间,因为那是一切的密码. -- 电影<星际穿越> 近日,UCloud 新发布了一款时间序列数据库 UTSDB (UCloud TimeSeries Database) ,此次上线的 UTSDB-InfluxDB 版基于 InfluxDB v.1.7,完全兼容原生 InfluxDB 协议.后端存储接入 UCloud 自研的 Manul 统一存储,容量可动态扩充,最高可至数百 TB,并通过高效压缩节省 80% 存储成本.支持高并发写入,QPS 最高可达 350 万,为物联网等领域的亿级

初试 Windows XP Embedded 系统开发1

眼下 Windows PE(Preinstallation Environment)和 Windows XP Embedded 是能够脱离主机里的硬盘独立执行的 Windows 操作系统,Windows PE 多用于光盘启动,Windows Embedded 从 Feature Pack 2007 之后已经支持从 USB 设备(移动硬盘.Flash U 盘)执行. 从基础開始,菜鸟也能够开发出一个在 USB 移动硬盘上执行的操作系统. 一.Windows Embedded 开发资源简单介绍 Wi

初试 Windows XP Embedded 系统开发

目前 Windows PE(Preinstallation Environment)和 Windows XP Embedded 是可以脱离主机里的硬盘独立运行的 Windows 操作系统,Windows PE 多用于光盘启动,Windows Embedded 从 Feature Pack 2007 之后已经支持从 USB 设备(移动硬盘.Flash U 盘)运行. 从基础开始,菜鸟也可以开发出一个在 USB 移动硬盘上运行的操作系统. 一.Windows Embedded 开发资源简介 Wind

互联网级监控系统必备-时序数据库之Influxdb技术

时间序列数据库,简称时序数据库,Time Series Database,一个全新的领域,最大的特点就是每个条数据都带有Time列. 时序数据库到底能用到什么业务场景,答案是:监控系统. Baidu一下,互联网监控系统,大家会发现小米.饿了吗等互联网巨头都在用时序数据库实现企业级的互联网监控系统. 很多人会说,用Zabbix不就搞定了,其实不是这样的,简单的主机资源监控.网络监控.小规模的部署环境,Zabbix能搞定. 如果在IDC 上千台服务器环境下,分布式应用架构.各种中间件,这种情况下我们

如何选择一家直播系统开发的公司?

如何选择一家直播系统开发的公司? 直播系统开发按照常理来说 我们在选择物品或者用品时,我们首先想到的是牛逼的优秀的东西,那么在选择想直播系统开发一样的公司时,我们该如何选择呢?在这个什么都有什么都不缺的社会里,想要找到一家 近乎完美的公司来做这一套直播系统,肯定是得要花大价钱,但是今天呢阐光小编为您介绍一家物美价廉的公司,阐光直播系统开发不仅拥有独立的一整套秀场直播和游戏直播系统,还有专业手机APP直播解决方案,推出一套全部由手机推送和观看的类似映客.花椒的APP产品.据了解,阐光直播系统开发团

互联网级监控系统必备-时序数据库之Influxdb集群及踩过的坑

上篇博文中,我们介绍了做互联网级监控系统的必备-Influxdb的关键特性.数据读写.应用场景: 互联网级监控系统必备-时序数据库之Influxdb 本文中,我们介绍Influxdb数据库集群的搭建,同时分享一下我们使用集群遇到的坑! 一.环境准备 同一网段内,3个CentOS 节点,相互可以ping通 3个节点CentOS配置Hosts文件,相互可以解析主机名 Azure 虚拟机启用root用户 influxdb-0.10.3-1.x86_64.rpm 设置端口8083 8086 8088 8

boss金服:期货配资系统开发选择

线上期货配资系统开展迅猛,要想不被淘汰,开展线上期货配资渠道不可避免.那么选择怎样的期货配资系统来代理便是线下公司要考虑的重要问题了. 大部分线下配资公司在向线上渠道开展的时候都有相关相似的烦恼.首先从费用上来说就是一笔不小的开支,其次线上运营渠道对于配资系统的稳定性有相当高的要求,假如软系统bug过多,渠道在运营当中就会时常呈现掉单.网站卡顿等问题,给渠道造成惨重丢失. 在挑选代理或者定制期货配资系统时应该具体注意哪些问题呢?下面小编给大家详细罗列一下: 1.开发方 软件系统的开发方是团队还是

boss金服:如何选择股票配资系统开发公司

股票配资的市场一直都是非常巨大的,但是这个职业也可谓是风云变幻.股票配资职业从前期的什物典当模式,到后来保证金模式的出现,也在不断的开展而且能够逐渐解决实践问题,资金流向和安全问题的危险一直没有得到解决方案,直至线上股票配资渠道的出现. 在金融范畴,股票配资由于公司场和巨大的利润,致使很多公司和人物投入其.因此,公司场上涌出各式各样的股票配资系统,同时也出现了许多开发配资软件的技术公司.不过,如今市面上看到的配资软件,真的没有几个功用完善而且满意实践使用的,如此会让客户体会极差,导致流失. 股票

【物联网(IoT)开发】使用 Arduino 和 Python在 Bluemix 上开发一个 IoT 应用程序之控制LED灯开关

上篇"[物联网(IoT)开发]Arduino 入门 Hello World(LED闪烁)"只是通过将一段程序烧录到Arduino开发板上控制LEC闪烁,没有任何连网动作,也就是说断开网络提供电源依然还可以工作.本文将介绍如何开发一个应用程序,以便使用适用于物联网 (Internet of Things, IoT) 的技术.我们的应用程序通过串口收集数据,将其存储在一个 Web 服务器上,然后在网页上实时显式结果,并可以在网页上控制LED的开关. 构建一个类似的应用程序的前提条件 对于第