三分钟了解什么是时序数据库
在介绍时序数据库之前,我们先来看看什么是时序数据。时序数据就是基于时间排序的数据,再通过时间坐标将这些数据连接起来,形成一个折线图,直观地展示一个指标在过去一段时间内的走势和规律,帮助定位数据异常点。
时序数据库就是用来存储这些时序数据的数据库。与传统数据库相比,时序数据库需要能够长时间保存数据,且需要实时展示,这就要求时序数据库能做到持久化存储,以及数据读写的高性能。此外,对于一些复杂的场景,比如广告业务的多维度多指标,时序数据库还需要做到多维查询、指标聚合等。
一、时序数据库的特点
- 数据写入
- 数据实时写入。
- 高并发写入。
- 无须更新或删除操作(除了修复数据)。
- 连续性:时序数据会按照指定的时间粒度持续写入。
- 数据读取
- 写多读少:时序数据的写入是持续的,但是一般并不会持续地读取数据,只有在需要的时候才会查询最近一段时间内的指定维度指标。
- 多时间粒度读取:一般来说,我们会对最近7天的数据以一个比较细的时间粒度来存储一个相对精确的值,而对于7天或者一个月以前的数据,通常会把它们聚合成一个比较粗的时间粒度存储,比如按照小时或者天来存储,以便节省磁盘空间,提高读取历史数据的效率。
- 指定维度读取:在广告业务中,时序数据存储的维度可能有成百上千个,那么在读取数据时不会把所有的维度都读取出来,因为这样做不仅没必要,而且对系统的I/O也是一个极大的考验。所以,只会选择读取所需要的维度和指标。
- 实时聚合:通常实时的时序数据存储的是不同维度下的一个比较细的时间粒度数据,查询时需要在不同维度下对一个或多个指标进行各种聚合的操作,如 sum、max、avg等。
- 数据存储
- 按列存储:通过数据的查询特征,可以发现时序数据更适合将一个指标放在一起存储,任何列都能被作为索引。在读取数据时,只会读取所需要的维度所在的列,这样就可以大大减小I/O的损耗和内存的使用,提高执行效率。
- 以不同的时间粒度存储:数据的读取特征决定了可以将历史数据聚合成一个比较粗的粒度存储,将最近的数据以一个比较细的粒度存储,这样可以大大减少磁盘的使用空间。
- 冷热存储:通常我们只会查询最近一天或者7天的数据,而半年或一年以前的数据使用率很低,因此可以把历史的冷数据和最近的热数据分开存储,以提高读取数据的效率,减少磁盘的使用空间。
二、时序数据库的特性
上面介绍的时序数据库的这些特点,决定了时序数据库具有以下特性。
- 高并发、高吞吐量,实时写入和读取数据。
- 高可用性、高可靠性,分布式架构、数据分片。
- 支持海量数据存储,一般时序数据都是TB或PB级别的体量。
- 支持数据聚合分析,满足实时的多维聚合分析。
三、时序数据库的组成
- Timestamp:这是时序数据库的关键所在,因为是以时间排序的数据,所以需要记录所有数据的时间。
- Metric:需要存储的指标数据有很多,比如在广告业务中,分析用到的指标更是成千上万,那么在时序数据库中就需要通过Metric字段来标识每个指标数据,如QPS、Status等。
- Dimension:数据的属性,比如数据类型、地域、年龄、性别等。而一般指标的结果都是基于单维度或多维度分析得到的。比如在广告业务中,一个指标有时需要上百个维度经过不同的组合得到不同的结果。
四、时序数据库的模型
下图显示了在同一个时间、不同维度下QPS的变化情况。其中地域和性别就是Dimension,北京、上海等就是地域维度的类别,QPS就是Metric,QPS列的数据就是QPS指标每秒钟在地域和性别组合维度下的值。
三分钟了解什么是时序数据库相关推荐
- 十分钟看懂时序数据库(III)- 压缩
物联网邻域近期如火如荼,互联网和传统公司争相布局物联网.作为物联网邻域数据存储的首选时序数据库也越来越多进入人们的视野,而早在2016年7月,百度云在其天工物联网平台上发布了国内首个多租户的分布式时序 ...
- 0160 十分钟看懂时序数据库(I)-存储
摘要:2017年时序数据库忽然火了起来.开年2月Facebook开源了beringei时序数据库:到了4月基于PostgreSQL打造的时序数据库TimeScaleDB也开源了,而早在2016年7月, ...
- emq数据储存到mysql_EMQ X 规则引擎系列(三)存储消息到 InfluxDB 时序数据库
前言 InfluxDB 是一个用于存储和分析时间序列数据的开源数据库,内置 HTTP API,类 SQL 语句的支持和无结构的特性对使用者而言都非常友好.它强大的数据吞吐能力以及稳定的性能表现使其非常 ...
- derby mysql 同步_三分钟学会使用Derby数据库
Derby数据库是一个纯用Java实现的内存数据库,属于Apache的一个开源项目.由于是用Java实现的,所以可以在任何平台上运行:另外一个特点是体积小,免安装,java1.6开始集成了derby数 ...
- 小米正用时序数据库,解决这个“硬核”问题
参加 2019 Python开发者日,请扫码咨询 ↑↑↑ 作者 | 许俊红 来源 | 小米云技术(id:mi-cloud-tech) 时序数据 根据维基百科的定义[1],时间序列是一组按照时间发生先后 ...
- python 时序数据库_时序数据库InfluxDB
一.什么是InfluxDB? InfluxDB是一款用Go语言编写的开源分布式时序.事件和指标数据库,无需外部依赖.该数据库现在主要用于存储涉及大量的时间戳数据,如DevOps监控数据,APP met ...
- 深度解读!时序数据库HiTSDB:分布式流式聚合引擎
阿里妹导读:高性能时间序列数据库 (High-Performance Time Series Database , 简称 HiTSDB) 是一种高性能,低成本,稳定可靠的在线时序数据库服务, 提供高效 ...
- phython在file同时写入两个_轻松支撑百万级数据点写入 京东智联云时序数据库HoraeDB架构解密...
本文将通过对时序数据的基本概念.应用场景以及京东智联云时序数据库HoraeDB的介绍,为大家揭秘HoraeDB的核心技术架构和解决方案. 首先我们来了解下时序数据库的基本概念.时序数据库全称时间序列数 ...
- 时序数据库技术体系 – InfluxDB TSM存储引擎之数据写入
之前两篇文章笔者分别从TSM File文件存储格式.倒排索引文件存储格式这两个方面对InfluxDB最基础.最底层也最核心的存储模块进行了介绍,接下来笔者会再用两篇文章在存储文件的基础上分别介绍Inf ...
最新文章
- 来看看C# ObservableCollection和List的区别
- 实验三银行家算法linux,操作系统原理与linux_银行家算法实验报告.doc
- 框架:SpringMVC中Interceptor拦截器的两种实现
- 关于Android studio 3.0 Failure [INSTALL_FAILED_TEST_ONLY]安装失败的问题
- .Netcore 2.0 Ocelot Api网关教程(8)- 缓存
- ruby编程API阅读之BasicObject阅读
- numpy_basic
- python | while循环与for循环 | 循环嵌套 | pass通用类型,循环整体结束或开始下一轮循环
- 【刘文彬】【精解】EOS TPS 多维实测
- MySQL只有.frm文件恢复表结构
- 计算机科学概论读书报告,计算机科学导论读书笔记01:绪论
- 非线性系统的神经网络控制(常用介绍)--理论
- 神经网络数据分析案例题,神经网络模型数据处理
- 批量建模:有序多分类Logistic回归(Ordinal Logistic Regression)
- 清华梦的粉碎——写给清华大学的退学申请
- Mac 技术篇-搜狗输入法英文首字母自动大小写设置,mac系统首字母自动大小写设置
- 计算机安全会议2017,科学网-第四届中国密码学与数据安全学术会议(CCDS2017)在衡阳师院召开-李浪的博文...
- vuejs开发H5页面总结
- make: *** No targets specified and no makefile found. Stop.错误解决办法
- 运用计算机通过动力方程,计算机技术在地下水动力学课程素材建设中的应用