Scalable Time Series Compound Infrastructure(sigmod2020)

2023-10-09 16:40

本文主要是介绍Scalable Time Series Compound Infrastructure(sigmod2020),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

从患者的体检记录到物联网(IoT)设备的传感器维修记录等,都以大时间序列的形式留下数字痕迹。这些时间序列对象不仅跨越了非常长的时间周期(有时是几年),而且其特点是断断续续但相互关联的时间序列被长时间间隔打断。这种流行的数据类型,我们称之为时间序列复合对象(或TSC),在文献中很大程度上被忽略了。当管理、查询和分析这些大型TSC对象的存储库时,会出现独特的挑战。这包括具有时间错位弹性的适当的相似性语义、对过长和复杂对象的有效存储,以及tsc整体索引。我们证明,最先进的时间序列系统,虽然有效地索引和搜索常规的时间序列数据,但不能支持如此大的TSC数据。在这项工作中,我们介绍了第一个将TSC对象作为一等公民管理的全面解决方案。我们为TSCs引入了新的相似匹配语义和紧凑的错位弹性表示。

在此基础上,我们设计了一个支持tb级TSC数据集的可扩展存储、索引和查询的分布式索引基础设施Sloth。我们的实验研究表明,对于tb尺度的数据集,Sloth的查询响应时间比现有系统快了一个数量级,而对于近似kNN相似度匹配的查询结果,其平均精度(mAP)比现有解决方案的准确率提高了70%。

面临的挑战:

1)TSC-Aware Feature Representation Challenges。需要一种新的TSC感知特征表示,它捕获TSC语义,并在整个TSC对象(测量和差距)中保留特征的位置。

2)TSC-Aware Notions ofSimilarity Challenges

3)TSC-Aware Indexing Challenges 因此,我们必须开发能够感知tsc的索引,以满足按值匹配的双重要求

 框架:

SLOTH: DISTRIBUTED INFRASTRUCTURE

TSCs are treated as first-class citizen throughout the infrastructure’s layers ground up starting from storage, indexing, to query processing. 

1)TSC-Aware Feature Representation.

为了在TSC对象上有效地应用这种转换,我们需要解决两个主要问题。一是时间间隔,二是时间错位。

我们首先将TSC中的每个时间序列对象表示为一个单独的实例,同时保持它们的开始时间,从而保持间隙语义。然后,我们引入了一种新的tsc感知特征提取技术,显示弹性不同类型的错位

1.1)

作为第一步,我们在特征空间中设计了一种对错位不敏感而又不具有高损耗的表示。这种表示称为移位不敏感SAX直方图.这些无顺序的直方图并不能帮助我们解决在比较过程中哪些SAX片段应该被忽略

 This led us to the proposed concept of Locality Preserving Vectorization.

我们提出的技术采用了一种有效的子向量表示结构,其中TS被划分为𝑆子向量,如图4 (b)所示。 

Step 2: Shift-Insensitive SAX Histogram. 

聚焦一个子向量,我们现在需要在特征空间中呈现它。我们新提出的“移位不敏感SAXHistogram”表示扩展了众所周知的SAX表示。字母表的大小可以是常量。它不受TS长度改变的影响,因此,我们可以用固定大小的字母频率向量来紧凑地表示时间序列,我们称之为移位不敏感SAXHistogram。

它不受TS长度改变的影响,因此,我们可以用固定大小的字母频率向量来紧凑地表示时间序列,我们称之为移位不敏感SAXHistogram。有了这个直方图表示,我们可以有任意多的段。

 Step 3: TSC-Aware Vector Quantization

这一步的目标是进一步实现表示法的紧凑性。现在我们已经将TS对象转换为它们的子向量shift insensitive sax histograms,我们对它们应用矢量量化。

 

1.2) Proposed TSC-Aware Vector Quantization.

