时序数据库研究现状

时序数据库研究现状时序数据库——简单汇总

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

一、什么是时序数据

广义认为是按照时间顺序存储的一系列数据。

常用场景:

电力行业、化工行业、气象行业、地理信息等各类型实时监测、检查与分析设备所采集、产生的数据

特点:

1)产生频率快(每一个监测点一秒钟内可产生多条数据)
2)严重依赖于采集时间(每一条数据均要求对应唯一的时间)
3)测点多信息量大(常规的实时监测系统均有成千上万的监测点,监测点每秒钟都产生数据,每天产生几十GB的数据量)
4)数据不可变:一旦插入到数据库之中,在过期或删除之前,数据点不会进行任何修改。

二、时序数据库的查询_聚合查询

时序数据库的数据量很大,采集数据频繁,一般不支持对于历史高精度数据的查询(查询成本太高,且一般不具有规律性,不能提供参考意义)

1.基于统计的聚类

这类方法从时序数据中抽取统计特征,如平均值、方差、倾斜度,以及一些高阶特征等,如ARIMA模型的系数、分形度量(fractal measures)等。或是划分窗口,在每个窗口内计算这些统计特征,再进行汇总。

关注不同序列在统计特性上的差异,那么可以提取时序的统计特征,基于提取的统计等特征进行计算欧式距离的KMeans的聚类。

2.基于形状的聚类

许多时序数据往往具有相同的变化模式(如上升、下降、上升等),因此可以根据这些时序数据的形状相似性将变化模式相似的序列聚在同一个类,可以忽略数据在整幅、时间尺度等的差异。

关注形状的相似,那么可以使用执行SBD计算距离的k-shape聚类。

3.基于深度学习的聚类

该类方法主要基于autoencoder模型将时序数据转换为低维的隐空间,现有的变分自编码器(variational autoencoder)等虽然能够在一定程度上容忍噪声、异常值等。

想要捕捉时序的动态特性,可以使用深度学习的seq2seq对隐式向量进行聚类。

4.时间序列聚类的特征

(1)时间序列的聚类和普通的横截面数据聚类不一样;

(2)时间序列聚类的难点在于如何衡量两个时间序列之间的距离(相似性);

(3)使用欧式距离等传统的距离衡量方式去衡量时间序列之间的距离是不可靠的;

(4)可以使用DTW(动态时间规整)的方法去衡量时间序列的距离(相似性);

(5)当求出了时间序列之间的距离矩阵后,用啥聚类方法就问题不大了,层次聚类都行。

三、时序数据的预处理

1.批处理

批处理是使用 pull 的方式查询时序原始数据,预先进行聚合运算获取数据结果写入时序数据库,当进行聚合查询时直接返回预处理后数据结果。时序数据库定期轮询规则,根据采样窗口创建预处理任务,任务根据规则信息形成多个任务队列。队列内任务顺序执行,队列间任务并发执行,多任务队列保证了多租户对计算资源共享。

优点:支持对历史时序数据的处理,实现简单

缺点:查询数据量大,非实时

2.流式处理

当数据时间戳到达采样窗口时,在内存中实时计算,写入时序数据库。相当于对时序数据库进行实时计算。

优点:数据实时计算,无需查询原始数据

缺点:需要特殊处理写入的历史数据,也需要处理运算过程中崩溃的计算单元


总结

以上整合了目前查到的时序数据库与自己所需相关的内容。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/185919.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 编写测试用例的思路_用例测试方法

    编写测试用例的思路_用例测试方法前言用过pytest的小伙伴都知道,pytest的运行方式是非常丰富的,可以说是你想怎么运行怎么运行,想运行哪些运行哪些,那httprunner是否同样可以呢?运行用例的各种方式运行指定路径的用

    2022年8月6日
    3
  • 淘宝抢购Python脚本

    淘宝抢购Python脚本想买mate40,但总是抢不到,所以想试着能不能写个脚本代码。第一步:把想要抢购的商品加进购物车,注意:脚本是对购物车内全部商品进行下单操作,所以不够买的商品最好先从购物车内删除。第二步:写好Python脚本,在抢购之前运行,并设置好抢购时间。Python脚本实现安装Python。我安装的是anaconda安装webdriver扩展。它是Selenium模块的一部分。Selenium是一个用于Web应用程序测试的工具,用于测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。Selen

    2022年4月29日
    44
  • java 读音_java怎么读?[通俗易懂]

    java 读音_java怎么读?[通俗易懂]展开全部US/ˈdʒɑː.və/;UK/ˈdʒɑː.və/。【N-UNCOUNT】Java语言(一种计算机语言,尤用于创建网站)62616964757a686964616fe59b9ee7ad9431333366306461Javaisacomputerprogramminglanguage.Itisusedespeciallyincreatingwebsites.例…

    2022年7月7日
    37
  • java标识符有哪些_java标识符有哪些?java标识符有哪些不合法?

    java标识符有哪些_java标识符有哪些?java标识符有哪些不合法?问题:下面哪个标识符是合法的?”1HelloWorld””_HelloWorld””Hello*World””Hello$World”答案:4解析:标识符是以字母开头的字母数字序列:数字是指0~9,字母指大小写英文字母、下划线(_)和美元符号($),也可以是Unicode字符集中的字符,如汉字;字母、数字等字符的任意组合,不能包含+、-*等字符;不能使用关键字;大小写敏感拓展:1、java标识…

    2022年7月26日
    11
  • python垃圾回收机制原理

    python垃圾回收机制原理#python垃圾回收机制详解一、概述:  python的GC模块主要运用了“引用计数(referencecounting)”来跟踪和回收垃圾。在引用计数的基础上,还可以通过标记清除(markandsweep)解决容器(这里的容器值指的不是docker,而是数组,字典,元组这样的对象)对象可能产生的循环引用的问题。通过“分代回收(generationcollection)”以空间换取时间来进一步提高垃圾回收的效率。二、垃圾回收三种机制  1、引用计数  在Python中,大多数对象的生命周

    2022年6月24日
    23
  • android 系统签名

    android 系统签名最近在做个东西,巧合碰到了sharedUserId的问题,所以收集了一些资料,存存档备份。   安装在设备中的每一个apk文件,Android给每个APK进程分配一个单独的用户空间,其manifest中的userid就是对应一个Linux用户都会被分配到一个属于自己的统一的Linux用户ID,并且为它创建一个沙箱,以防止影响其他应用程序(或者其他应用程序影响它)。用户ID在应用程序安装到设

    2022年6月21日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号