有了Kafka+流处理框架,为什么还需要时序数据库?
一、有了Kafka+流处理框架,为什么还需要时序数据库
在物联网实际部署中,消息中间件(kafka,emq等)和时序数据库通常是上下游的关系。
消息中间件有非常高的并发能力,能够同时接受百万级的网络连接。一个数据库(包括关系数据库和时序数据库)创建一个会话(客户端连接)的成本比较高,能接受的连接数量也就在几百和几千这样的级别(分布式数据库可以按节点数增加,但数量远远小于消息中间件)。当面对大量的物联网传感器,消息中间件架设在中间,接受传感器的数据,然后再批量写入到时序数据库中。时序数据库的写入吞吐量远远高于关系数据库,每秒写入百万级和千万级的数据点都不是问题。以分布式时序数据库DolphinDB为例,6个服务器构成的集群,每秒能达到千万测点的三副本写入。可以这么说,消息中间件的高并发能力和时序数据库的高吞吐量联合起来,解决了物联网海量数据的实时处理和存储问题。
至于时序数据库的用途,参考其它回答,包括:提供永久的数据存储和管理能力,数据查询和分析等。
抽象来看,消息队列与时序数据库没有本质的区别,都是对时间序列数据的处理。但功能上,时序数据库要有查询、计算,而消息队列只是简单的生产、消费,先进先出。由于要有计算、分析,无论是结构化写入还是schemaless写入,时序数据库内部一定要把数据结构化处理,否则没法进行计算和分析的。而消息队列完全不用考虑这个,完全做非结构化数据处理就行。从存储设计的角度来看,两者是没有区别的,都需要有数据的保留策略,都需要对数据进行分区分片。一个时间线的ID可以作为kafka来的key, 对数据指定partition.
两者正在融合,开源的TDengine就是这样的,它不仅是时序数据库,但同时又具备消息队列的功能。这样在大数据框架下,就能减少一个环节,降低系统复杂度,降低运维成本。Kafka的企业版也在做类似的事情,除消息队列功能外,对外还提供SQL查询,提供各种分析计算功能。
更进一步,流式计算也可以融合进来。流式计算也是基于时序数据的,因此TDengine从设计的名列前茅天起,就考虑了流式计算,但目前还仅仅提供时间驱动的流式计算,后续版本会提供基于事件驱动的流式计算。这样对于物联网、车联网、IT运维等场景,系统架构将更进一步简化,运维成本进一步降低。
延伸阅读:
二、时间序列数据库TSDB
TSDB(Time Series Database):一系列数据点按照时间顺序排列;时间序列数据就是历史烙印,具有不变性、时间排序性。
(基于时间的一系列数据,在有时间的坐标中将这些数据点连成线,往过去看可以做成多维度报表,揭示其趋势性、规律性、异常性;往未来看可以做大数据分析、机器学校、实现预测和预警。
时序数据库就是存放时序数据的数据库,并且需要支持时序数据的快速写入、持久化、多维度的聚合查询等基本功能)。

相关推荐HOT
更多>>
mysql经常提示too many connections是什么原因?
一、mysql提示too many connections的原因1、访问量过高当 MySQL 服务器面对大量的并发请求时,已经建立的连接数可能会不足以处理所有的请求,...详情>>
2023-10-16 22:53:10
小白学习Python,需要下载哪些软件?
一、Python解释器Python解释器是运行Python代码的核心工具。你可以从Python官方网站(https://www.python.org)上下载最新版本的Python解释器。...详情>>
2023-10-16 21:49:37
mysql如果单表数据量过千万怎么办?
一、mysql如果单表数据量过千万怎么办方案概述方案一:优化现有mysql数据库。优点:不影响现有业务,源程序不需要修改代码,成本最低。缺点:有...详情>>
2023-10-16 19:07:01
图数据库、mysql和kv数据库有什么不同?
一、图数据库、mysql和kv数据库有什么不同区别还是很大的,最根本的区别还是底层存储结构上的区别。图数据库应该就是使用图作为底层存储结构。...详情>>
2023-10-16 17:35:33热门推荐
访问网页的背后发生了什么?
沸python在实际工作中的应用有哪些?
热mysql经常提示too many connections是什么原因?
热开发人员为什么需要要有组件化思维?
新小白学习Python,需要下载哪些软件?
mysql为什么需要undo log?
到底什么情况下mysql innodb会发生回表操作?
Realm是什么?
有了Kafka+流处理框架,为什么还需要时序数据库?
mysql如果单表数据量过千万怎么办?
为什么没有以hbase作为存储引擎的关系型数据库实现?
软件app系统软件开发公司哪家好有哪些呢?
图数据库、mysql和kv数据库有什么不同?
NoSQL 运动给数据库系统留下什么宝贵的思想?
技术干货