我们现在引入一种策略来适应标准vector quantization。 也就是说,我们不仅将TS对象的子向量映射到它们对应的codebook,而是将它们映射到所有的codebook as in Fig. 4 (i). 因此,数据库中的每个TS将用S表示为(S+1)的矩阵

 Sloth Storage and Indexing Framework

 Sloth hybrid index infrastructure consists of two integrated layers. The top layer targets structure-oriented similarity of the whole compounds with regard to the time alignments. The bottom layer targets content-oriented similarity。底层还维护它们所属的TSC的元数据信息。这种混合结构能够同时基于时间和内容搜索TSC空间。它可以有效地支持相似性搜索操作符,例如kNN查询。

1)Top Layer: Structural Organization

这一层是基于时间的,在索引构建期间,它有助于在多个数据分区之间以基于时间的方式变换TSCs的TS对象。

Top Layer: (1) Preprocessing Phase

Top Layer: (2) Time-Based Structure Building   基于时间的结构有两个目标:(1)支持基于结构的相似性,(2)帮助基于时间的tsc数据集的TS对象聚类(即索引)。

Top Layer: (3) Piggybacked Quantization Phase 在使用上面介绍的时间结构对TS对象进行洗牌之前,我们使这个过程更加智能。我们创建矢量量化资源,从而能够将TS对象转换为它们的tsc感知特征表示

Bottom Layer: Structure-Content-Dual Organization.

Bottom Layer: (1) Data Re-Partitioning Phase. 这一步的目标是开始重新定位和调整TS对象,使其能够基于时间进行访问。

Bottom Layer: (2) Local Organization Phase. 在存储方面,这一层由数据分区组成,这些分区是原始TS的存储区域,它们支持tsc的特征表示,以及元数据信息

SLOTH: QUERY PROCESSING LAYER

我们提出了针对不同操作符类型的查询处理算法,重点关注kNN相似度搜索操作符。 

Phase 1: Content-based filtering  首先,主服务器按如下方式识别数据分区并将其加载到工作内存中。Now, Sloth starts two level filtering at the bottom layer.

1)First, TS-level structure-based filtering

2)Second, the content-based filtering

Phase 2: TSC-Level filtering. 主节点使用第一层的时间结构进行检查,如果它们的分区还没有在worker的内存中,那么,它将加载它们。

EXPERIMENTAL EVALUATION

 

 在这两种情况下,Sloth index construction时间都比基线快。之所以会出现这种情况,是因为基线不仅将TS对象转换为iSAX表示,而且还在每个数据分区的TS对象上构建一个树结构

 

 这是因为𝑆越大,我们在预处理阶段生成的codebook越多,量化期间的距离比较次数就越多。索引大小(图11 (a))也因为同样的原因而增加。从图11 (b)可以看出,增加S会略微增加秒级的响应时间。它还显示,mAP从40%提高到80%。从图11 (c)可以看出,由于量化距离比较次数的增加,增加codeBook的大小会对索引构建时间产生影响

总结:文中提出了一个分布式时间序列相似性查询框架。文中主要的创新点1)提出了使用Shift-Insensitive SAX Histogram 这种新的时间序列表征方法,2)提出使用codeBooke,它能够实现有效的表征压缩,但是实验中可以看出,codeBooks增加了距离计算的时间,导致在index创建需要更长的时间。3)文中提出的Sloth Storage and Indexing Framework,该分布式框架,新颖点不强。分布式架构本身就是master node 和slave node ,文中提出的两层结构中,down layer主要完成时间序列数据的slave node分布和管理每个节点上分布的时间序列提取的特征。top layer主要实现slave node选择和codeBooks转化。从这两层的功能上看,没有什么特别新颖的分布式结构。当然这种结构本身也是为了适应CodeBooks方式创建的。

总之,文中最大的新颖点时一种新的时间序列表征和codeBooks的应用。

这篇关于Scalable Time Series Compound Infrastructure(sigmod2020)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/174171

相关文章

