news 2026/6/26 6:16:46

时序数据库介绍

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
时序数据库介绍

时序数据库(Time Series Database,简称TSDB)是专门用于存储、查询和分析时间序列数据的数据库。这类数据的特点是数据点带有时间戳,并且随时间连续产生。

一、核心特点

  • 写多读少:数据写入量极大(每秒百万级),但更新操作极少(通常为追加)。

  • 数据量大:依赖高效的数据压缩算法(如差值、位压缩)来节省存储成本。

  • 时效性强:最近的数据被高频查询,较旧的数据访问频率低,支持数据生命周期管理(自动过期删除)。

  • 按时间排序:数据天然按时间有序,查询通常涉及时间范围、聚合(如求平均值、最大值)和降采样。

二、常见应用场景

  • IT运维监控:服务器CPU、内存、网络流量等指标监控。

  • 物联网(IoT):智能设备、传感器、工厂生产线数据采集。

  • 金融交易:股票价格、交易量、汇率波动等实时数据分析。

  • 用户行为分析:网站PV/UV、App日活、广告点击流分析。

  • 工业制造业:设备状态监测、故障预测与健康管理。

三、主流时序数据库对比

数据库简介适用场景
InfluxDB最流行的TSDB之一,类SQL查询语言InfluxQL,生态完善。中小规模监控、物联网、实时分析。
PrometheusCNCF毕业项目,自带Pull模型采集,结合Grafana可视化极佳。云原生、Kubernetes监控(必备)。
TimescaleDB基于PostgreSQL的扩展,完全支持SQL和事务。需要复杂关联查询的时序场景。
TDengine国产开源,高性能,集成缓存、流式计算,降低总拥有成本。物联网、车联网、工业大数据(对性能要求极高)。
DolphinDB国产高性能分布式,内置强大的向量化编程语言。量化金融、高频交易、复杂分析计算。
QuestDB使用SIMD指令集优化,性能极佳,支持PostgreSQL线协议。金融数据、高吞吐低延迟分析。
IoTDBApache顶级项目,专为物联网设计,支持从边缘到云端。工业物联网、智慧城市、能源管理。

四、关键技术点

  • 数据模型:通常由时间戳 + 标签(维度) + 指标值(度量)构成。例如,cpu_usage{host=server1, region=us-west} 72.5 1650000000

  • 存储引擎:使用LSM树结构,顺序写入磁盘,避免随机写性能瓶颈。

  • 压缩算法:同一时间戳下多指标组合压缩、差值编码、游程编码等,压缩率可达90%以上。

  • 降采样:对历史数据进行聚合(如将秒级数据降为分钟级),节省存储并加速查询。

  • 连续查询:自动定期执行预计算,实现增量聚合视图。


工作原理

一、写入流程:如何扛住海量数据?

时序数据写入的最大挑战是高频、海量、顺序追加。传统数据库(如MySQL)的B+树随机写入会成为瓶颈,而时序数据库采用以下策略:

  1. 先写内存(WAL + MemTable)

    • 数据到达时,先顺序写入磁盘日志(WAL,预写日志),保证宕机不丢数据。

    • 同时将数据写入内存中的有序结构(如跳表、红黑树),称为MemTable。内存写入极快,能轻松应对百万级QPS。

  2. 批量合并与刷盘

    • 当内存数据积累到一定阈值,会批量写入磁盘,形成不可变的文件(如LSM树的SSTable)。

    • 这个过程利用了磁盘的顺序写性能(远快于随机写),并且多个小批次会合并成一个大文件,减少IO次数。

  3. 异步落盘与Compaction(合并)

    • 后台持续进行文件合并(Compaction),将多个小文件合并成大文件,同时清理已删除或过期的数据,保持查询效率。


二、存储引擎:数据在磁盘上怎么组织?

这是时序数据库最核心的奥秘,主要基于LSM树及其变种,但针对时序特征做了深度优化:

