开源时序数据库,时序数据库是什么
其实开源时序数据库的问题并不复杂,但是又很多的朋友都不太了解时序数据库是什么,因此呢,今天小编就来为大家分享开源时序数据库的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
时序数据库是一种什么样的数据库管理系统
时序数据库(TSDB)是一种数据库管理系统,用于存储、处理和分析时间序列数据(以下简称时序数据)。
时序数据是按时间维度顺序记录且索引的数据。像智慧城市、物联网、车联网、工业互联网等领域各种类型的设备和传感器都会产生海量的时序数据,证券市场的行情数据也是时序数据,这些数据将占世界数据总量的 90%以上。
虽然你也可以使用关系数据库或 NoSQL数据库来处理时序数据,但这类数据库并没有充分利用时序数据的特点,性能提升极为有限,只能依靠集群技术,投入更多的计算资源和存储资源来处理,系统的运营维护成本急剧上升。而专门构建的时序数据库,如TDengine,充分利用了时序数据库的特点,大幅提升了数据的写入和查询速度,同时也大幅提高了数据压缩率。此外,时序数据库包含专有的时序数据分析功能和数据管理功能,使用户可以很轻松地开发应用程序。
TDengine是一款开源、云原生的时序数据库(Time Series Database),专为物联网、工业互联网、金融、IT运维监控等场景设计并优化,具有极强的弹性伸缩能力。同时它还带有内建的缓存、流式计算、数据订阅等系统功能,能大幅减少系统设计的复杂度,降低研发和运营成本,是一个极简的时序数据处理平台。
物联网系统开发如何选择时序数据库
在很多物联网系统中,都需要对联网的设备进行监控,并对监控采样到的数据进行持久化。对采样数据进行持久化,其实很多年前在工业领域已经有专门的数据库来完成这个任务了。在工业领域,这个叫实时数据库。
工业领域的实时数据库具有数据采集、实时数据缓存、数据回写(向设备发送指令)、采样数据归档存盘等主要功能。目前工业领域实时数据库基本上被国外厂家所垄断,价格昂贵。以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版权声明:本文为博主原创文章,转载请附上博文链接!
物联网系统开发如何选择时序数据库
标签:垄断两种工业空间专网没有opentsdbpen10个
几个时序数据库
================================
可用作时序的数据库:
================================
[时序]TimescaleDB,基于 PostgreSQL,支持 SQL.
[时序]KairosDB,基于 Cassandra,不支持 SQL.
[通用]CrateDB,基于 Elastic Search,但支持ANSI SQL
[时序]InfluxDB,是 db-engines上排名第一的时序数据库,最新版中集群功能不开源了,商业版支持,另外并发查询性能较差.
[通用]Kudu,列式存储(类parquet),支持 java API更新数据,比较赞的是支持 upsert.可以通过 impala或 spark来支持SQL查询.
简单点评(基于底层技术做的点评,未做个实际测试)
TimescaleDB基于PostgreSQL,可能适合数据量不太大的情形,但提供丰富的SQL功能
KairosDB,基于 Cassandra,运维应该比较简单,扩展性也应该不错,写入性能估计要比 CrateDB差一些,另外不支持SQL.
CrateDB基于 Elastic Search,写入性能应该很好,扩展性也应该不错,估计 SQL支持度和读取性能会差一些,支持全文检索.
db-engines网站的对比:
https://db-engines.com/en/system/CrateDB%3BKairosDB%3BTimescaleDB
Crate官方的比较:
http://go.cratedb.com/rs/832-QEZ-801/images/CrateDB-Cassandra-MongoDB-Comparison.pdf
================================
支持SQL的流处理框架
================================
多数流处理方案中,数据一般都会暂存在 kafka中,格式推荐使用 Json/Avro, schema推荐使用 Oracle Goldgate(OGG)数据格式.
支持SQL的流处理框架有:
1. Spark Streaming:可以写很复杂的SQL,比如和其他数据库DB做 join.
2. Kafka的 KSQL:和Kafka公用集群,不需要额外计算集群.
3. PipelineDB:基于 PostgreSQL的扩展, cluster版需要付费.流数据既可以直接写到 pipelinedb(以pipelinedb的FOREIGN TABLE形式暂存流数据),然后通过 pipelinedb SQL来处理;流数据也可以先打到kafka中,然后再通过 pipelinedb extension来处理.
几个时序数据库
标签:streaming格式新版mongod运维spark流处理处理cassandra
时序数据库是什么
时序数据库(TSDB)是一种数据库管理系统,用于存储、处理和分析时间序列数据(以下简称时序数据)。
时序数据是按时间维度顺序记录且索引的数据。像智慧城市、物联网、车联网、工业互联网等领域各种类型的设备和传感器都会产生海量的时序数据,证券市场的行情数据也是时序数据,这些数据将占世界数据总量的 90%以上。
虽然你也可以使用关系数据库或 NoSQL数据库来处理时序数据,但这类数据库并没有充分利用时序数据的特点,性能提升极为有限,只能依靠集群技术,投入更多的计算资源和存储资源来处理,系统的运营维护成本急剧上升。而专门构建的时序数据库,如TDengine,充分利用了时序数据库的特点,大幅提升了数据的写入和查询速度,同时也大幅提高了数据压缩率。此外,时序数据库包含专有的时序数据分析功能和数据管理功能,使用户可以很轻松地开发应用程序。
TDengine是一款开源、云原生的时序数据库(Time Series Database),专为物联网、工业互联网、金融、IT运维监控等场景设计并优化,具有极强的弹性伸缩能力。同时它还带有内建的缓存、流式计算、数据订阅等系统功能,能大幅减少系统设计的复杂度,降低研发和运营成本,是一个极简的时序数据处理平台。
好了,文章到这里就结束啦,如果本次分享的开源时序数据库和时序数据库是什么问题对您有所帮助,还望关注下本站哦!