mysql时序性数据库_时序数据库入门

article/2025/8/19 13:40:57

数据库的模型包含关系型、key-value 型、Document 型等很多种,那么为什么新型的时序数据库成为监控数据存储的新宠呢? 下面就会从

为什么需要时序数据库?

时序数据库的数据结构

两个方面来介绍一下时序数据库。

1. 为什么需要时序数据库

1.1 时序数据特点

时序数据有如下几个特点:

基本上是插入操作较多且无更新的需求

数据带有时间属性,且数据量随着时间递增

插入数据多,每秒钟插入需要可到达千万甚至是上亿的数据量

查询、聚合等操作主要针对近期插入的数据

时序数据能够还原数据的变化状态

可以通过分析过去时序数据的变化、检测现在的变化,以达到预测未来如何变化的目的

时序数据使用需求:

能够按照指标筛选数据

能够按照区间、时间范围、统计信息聚合展示数据

1.2 why

为什么不用一个「常规」 的数据库?

事实上,你完全可以可以使用非时序序列的数据库,并且也确实有人是这样做的。

e4b9611125a14ec279f7ce9c8e0462a4.png

**注**: 数据源 Percona,2017 年 2 月.

为什么需要时序数据库?

规模

时间数据的特点是累计速度非常快,常规数据库在设计之初,并非是为了处理这种规模的数据,而且关系型数据库在处理大规模的数据集的效果非常差。

使用特性

时序数据库能够提供一些通用的对时间序列数据分析的功能和操作,比如数据保留策略、连续查询、灵活的时间聚合,此外时序数据库以时间为维度,也提供更快的大规模查询、更好的数据压缩等。

1.3 场景选择

是否所有的数据都适合用时序数据库来存储?

答案:是否定的,时序数据库提供了针对大量数据的插入操作,但同时数据的读取延迟也相对增加。而且时序数据库不支持 SQL 的数据查询。

主要适用时序数据库的场景:

监控软件系统: 虚拟机、容器、服务、应用

监控物理系统: 水文监控、工厂的设备监控、国家安全相关的数据监控、通讯监控、传感器数据、血糖仪、血压变化、心率等

资产跟踪应用: 汽车、卡车、物理容器、运货托盘

金融交易系统: 传统证券、新兴的加密数字货币

事件应用程序: 跟踪用户、客户的交互数据

商业智能工具: 跟踪关键指标和业务的总体健康情况

2. 时序数据库的数据结构

传统数据库存储采用的都是 B+ tree,原因是查询和顺序插入时有利于减少寻道次数的。然而对于 90% 以上场景都是写入的时序数据库,使用了 LSM tree 更合适。

2.1 LSM产生背景

LSM (Log Structured Merge Trees) 通过减少随机的本地更新操作来达到更好的写操作的吞吐量。

影响写操作吞吐量的主要原因还是磁盘的随机操作慢,顺序读写快,解决办法是将文件的随机存储改为顺序存储,因为完全是顺序的,提升写操作性能,比如日志文件就是顺序写入。

写数据的问题解决了,那如何快速的读出数据呢?

顺序写入的日志文件,在读取一些数据的时候需要全文扫描,但这一操作耗时取决于需要读取的数据在日志文件中的位置,所以其使用场景有限,适用于数据被整体的访问的情况下,像大部分数据的 WAL。

对于读操作,可以记录更多的内容比如 key、range 来提高性能,比较常用的方法有:

二分查找:将文件数据有序保存,使用二分查找来完成特定 key 的查找。

哈希:用哈希将数据分为不同的 bucket。

B+ 树:使用 B+ 树,减少外部文件的存取。

以上的方案都是将数据按照特定的方式存储,对于读操作友好,但写操作的性能必然下降,主要原因是这种存储数据产生的是磁盘的随机读写,不适用于时序数据库 90% 都是写入的场景。

2.2 LSM 算法

LSM 是将之前使用的一个大的查找结构(造成随机读写,影响写性能的结构,比如 B+ 树),变换为将写操作顺序的保存到有序文件中,且每个文件只保存短时间内的改动。文件是有序的,所以读取的时候,查找会非常快 。且文件不可修改,新的更新操作只会写入到新的文件中。读操作检查有序的文件。然后周期性的合并文件来减少文件的个数。

c4bd644ebf7e7f7210eac5d9e48df562.png

写入操作

数据先在内存中缓存(memtable) 中,memtable 使用树的结构来保持 key 是有序的,同时使用 WAL 的方式备份数据到磁盘。当 memtable 中数据达到一定规模后会刷新数据到磁盘生成文件。

更新写入操作

文件不允许被编辑,所以新的内容或修改只是简单的生成新的文件。当越多的数据存储到系统中,就会有越多的不可修改、顺序的有序文件被创建。但比较旧的文件不会被更新,重复的激流只会通过创建新的记录来达到覆盖的目的,但这这就产生了冗余的数据。