关键技术原理效果
时间分片按时间范围(如一天/一小时)将数据切分成独立文件块。查询某时间范围时,只扫描对应分片,大幅减少IO。
标签索引(倒排索引)对标签(如host=server1)建立类似搜索引擎的倒排索引。能毫秒级定位符合标签条件的所有时间序列。
列式存储同一列(如所有CPU值)连续存储,不同列分开存放。查询只读所需列;同列数据类型相同,压缩率极高。
专用压缩算法
-差值编码:存相邻值的差值(如时间戳差1秒)。
-游程编码:连续相同的值只存一次。
-位压缩(Gorilla):对浮点数做异或压缩。
压缩率通常达90%~95%,10GB原始数据最终可能只占1GB。

三、查询流程:如何快速响应?

查询性能不仅靠存储,还靠提前算好(用空间换时间):

  1. 索引过滤
    根据查询中的标签条件,利用倒排索引快速找到所有相关的时间序列ID列表。

  2. 时间范围裁剪
    根据查询的时间范围,只扫描对应的磁盘文件分片,跳过不相关的数据块。

  3. 向量化计算
    查询聚合(如avg(cpu))时,读取压缩后的列数据,直接在内存中批量计算(如SIMD指令加速),避免逐行处理。

  4. 降采样与预聚合
    对历史高频数据,系统后台会自动生成分钟级/小时级的汇总数据。查询大时间范围时,直接读汇总结果,秒级返回。

  5. 下推优化
    将过滤、聚合计算尽量推送到存储节点完成,只返回最终结果给客户端,减少网络传输。


四、生命周期管理:数据自动“消失”

时序数据往往有时效性——7天前的秒级数据很少被查。

  • 数据库支持数据保留策略(Retention Policy),比如“只保留最近30天的原始数据”。

  • 后台会按时间分片,定期自动删除过期的文件块,释放存储空间。


五、一句话总结工作原理

先快速写内存并记日志,后台批量转成压缩的列式文件;查询时靠倒排索引快速定位,靠预聚合和列式计算快速响应;过期数据自动回收,保持存储轻量。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/26 6:15:40

PYTHON+AI LLM DAY EIGHTY-SEVEN

今天简单介绍一下milvus向量库中的混合检索方法.混合检索的目的也就是从不同向量场实现对问题的精准查询,这也是milvus向量库的一大优点.milvus向量库支持的混合检索的方式有两种.也是常说的排序器.分别是加权排名策略(WeightedRanker)和重排序策略&…

作者头像 李华
网站建设 2026/6/26 6:14:49

RNS510车载系统解析:从WinCE架构到老车升级实战

1. 项目概述:RNS510,一个时代的车载多媒体记忆如果你是一位大众、奥迪或斯柯达的老车主,或者对2010年前后那批德系车的“高级感”有印象,那么你对中控台上那块带旋钮和物理按键、屏幕分辨率不高但功能在当时看来相当集成的车机&am…

作者头像 李华
网站建设 2026/6/26 6:14:27

2026年用Gemini解决PHP/Java编程难题实战教程

汇聚国内外各大顶级Ai最新大模型,免费一站式使用:gemini3.5,gpt,claude,grok 出图模型gpt-image-2低至每张0.03 视频模型:sora2,seed2,grok,全网最低价。网页入口&#x…

作者头像 李华
网站建设 2026/6/26 6:13:45

从此告别素材荒|2026年视频剪辑新手用什么AI工具制作视频素材盘点

大家好,我是xiao阿娜,一名专注AI工具测评与教程分享的博主。剪辑新手有一个特别拧巴的阶段——剪辑思路其实已经有了,分镜脚本也写出来了,但坐在电脑前打开素材库,发现想要的镜头一个都没有。一个城市清晨被薄雾笼罩的…

作者头像 李华
网站建设 2026/6/26 6:13:04

【企业级Web服务交付标准】:基于VMware vSphere 8.0的Web服务器生产环境部署白皮书(限内部团队解密版)

更多请点击: https://kaifayun.com 第一章:Web服务交付标准与vSphere 8.0架构全景概览 现代Web服务交付已从单一虚拟机部署演进为融合策略驱动、声明式配置与全栈可观测性的云原生就绪范式。vSphere 8.0作为VMware统一平台的核心引擎,不仅延…

作者头像 李华