时序数据简介

1 什么是时序数据

生活中,我们经常会接触到需要对某些指标或者状态按时间序列进行统计和分析的场景,典型的如股票大盘走势、气象变化、内存监控等。

这些依赖于时间而变化,可以用数值来反映其变化程度的数据就叫时序数据。时序数据具有两个关键的指标:监测时间和监测数值。

2 时序数据模型

时序数据按照其数据组织形式可以分为单值模型和多值模型两种。

2.1 单值模型

单值模型一条监测记录只对应一个指标的数据,如下表所示,每行数据为一条监测记录,每条记录只能反映一个监测指标的信息。

metric timestamp tags value
server city
cpu 2017-09-27T16:55:01Z server1 hangzhou 0.1
memory 2017-09-27T16:57:12Z server2 shanghai 0.2

2.2 多值模型

多值模型一条监测记录可以对应多个指标的数据,如下表所示,每行数据为一条监测记录,每条记录可以反映不同监测指标的信息。

timestamp tags metrics
server city cpu memory
2017-09-27T16:55:01Z server1 hangzhou 0.1 0.2
2017-09-27T16:57:12Z server2 shanghai 0.2 0.3

2.3 小结

单值模型和多值模型在数据表示上可以进行相互转化,如多值模型可以用多条记录的单值模型来表示,同时多值模型也可以退化为只记录一项指标。因此,不管是单值模型还是多值模型都可以解决实际当中时序数据相关的问题。但是需要指出的是,两种模型在具体实现上还是有一些差异的,需要根据实际的业务场景选择合适的时序数据库。

3 时序数据的处理

时序数据在实际的业务需求中一般降采样、插值、聚合三种方式。

3.1 降采样

时序数据在实际当中是连续的数据,理论上给定任意的时刻都能查询得到其对应的值,但是计算机在存储数据的时候只能按照一定精度进行采样,存储采样到的离散的数值。

降采样的示意如上图所示。在具体的业务场景当中,我们也往往不需要太高的精度,比如查看一年的股票走势,我们把精度下降到天为单位就能满足需求,同时也能提高处理速度。

3.2 插值

时序数据可能会因为采样精度和存储过程中的错误导致丢失部分业务需要的数据,这个时候我们可以利用时许数据的特点对其进行插值,来近似获取这部分丢失的数据。

如上图所示,利用线性插值来计算时间点为x的监测值得。

3.3 聚合

很多业务场景常常需要对时序数据进行聚合处理,常用的聚合方法如求和、均值、最大值、最小值、计数等。与普通数据库的聚合不同的是,时序数据库的聚合针对的是抽象的时间线。

如上图所示,不同监测项或者同一个监测项不同标签可以按时间序列抽象出不同的时间线,对其进行聚合可以得到新的时间线。

时间: 2024-10-30 09:19:46

时序数据简介的相关文章

用于处理时序数据的方法和装置

The present invention relates to processing of time series data. There is disclosed a method and apparatus for processing time series data, the method comprising: receiving a time series data set, wherein each element of the time series data set cont

Ajax.BeginForm的异步提交数据 简介

Html.BeginForm与Ajax.BeginForm都是MVC架构中的表单元素,它们从字面上可以看到区别,即Html.BeginForm是普通的表单提交,而Ajax.BeginForm是支持异步的表单提交,这对于我们开发者来说是一个福音,我们不用再自己去用JQ代码了,直接用MVC自代的Ajax.BeginForm就可以很容易的完成一个异步的表单提交动作. Html.BeginForm的原型解释: 1 @using (Html.BeginForm()) {} //提交到当前页面 2 3 @u

TableStore时序数据存储 - 架构篇