系统会周期性的执行合并的操作,合并操作用于移除重复的更新或者删除记录,同时还能够减少文件个数的增加,保证读操作的性能。

读取操作

查询的时候首先检查内存数据(memtable),如果没有找到这个 key,就会逆序的一个个的检查磁盘上的文件,但读操作耗时会随着磁盘上文件个数的增加而增加。(O(K log N), K为文件个数, N 为文件平均大小)。可以使用如下策略减少耗时

将文件按照 LRU 缓存到内存中

周期性的合并文件,减少文件的个数

使用布隆过滤器避免大量的读文件操作(如果bloom说一个key不存在,就一定不存在,而当bloom说一个文件存在是,可能是不存在的,只是通过概率来保证)

2.3 时序数据库的存储

单机上的存储

571d536f9bf902afd8f2b4d3d4cd7883.png

核心就是通过内存写和后序磁盘的顺序写入获取更高的写入性能,避免随机写入,但同时也牺牲了读取性能

分布式存储

分布式存储需要考虑如何将数据分布到多台机器上面,即分片(sharding)的问题。分片问题包括分片方法的选择和分片的设计问题。

分片方法:

哈希分片: 均衡性较好,但集群不易扩展

执行哈希:均衡性好,集群扩展易,但实现复杂

范围划分:复杂度在于合并和分裂,全局有序

分片设计

分片的会直接影响到写入的性能,结合时序数据库的特点,根据 metric + tags 分片是比较好的方式,查询大都是按照一个时间范围进行的,这样形同的 metric + tags 数据会被分配到一台机器上连续存放,顺序的磁盘读取是很快的。

在时间范围很长的情况下,可以根据时间访问再进行分段,分别存储到不同的机器上,这样大范围的数据就可以支持并发查询,优化查询速度。

如下图,第一行和第三行都是同样的tag(sensor=95D8-7913;city=上海),所以分配到同样的分片,而第五行虽然也是同样的tag,但是根据时间范围再分段,被分到了不同的分片。第二、四、六行属于同样的tag(sensor=F3CC-20F3;city=北京)也是一样的道理。

05daa278ee6e0e12c1f6e9dec2625776.png

计划后面写一篇 关于InfluxDB 的文章,上文的大部分内容是 google + 个人理解,如果发现哪里有误,欢迎指出。

3. 参考资料


http://chatgpt.dhexx.cn/article/QP81XSv8.shtml

相关文章

时序数据库详解和使用

1.基础 1.1 时序数据的定义 什么是时间序列数据(Time Series Data,TSD,以下简称时序)从定义上来说,就是一串按时间维度索引的数据。用描述性的语言来解释什么是时序数据,简单的说,就是这类数据描…

时序数据库 InfluxDB

目录 一、介绍 二、安装 三、inflxudb保留字 四、基本语法 1、客户端操作 1. 数据库操作 2. 数据表和数据操作 3. series 操作 4.Shard 5. 用户操作 2、API操作 状态码 3、Java操作 五、常用函数 六、存储策略 1.查看策略 2.创建策略 3、修改策略 4. 删除…

时序数据库介绍

目录 1 .什么是InfluxDB 2.那么时序数据有什么特点呢? 3.对于时序数据,我们总结了以下特点: 4.业务方常见需求 5.时序数据库为了解决什么问题? 6.InfluxDB的优势 1 .什么是InfluxDB InfluxDB是一个开源的、高性能的时序型数…

4款堪称神器的电脑黑科技软件,让人相见恨晚

Syncthing https://syncthing.net/ 一款免费的开源跨平台文件同步客户端、服务器工具。支持Linux、Windows、OSX、FreeBSD以及Solaris等系统,具有一个强大的响应式的网页管理界面,能够帮助用户简便地添加、删除和管理通过网络进行同步的文件夹。支持用…

4个超级实用的黑科技软件神器,让你爱不释手!

EyeLoveU 一款免费的眼睛保护工具,主要功能分为两种提醒模式:定时提醒、智慧提醒,用户可以设定不同的提醒时间,或者工作持续多久后进入休息模式。 Rolan 一款轻量级系统启动器管理工具。支持添加一些常用系统功能,如…

目前最值得推荐的几款黑科技APP,快来收藏吧!

说到黑科技APP,每个人都有自己喜欢的,但是都有一个共同特性,那就是装逼神器、时尚大气、实用性强等等。那么今天我就来给大家推荐几款瞬间提高逼格的黑科技APP我们来一起看看吧! 一、魔音音乐 音乐是缓解学习和工作压力的最有效…

学计算机必备软件,电脑必备6个黑科技软件,每个都是顶尖,学习、工作必不可少!...

原标题:电脑必备6个黑科技软件,每个都是顶尖,学习、工作必不可少! 现在基本上已经是信息的时代,我们生活中几乎很难离开两样东西:一个是电脑、一个手机。我们经常会在电脑和手机上边下载或者是安装好多个软…