linux 下Time_wait过多问题解决

转自:http://blog.csdn.net/jaylong35/article/details/6605077 问题起因: 自己开发了一个服务器和客户端,通过短连接的方式来进行通讯,由于过于频繁的创建连接,导致系统连接数量被占用,不能及时释放。看了一下18888,当时吓到了。 现象: 1、外部机器不能正常连接SSH 2、内向外不能够正常的ping通过,域名也不能正常解析。

python内置模块datetime.time类详细介绍

​​​​​​​Python的datetime模块是一个强大的日期和时间处理库,它提供了多个类来处理日期和时间。主要包括几个功能类datetime.date、datetime.time、datetime.datetime、datetime.timedelta,datetime.timezone等。 ----------动动小手,非常感谢各位的点赞收藏和关注。----------- 使用datet

lua data time

local getTime = os.date(“%c”); 其中的%c可以是以下的一种:(注意大小写) %a abbreviated weekday name (e.g., Wed) %A full weekday name (e.g., Wednesday) %b abbreviated month name (e.g., Sep) %B full month name (e.g., Sep

Event Time源码分析

《2021年最新版大数据面试题全面开启更新》 flink 中Processing Time也就是处理时间在watermark定时生成、ProcessFunction中定时器与时间类型的窗口中都有使用,但是其内部是如何实现注册定时器、如何调用、如何容错保证在任务挂掉在下次重启仍然能够触发任务执行,都是我们今天的主题。首先需要了解一下在flink内部时间系统是由哪些类来共同完成这件事,下面画

大数据-121 - Flink Time Watermark 详解 附带示例详解

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完)Hive(已更完)Flume(已更完)Sqoop(已更完)Zookeeper(已更完)HBase(已更完)Redis (已更完)Kafka(已更完)Spark(已更完)Flink(正在更新!) 章节内容 上节我们完成了如下的内容: 滑动窗口:时间驱动、事件

DS简记1-Real-time Joint Object Detection and Semantic Segmentation Network for Automated Driving

创新点 1.更小的网络,更多的类别,更复杂的实验 2. 一体化 总结 终于看到一篇检测跟踪一体化的文章 网络结构如下: ResNet10是共享的Encoder,yolov2 是检测的Deconder,FCN8 是分割的Deconder。 其实很简单,论文作者也指出:Our work is closest to the recent MultiNet. We differ by focus

【HDU】4927 Series 1 高精度

传送门:【HDU】4927 Series 1 题目分析:公式很好推,到最后就是C(n-1,0)*a[n]-C(n-1,1)*a[n-1]+C(n-1,2)*a[n-2]+...+C(n-1,n-1)*a[n]。 用C(n,k)=C(n,k-1)*(n-k+1)/k即可快速得到一行的二项式系数。 我看JAVA不到1000B 15分钟就能过。。。我又敲了大数模板然后将近2个小时才过T U

【HDU】4928 Series 2 模拟

传送门:【HDU】4928 Series 2 题目分析: 代码如下: #include <cstdio>#include <cstring>#include <algorithm>using namespace std ;#define REP( i , a , b ) for ( int i = ( a ) ; i < ( b ) ; ++ i )#

Go-Time

日期&时间格式化。 package mainimport ("fmt""time")func main() {now := time.Now()now_string := fmt.Sprintf("%d%02d%02d-%02d%02d%02d-Others",now.Year(), now.Month(), now.Day(),now.Hour(), now.Minute(), now.Se

PostgreSQL 中的 `generate_series` 函数使用

1. 概述 在 PostgreSQL 中,generate_series 是一个非常实用的内置函数,它能够根据给定的起始值和结束值生成一系列连续的数字。这一功能对于需要生成大量连续数据或进行批量操作的场景非常有用。本文将详细介绍 generate_series 函数的基本用法,并通过一些简单的示例帮助你更好地理解和应用这一函数。 2. 基本用法 generate_series 函数的基本语法