摘要: 背景 随着近几年物联网的发展,时序数据迎来了一个不小的爆发.从DB-Engines上近两年的数据库类型增长趋势来看,时序数据库的增长是非常迅猛的.在去年我花了比较长的时间去了解了一些开源时序数据库,写了一个系列的文章(综述.HBase系.Cassandra系.InfluxDB.Prometheus),感兴趣的可以浏览. 背景随着近几年物联网的发展,时序数据迎来了一个不小的爆发.从DB-Engines上近两年的数据库类型增长趋势来看,时序数据库的增长是非常迅猛的.在去年我花了比较长的时间去

Twitter基于R语言的时序数据突变检测(BreakoutDetection)

Twitter开源的时序数据突变检测(BreakoutDetection),基于无参的E-Divisive with Medians (EDM)算法,比传统的E-Divisive算法快3.5倍以上,并且具有鲁棒统计性,就是你加入一些离群点或异常点,并不影响该算法的检测效果,不过最关键的还是无参特性,有时候调参真是件摸着石头过河的事. 它认为突变有两种方式: 1.Mean Shift:突然跳变,比如CPU从40%一跃跳变为60%,像佛教里讲的"顿宗" 2.Ramp Up:缓慢从一个平稳状

大数据简介与大数据分析

最近几年,大数据热得像烫手山芋!什么是大数据?通过查阅资料,整理一番,博文将给您带来福利了! 大数据概念 "大数据"是一个体量特别大,数据类别特别大的数据集,并且这样的数据集无法用传统数据库工具对其内容进行抓取.管理和处理. "大数据"首先是指数据体量(volumes)?大,指代大型数据集,一般在10TB?规模左右,但在实际应用中,很多企业用户把多个数据集放在一起,已经形成了PB级的数据量:其次是指数据类别(variety)大,数据来自多种数据源,数据种类和格式日渐

NoSQL数据库技术实战-第1章 NoSQL与大数据简介 NoSQL产生的原因

NoSQL产生的原因: 关系型数据库不擅长的操作,是NoSQL应运而生的原因: 大量的数据写入操作书上写的是"大量数据的写入操作",我理解的应该是"大量的数据写入操作",因为大量的数据写入操作才会引起并发,并发和锁是关系型数据库的瓶颈,NoSQL将表拆分到不同的节点上,可以将写入操作分发到各个节点上.为何关系型数据库无法解决大量的数据写入操作?在数据读入方面,关系型数据库可以通过增加节点,主从复制,来提高高并发的时候的压力.但是在写入方面,为了保证每个节点上数据的一

NoSQL数据库技术实战-第1章 NoSQL与大数据简介 NoSQL数据库的类型

键值存储数据库临时性:如Memcached.临时性的键值数据库把数据存储在内存中,在两种情况下会造成上数据的丢失,一是断电,而是数据内容超出内存大小.这种处理的好处是非常快.永久型:如Tokyo Tyrant .Flare和ROMA两者兼有型:Redis.Redis首先把数据存在内存中,然后在满足特定条件(默认是15分钟1次以上,5分钟10个以上,1一分钟10000个以上的键发生变化)的时候,将数据同步到硬盘,这样既可以保证数据的处理速度,又可以保证数据的永久性.我的疑惑是:按照这种特定条件的话

python 读写Oracle10g数据简介

1.测试环境: Centos6 X86_64python 2.6 Oracle 10g 2.安装cx_Oracle 和 Oracle InstantClient: http://www.rpmfind.net/linux/rpm2html/search.php?query=cx_oraclehttp://www.oracle.com/technetwork/database/features/instant-client/index-097480.html 3.编辑当前用户的 .bash_pro

Salesforce 导入导出数据简介

导入数据的方式 有两种方式可以将数据导入Salesforce: 数据导入向导 Data Loader工具 Salesforce支持将csv文件中的数据导入系统. 数据导入向导 数据导入向导可以从设置界面中进入.打开向导,其中会有步骤提示引导用户将数据导入系统中. 数据导入向导的特点 导入数据记录的上限是50000条 导入数据的类型需要是Salesforce系统中支持的,以便于Salesforce将导入的文件内容映射到相应的对象和字段 Data Loader工具 Data Loader工具是一个客