5款用得最爽的黑科技软件神器,每一款都好用到你无以伦比

闲话少扯,直接切入正题,5款软件件,值得你高调的收藏的! 1、一粒云盘软件 一款专注于企业数据管理的操作软件,每一个精细的权限下都是一次小小的改革,主要用于大型企业的数据资产保护,一个规模…

盘点那些功能强大的黑科技软件:竟然可以如此简单?

随着移动互联网的全球话普及,越来越多黑科技软件渗透到我们的日常生活和工作中,方便着人们的衣食住行。 今天就给大家分享几款比较小众但是却很神器的黑科技软件,用了他们你才知道,原来生活可以如此便捷! 1、拍手寻手机clap 据研究表明,80%的手机用户每年至少有3次找不…

EasyRecovery15专业电脑数据恢复黑科技软件

EasyRecovery数据恢复专家是一款专业数据恢复软件,软件支持文件、照片、视频等600多种文件格式恢复。支持的设备类型包括:电脑/笔记本、回收站、U盘、硬盘、移动硬盘、内存卡、数码设备等各类。先预览再恢复、免费扫描、一键恢复。免费试用!重…

有趣的计算机黑科技,6个让你欲罢不能的电脑黑科技软件,我一定要分享出来!...

办公中最常用的设备就是电脑了,我们使用电脑办公讲究的是效率,那么在大家的电脑上,都有哪些不错的软件呢?我也知道很多不错的软件,今天就给来大家分享6个能让你欲罢不能的电脑黑科技软件,快来一起看一看&am…

无需root计算机隐藏应用,应用隐藏大师APP一款极为隐秘的黑科技软件,无需Root 支持双开...

添加之后在应用隐藏大师中会生成一款“复制的应用”,运行的时候会给你两个选择 隐藏:会卸载掉桌面上原有的应用 启动副本:会保留桌面的应用并启动副本(相当于双K) 建议:如果你单纯想隐藏应用请选择“隐藏”,这样的话只…

android手机黑科技软件,安卓党福利!10款黑科技APP,让你的手机更好用

分享10款实用、优秀的Android软件!黑科技浏览器、跳过开屏广告、清理手机垃圾、时间追踪、简洁版微博……总有一款是你需要的! 最重要的是,以下10款软件大部分都是安卓独享,苹果用户只能羡慕! 话不多说,一起…

推荐5款优质的黑科技软件,好不好用你来判断

作为一个黑科技软件爱好者,电脑里肯定是不会缺少这方面的东西,今天的5款优质软件闪亮登场了。 1.视频编辑——CyberLink 这是一款功能强大,高效易用的视频编辑器,光看名字又以为是国外软件,其实它是纯国产软件&#…

(程序员生存手册)RAPTOR:你一定会用到的黑科技软件获得方法。

目录 1.软件介绍 2.安装 (1)下载 (2)安装 3.使用 4.结语 1.软件介绍 Raptor:你是不是认为raptor只是一个画流程图的绘图软件呢,如果是的话,那就对它误解太深了。如果仅仅用来画流程图&am…

计算机科学的常用软件,电脑必备的6款黑科技软件,每一个都堪称神器

电脑是我们日常生活中常用的工具,可以用来办公、游戏、看视频等,那么给大家分享脑必备的6款黑科技软件,每一个都堪称神器,看一看你拥有几个? 一、Everthing 我们在电脑上平常难免会遇到文件找不到的情况,一…

一些提高工作效率的黑科技软件

持续更新中… 红色标题 的强烈推荐,个人认为属于神器级别! 以下是软件篇,网站篇可以看这里:超实用的工具、素材、学习网站分享 完整的可以来GitHub看看,喜欢的可以给个star哦! 2019.12.6更新: 软件类&am…

分享推荐几款黑科技APP,不止是华为手机能用哦!

你的手机上有没有下载了又删除的APP,还有下载了几乎没怎么用的APP?刚看了一下自己的手机,竟然有很多都是下载了就扔在一边没用的手机APP,下面来介绍几款不止是华为手机可以用的几款手机APP。 Smart Kit 这也是一个集大成的小内存软件,就是知名度不是那么的高。右上角的这…

6大黑科技app合集,绝对让你大开眼界

在这个科技高速发展的时代,手机不断的在更新换代,手机网络也在飞速发展。从只能阅读的2g时代到即将到来的5g时代。 我们的手机也不仅仅局限于只能打电话发短信了。手机应用也为我们打开了新世界,打开app就能与世界各地的网友们进行交流,在如今,各式各样的app被下载到了我…

生活必备冷门逆天的黑科技APP,每一款都堪称神器

今天给大家分享10款黑科技APP,每一款都非常简单好用,让你惊叹不已。 1.卓师兄 它是一款非常专业的安卓数据恢复软件。使用它,可以轻松恢复安卓的微信、QQ聊天记录,以及导出短信和通话记录,也可以直接导出到Excel。无…