千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:济南千锋IT培训  >  技术干货  >  有了Kafka+流处理框架,为什么还需要时序数据库?

有了Kafka+流处理框架,为什么还需要时序数据库?

来源:千锋教育
发布人:xqq
时间: 2023-10-20 14:18:18

一、有了Kafka+流处理框架,为什么还需要时序数据库

在物联网实际部署中,消息中间件(kafka,emq等)和时序数据库通常是上下游的关系。

消息中间件有非常高的并发能力,能够同时接受百万级的网络连接。一个数据库(包括关系数据库和时序数据库)创建一个会话(客户端连接)的成本比较高,能接受的连接数量也就在几百和几千这样的级别(分布式数据库可以按节点数增加,但数量远远小于消息中间件)。当面对大量的物联网传感器,消息中间件架设在中间,接受传感器的数据,然后再批量写入到时序数据库中。时序数据库的写入吞吐量远远高于关系数据库,每秒写入百万级和千万级的数据点都不是问题。以分布式时序数据库DolphinDB为例,6个服务器构成的集群,每秒能达到千万测点的三副本写入。可以这么说,消息中间件的高并发能力和时序数据库的高吞吐量联合起来,解决了物联网海量数据的实时处理和存储问题。

至于时序数据库的用途,参考其它回答,包括:提供永久的数据存储和管理能力,数据查询和分析等。

抽象来看,消息队列与时序数据库没有本质的区别,都是对时间序列数据的处理。但功能上,时序数据库要有查询、计算,而消息队列只是简单的生产、消费,先进先出。由于要有计算、分析,无论是结构化写入还是schemaless写入,时序数据库内部一定要把数据结构化处理,否则没法进行计算和分析的。而消息队列完全不用考虑这个,完全做非结构化数据处理就行。从存储设计的角度来看,两者是没有区别的,都需要有数据的保留策略,都需要对数据进行分区分片。一个时间线的ID可以作为kafka来的key, 对数据指定partition.

两者正在融合,开源的TDengine就是这样的,它不仅是时序数据库,但同时又具备消息队列的功能。这样在大数据框架下,就能减少一个环节,降低系统复杂度,降低运维成本。Kafka的企业版也在做类似的事情,除消息队列功能外,对外还提供SQL查询,提供各种分析计算功能。

更进一步,流式计算也可以融合进来。流式计算也是基于时序数据的,因此TDengine从设计的名列前茅天起,就考虑了流式计算,但目前还仅仅提供时间驱动的流式计算,后续版本会提供基于事件驱动的流式计算。这样对于物联网、车联网、IT运维等场景,系统架构将更进一步简化,运维成本进一步降低。

延伸阅读:

二、时间序列数据库TSDB

TSDB(Time Series Database):一系列数据点按照时间顺序排列;时间序列数据就是历史烙印,具有不变性、时间排序性。

(基于时间的一系列数据,在有时间的坐标中将这些数据点连成线,往过去看可以做成多维度报表,揭示其趋势性、规律性、异常性;往未来看可以做大数据分析、机器学校、实现预测和预警。

时序数据库就是存放时序数据的数据库,并且需要支持时序数据的快速写入、持久化、多维度的聚合查询等基本功能)。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

程序员都上什么网站?

2023-10-20

#!/usr/bin/env python有什么用?

2023-10-20

HTML、CSS、JavaScript分别实现什么功能?

2023-10-20

最新文章NEW

mysql 不加条件查询速度挺快,加上过滤条件就特别慢是为什么?

2023-10-20

什么是Web前端,有什么好的学习方法?

2023-10-20

哪种工具可以替代PB做数据库开发?

2023-10-20

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>