CN110750565A - 基于物联网数据流滑动窗口模型的实时区间查询方法 - Google Patents

基于物联网数据流滑动窗口模型的实时区间查询方法 Download PDF

Info

Publication number
CN110750565A
CN110750565A CN201910760323.3A CN201910760323A CN110750565A CN 110750565 A CN110750565 A CN 110750565A CN 201910760323 A CN201910760323 A CN 201910760323A CN 110750565 A CN110750565 A CN 110750565A
Authority
CN
China
Prior art keywords
internet
things
data
hash
data structure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910760323.3A
Other languages
English (en)
Other versions
CN110750565B (zh
Inventor
王修君
莫磊
赵伟
郑啸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Anhui University of Technology AHUT
Original Assignee
Anhui University of Technology AHUT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Anhui University of Technology AHUT filed Critical Anhui University of Technology AHUT
Priority to CN201910760323.3A priority Critical patent/CN110750565B/zh
Publication of CN110750565A publication Critical patent/CN110750565A/zh
Application granted granted Critical
Publication of CN110750565B publication Critical patent/CN110750565B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供的基于物联网数据流滑动窗口模型的快速区间查询方法,涉及物联网应用领域,旨在设计一种能够应用在服务器中、并能够节省内存空间的新数据结构,该数据结构可以支持长度为L的任意区间的快速查询;本发明的数据结构能够始终表示到时间点t的流δ的n个最新元素W(t,n),并且可以快速回答假阳性率不超过ε,长度不超过L的任何查询间隔I关于“
Figure DDA0002170057140000011
”形式的空查询,通过对数据结构的改进,极大的减少物联网流δ中元素插入数据结构所需的时间,以及从数据结构中驱逐过时元素信息所需的时间,极大的减少了查询过程中的等待时间。

Description

基于物联网数据流滑动窗口模型的实时区间查询方法
技术领域
本发明涉及物联网数据流处理领域,具体涉及一种基于物联网数据流滑动 窗口模型的快速区间查询方法。
背景技术
随着物联网的快速发展,RFID阅读器、各种传感器等智能设备被广泛应用 于物体监控、信息采集、数据过滤等领域。之后,大量的物联网数据流通常会 从这些设备生成并发回。因此,物联网数据流的在线处理和分析对于物联网场 景中的许多实时应用程序来说都是至关重要的。通常,物联网数据流在快速下 连续生成新元素,导致大量数据无法存储在当今的设施中。因此,这些流的处 理算法面临严格的时间和空间约束。因此,物联网数据流对流上数据的查询问 题提出了巨大挑战。
本发明关注物联网数据流滑动窗口的n个最新元素,物联网数据流记为δ, 并研究滑动窗口上物联网数据流中的(ε,L)-Approximate Range Emptiness-problem,即近似范围(ε,L)内的空查询问题,表示为(ε,L)-ARE-problem。
在物联网数据流δ的一次扫描的约束下,(ε,L)-ARE-problem的主要任务是设 计一个节省空间的数据结构,该结构能够始终表示W(t,n),即直到时间点t为止, 流δ连续生成的n个最新元素(W(t,n)=emax{1,t-n+1},…,et-1,et),并且迅速回答一个形式 为
Figure BDA0002170057120000011
的空查询,I表示假阳性率不超过ε、长度不超过L的任何查 询区间,记为I=[a,b](|b-a|≤L-1)。
从上面对(ε,L)-ARE-problem的描述中,可以观察到基于(ε,L)-ARE-problem设计的数据结构能够有效地处理流δ中的大量数据,因此可以明显地应用于广泛的 物联网应用,因为该数据结构中有以下三个关键点:1)是一种节省空间的数据 结构,可以存储在内存中;2)对流δ进行了单遍扫描,并且能够始终表示W(t,n) 直到每个时间点t>0;3)可以快速提供任何间隔查询的近似回答。
然而,如图1所示,基于(ε,L)-ARE-problem有关的现有技术与局限性,有一 些研究工作是关于具有各种假设的静态数据集的近似成员查询问题。但是,所 有这些数据结构都是针对静态数据集而设计的,其中不考虑元素的删除和插入, 并且在线性查询的区间为[a,b]所需的时间是关于长度L的变量O(L),将会导致 用户获得查询结果的等待时间很长,尤其是当L很大或者用户发出大量查询间隔 的时候,即现有的数据结构不支持恒定的查询时间,因此,它们不适用于物联 网数据流场景。
还有一些关注静态数据集的近似范围空问题,静态数据集回答对静态数据 集的区间查询(如回答),是目前解决近似范围空问题的唯一现有 工作。但是,它们只关注如何表示静态集,因此,他们的数据结构不能应用于 物联网数据流。
发明内容
本发明目的在于提供一种基于物联网数据流滑动窗口模型的快速区间查询 方法,旨在能够节省内存上的空间,支持长度为L的任意查询区间的快速查询。
为达成上述目的,本发明提出如下技术方案:一种基于物联网数据流滑动 窗口模型的快速区间查询方法,包括如下步骤:
1)在服务器中建立基于(ε,L)-ARE-problem的数据结构D,所述数据结构D在 任意时间点t,t>0,使用的内存位的数量为
Figure BDA0002170057120000022
Figure BDA0002170057120000023
所述数据结构D包括4个独立的哈希函数hj,j∈{1,2,3,4},以及与哈希函数 分别对应的4个哈希表Bj,j∈{1,2,3,4};其中,每个哈希表包含g个桶,g={1,..., n/24},g∈N*;每个桶包含8个槽,记为s[q],q={1,2,...,8};
任一槽s[q]包括三部分:s.Fp、s.P和s.P,s.Fp用于存储物联网数据流δ中 对应元素的指纹;s.P用于存储指向链接的单元格列表的指针,该指针首先按照 时间戳的升序排列,然后按偏移值的升序排列;s.P用于存储指向链接的单元列 表的指针,该指针首先按照时间戳的升序排列,然后按偏移值的降序排列;
对于链接的单元格列表中的任一单元格,记为c,由s.P或s.P指向,包含三 个部分:c.Ts,c.O和c.Pt,其中,c.Ts用于存储物联网数据流δ中对应元素的时 间戳;c.O用于存储对应元素在物联网数据流δ中的偏移量;c.Pt用于存储指向该 链接的单元格列表的下一个单元格的指针;
对于在时间点t,物联网数据流δ连续生成的n个最新元素中的任一元素et, 采用
Figure BDA0002170057120000031
表示元素et所在块的值,
Figure BDA0002170057120000032
哈希函数hj使用
Figure BDA0002170057120000033
作为其关键字, 映射到其对应哈希表中的位置,记为
Figure BDA0002170057120000034
所述数据结构D还包括一个独立的哈希函数f,f的使用范围为
Figure BDA0002170057120000035
对于在时间点t,物联网数据流δ连续生成的n个最新元素中的任一元素et,通 过哈希函数f产生这个元素的指纹,记为
Figure BDA0002170057120000036
2)在时间点t,输入查询区间I=[a,b],通过数据结构D判断查询区间I的端 点元素a、b分别与滑动窗口W(t,n)的交集是否为空集;
首先,判断端点元素a:设置元素a的时间戳,记为Tt;设置元素a所在块的 值,记为aB;设置元素a所在块内偏移量,记为aO;生成端点元素a在4个哈希 表中散列桶的位置,Bj[hj(aB)],以及生成元素a的指纹f(aB);
当哈希表中4个散列桶中存在一个槽,记为s[a],使得s.Fp=f(aB),设置c为 s.P指向链接的单元格列表的第一个单元格,并且当c≠NULL,c.Ts≤(tmodn), 设置c指向c的下一个单元格指针,则当元素a在物联网数据流δ中偏移量大于其 块内偏移量时,判定端点元素a与滑动窗口W(t,n)的交集不为空集;
其次,判断端点元素b:设置元素b所在块的值,记为bB;b所在块内偏移量, 记为bO;生成端点元素b在4个哈希表中散列桶的位置,Bj[hj(bB)],以及生成元 素b的指纹f(bB);
当哈希表中4个散列桶中存在一个槽,记为s[b],使得s.Fp=f(bB),设置c为 s.P指向链接的单元格列表的第一个单元格,并且当c≠NULL,c.Ts≤(tmodn), 设置c指向c的下一个单元格指针,则当元素b在物联网数据流δ中偏移量大于其 块内偏移量,判定端点元素b与滑动窗口W(t,n)的交集不为空集;
当查询区间I的两个端点元素a、b与滑动窗口W(t,n)的交集均为空集时,查询 区间
Figure BDA0002170057120000041
进一步的,所述数据结构D支持数据插入,所述数据插入过程为:在时间点 t,物联网数据流δ连续生成的n个最新元素中的任一元素et,元素et所在块的 值为
Figure BDA0002170057120000042
设置元素et的时间戳,记为
Figure BDA0002170057120000043
Figure BDA0002170057120000044
存储于环绕计数器中,且
Figure BDA0002170057120000046
设置元素et所在块内偏移量,记为
Figure BDA0002170057120000047
Figure BDA0002170057120000048
生成元素et在4个哈希表中散列桶的位置Bj[hj(etB)]和元素et的指 纹f(et B);
如果4个散列桶中存在一个槽s[q]使得s.Fp=f(et B),设置s.P指向的链接单元格列表中的第一个单元格为c1、s.P指向的链接单元格列表中的第一个单元格为 c2;
当c1≠NULL,
Figure BDA0002170057120000049
或c1.Ts≤(tmodn)时,则删除c1.Pt指向的子列表中的单元格,否则,将c1指向c1的下一个单元格指针;
当c2≠NULL,
Figure BDA00021700571200000410
或c2.Ts≤(tmodn)时,则删除c2.Pt指向的子列表中的 单元格,否则,将c2指向c2的下一个单元格指针;
如果4个散列桶中不存在一个槽s[q]使得s.Fp=f(et B),则在4个散列桶中找 到空闲槽最小的桶,断开该空闲槽与相邻被占用的空闲槽的连接,生成两个新 的单元格,分别记单元格c1和c2,同时设置s.P指向c1,s.P指向c2,设置s.Fp=f(et B);
当c1≠NULL且c2≠NULL时,设置
Figure BDA00021700571200000411
和c1.Pt=NULL,设置
Figure BDA0002170057120000051
Figure BDA0002170057120000052
和c2.Pt=NULL。
进一步的,所述数据结构D支持数据更新,所述数据更新过程为:当物联网 数据流δ在时间点t新到达的元素et插入数据结构D后,如果tmodn≠0,则元素 et停止更新;
如果tmodn=0,则对于四个哈希表的任一桶中的任意一个槽,设置c为s.P指 向链接的单元格列表的第一个单元格;当c≠NULL,如果c.Ts≤n,则删除c和c.Pt 所指向的子列表,否则,c=c.Pt;设置c为s.P指向链接的单元格列表的第一个 单元格,当c≠NULL,如果c.Ts≤n,删除c和c.Pt所指向的子列表;否则,c=c.Pt。
进一步的,所述数据结构D对任意长度不超过L的查询区间的空查询、数据 插入和数据更新均具有常数时间成本。
由以上技术方案可知,本发明的技术方案基于物联网数据流滑动窗口模型 的快速区间查询方法,获得了如下有益效果:
本发明公开的基于物联网数据流滑动窗口模型的快速区间查询方法,设计 了一种能够应用在服务器中、并能够节省内存空间的新数据结构D,数据结构D 包含五个独立的哈希函数,分别用于存储物联网数据流中元素的位置和指纹, 可以支持长度为L的任意区间的快速查询;本发明针对现有数据结构在查询过程 中等待时间很长的问题设计了一个在内存上的节省空间的数据结构,该结构能 够始终表示到时间点t的流δ的n个最新元素W(t,n),并且可以快速回答假阳性率 不超过ε,长度小于或者等于L的任何查询间隔I关于
Figure BDA0002170057120000053
形式的 空查询;并且本发明设计的新的数据结构D不仅能支持数据查询操作,还支持数 据插入和更新;数据结构D具有常数时间成本,极大的减少了查询过程中的等待 时间,减少物联网流δ中元素插入数据结构所需的时间,以及从数据结构中驱逐 过时元素信息所需的时间。
应当理解,前述构思以及在下面更加详细地描述的额外构思的所有组合只 要在这样的构思不相互矛盾的情况下都可以被视为本公开的发明主题的一部分。
结合附图从下面的描述中可以更加全面地理解本发明教导的前述和其他方 面、实施例和特征。本发明的其他附加方面例如示例性实施方式的特征和/或有 益效果将在下面的描述中显见,或通过根据本发明教导的具体实施方式的实践 中得知。
附图说明
附图不意在按比例绘制。在附图中,在各个图中示出的每个相同或近似相 同的组成部分可以用相同的标号表示。为了清晰起见,在每个图中,并非每个 组成部分均被标记。现在,将通过例子并参考附图来描述本发明的各个方面的 实施例,其中:
图1为现有的数据结构促进物联网数据流上的实时服务例子的示意图;
图2为本发明数据结构D的组成结构图;
图3为数据结构D处理物联网数据流δ回答区间查询的过程;
图4为数据结构D的插入过程算法结构;
图5为数据结构D的更新过程算法结构;
图6为数据结构D的查询过程算法结构。
具体实施方式
为了更了解本发明的技术内容,特举具体实施例并配合所附图式说明如下。
在本公开中参照附图来描述本发明的各方面,附图中示出了许多说明的实 施例。本公开的实施例不定义包括本发明的所有方面。应当理解,上面介绍的 多种构思和实施例,以及下面更加详细地描述的那些构思和实施方式可以以很 多方式中任意一种来实施,这是因为本发明所公开的构思和实施例并不限于任 何实施方式。另外,本发明公开的一些方面可以单独使用,或者与本发明公开 的其他方面的任何适当组合来使用。
基于现有技术中的在解决(ε,L)-ARE-problem时设计的数据结构,都是针对静 态数据集而设计的,不支持恒定的查询时间,也不适用于物联网数据流场景, 并且现有的数据结构不考虑元素的删除和插入,并且在线性查询区间时所需等 待的时间长;本发明旨在提出一种基于物联网数据流滑动窗口模型的快速区间 查询方法,克服了数据结构无法应用于物联网数据流和没有研究支持快速范围 空查询优化方法等问题,支持长度为L的任意查询区间的快速查询、数据插入和 更新,并且具有常数时间成本。
下面结合附图所示的实施例,对本发明的基于物联网数据流滑动窗口模型 的快速区间查询方法作进一步具体介绍。
结合图2、图3和图6所示,一种基于物联网数据流滑动窗口模型的快速区 间查询方法,包括如下步骤:
1)在服务器中建立基于(ε,L)-ARE-problem的数据结构D,所述数据结构D在 任意时间点t,t>0,使用的内存位的数量为
Figure BDA0002170057120000072
所述数据结构D包括4个独立的哈希函数hj,j∈{1,2,3,4},以及与哈希函数 分别对应的4个哈希表Bj,j∈{1,2,3,4};其中,每个哈希表包含g个桶,g={1,..., n/24},g∈N*;每个桶包含8个槽,记为s[q],q={1,2,...,8};
任一槽s[q]包括三部分:s.Fp、s.P和s.P,s.Fp用于存储物联网数据流δ中 对应元素的指纹;s.P用于存储指向链接的单元格列表的指针,该指针首先按照 时间戳的升序排列,然后按偏移值的升序排列;s.P用于存储指向链接的单元列 表的指针,该指针首先按照时间戳的升序排列,然后按偏移值的降序排列;
对于链接的单元格列表中的任一单元格,记为c,由s.P或s.P指向,包含三 个部分:c.Ts,c.O和c.Pt,其中,c.Ts用于存储物联网数据流δ中对应元素的时 间戳;c.O用于存储对应元素在物联网数据流δ中的偏移量;c.Pt用于存储指向该 链接的单元格列表的下一个单元格的指针;
对于在时间点t,物联网数据流δ连续生成的n个最新元素中的任一元素et, 采用
Figure BDA0002170057120000073
表示元素et所在块的值,
Figure BDA0002170057120000074
哈希函数hj使用
Figure BDA0002170057120000075
作为其关键字, 映射到其对应哈希表中的位置,记为
Figure BDA0002170057120000081
所述数据结构D还包括一个独立的哈希函数f,f的使用范围为
Figure BDA0002170057120000082
对于在时间点t,物联网数据流δ连续生成的n个最新元素中的任一元素et,通 过哈希函数f产生这个元素的指纹,记为
Figure BDA0002170057120000083
2)在时间点t,输入查询区间I=[a,b],通过数据结构D判断查询区间I的端 点元素a、b分别与滑动窗口W(t,n)的交集是否为空集;
首先,判断端点元素a:设置元素a的时间戳,记为Tt;设置元素a所在块的 值,记为aB;设置元素a所在块内偏移量,记为aO;生成端点元素a在4个哈希 表中散列桶的位置,Bj[hj(aB)],以及生成元素a的指纹f(aB);
当哈希表中4个散列桶中存在一个槽,记为s[a],使得s.Fp=f(aB),设置c为 s.P指向链接的单元格列表的第一个单元格,并且当c≠NULL,c.Ts≤(tmodn), 设置c指向c的下一个单元格指针,则当元素a在物联网数据流δ中偏移量大于其 块内偏移量时,判定端点元素a与滑动窗口W(t,n)的交集不为空集;
其次,判断端点元素b:设置元素b所在块的值,记为bB;b所在块内偏移量, 记为bO;生成端点元素b在4个哈希表中散列桶的位置,Bj[hj(bB)],以及生成元 素b的指纹f(bB);
当哈希表中4个散列桶中存在一个槽,记为s[b],使得s.Fp=f(bB),设置c为 s.P指向链接的单元格列表的第一个单元格,并且当c≠NULL,c.Ts≤(tmodn), 设置c指向c的下一个单元格指针,则当元素b在物联网数据流δ中偏移量大于其 块内偏移量,判定端点元素b与滑动窗口W(t,n)的交集不为空集;
当查询区间I的两个端点元素a、b与滑动窗口W(t,n)的交集均为空集时,查询 区间
Figure BDA0002170057120000084
在上述步骤中,哈希表中任一个桶中的任一槽s[q]的三个部分中s.Fp包含
Figure BDA0002170057120000085
比特、s.P包含2log(2n)比特和s.P包含2log(2n)比特,因此,数据结构D 的四个哈希表中包含的所有槽的数量为,
Figure BDA0002170057120000091
个,需要内存位的数量为
Figure BDA0002170057120000092
比特。所述由s.P或s.P指向的任一单元格c包含的三个 部分c.Ts,c.O和c.Pt,其中c.O包含log2(L)比特、c.Ts和c.Pt均包含2log(2n)比特, 由于每个元素et∈W(t,n)的偏移量eo和时间戳最多存储在两个单元格中,因此 对于这些链接的单元格列表,至多需要内存位的数量为2n[log2(L)+2log(2n)]比特。
结合图3所示,所述数据结构D支持数据插入,所述数据插入过程为:对于 在时间点t,物联网数据流δ连续生成的n个最新元素中的任一元素et,元素et所 在块的值为
Figure BDA0002170057120000094
设置元素et的时间戳,记为
Figure BDA0002170057120000096
存储于环绕计数器中,且
Figure BDA0002170057120000097
设置元素et所在块内偏移量,记为
Figure BDA0002170057120000099
Figure BDA00021700571200000917
生成元素et在4个哈希表中散列桶的位置Bj[hj(et B)]和元素et的指 纹f(et B)。
如果4个散列桶中存在一个槽s[q]使得s.Fp=f(et B),设置s.P指向的链接单元格列表中的第一个单元格为c1、s.P指向的链接单元格列表中的第一个单元格为 c2;当cc1≠NULL,
Figure BDA00021700571200000910
或c1.Ts≤(tmodn)时,则删除c1.Pt指向的子列表中的单 元格,否则,将c1指向c1的下一个单元格指针;当c2≠NULL,
Figure BDA00021700571200000911
或 c2.Ts≤(tmodn)时,则删除c2.Pt指向的子列表中的单元格,否则,将c2指向c2的 下一个单元格指针。
如果4个散列桶中不存在一个槽s[q]使得
Figure BDA00021700571200000912
则在4个散列桶中找 到空闲槽最小的桶,断开该空闲槽与相邻被占用的空闲槽的连接,生成两个新 的单元格,分别记单元格c1和c2,同时设置s.P指向c1,s.P指向c2,设置s.Fp=f(et B); 当c1≠NULL且c2≠NULL时,设置
Figure BDA00021700571200000913
Figure BDA00021700571200000914
和c1.Pt=NULL,设置
Figure BDA00021700571200000915
Figure BDA00021700571200000916
和c2.Pt=NULL;通过上述判断完成在数据结构D中的数据插入操作。
结合图4所示,所述数据结构D支持数据更新,所述数据更新过程为:当物 联网数据流δ在时间点t新到达的元素et插入数据结构D后,如果tmodn≠0,则 元素et停止更新;
如果tmodn=0,则对于四个哈希表的任一桶中的任意一个槽,设置c为s.P指 向链接的单元格列表的第一个单元格;当c≠NULL,如果c.Ts≤n,则删除c和c.Pt 所指向的子列表,否则,c=c.Pt;设置c为s.P指向链接的单元格列表的第一个 单元格,当c≠NULL,如果c.Ts≤n,删除c和c.Pt所指向的子列表;否则,c=c.Pt;对 所有插入到数据结构D中的元素均按照上述过程完成数据结构D的更新。
结合图5所示的数据结构D基于查询区间的查询过程算法结构所示,所述数 据结构D对任意长度不超过L的查询区间的空查询、数据插入和数据更新均具有 常数时间成本,该常数时间成本记为O(1)。
下面分别结合图3至图6具体说明数据结构D对任意长度不超过L的查询区 间的空查询、数据插入和数据更新均具有常数时间成本的过程。
其中,如图3和图4所示,对任意长度不超过L的查询区间的空查询的查询 时间主要包括两部分,第一部分为算法步骤第2-3行,需要在最多48个桶中找 出满足s.Fp=f(et B)的槽s,至多48次数据比较耗时,该部分一般耗时较短,且 为常数时间,并且远远小于后续检查时间;第二部分为执行算法步骤第5-6行 和第13-14行的耗时,且为查询时间的重点关心段,即算法步骤第5-6行和第 13-14需要检查的单元格数量中的预期数量的时间。
在不失一般性的情况下,设定由s.P指向的链接的单元格列表包含K个单元 格:c1,c2,...,cK,其中K≤L,K是正整数,因为查询区间的元素最多有不超过L个 不同的偏移值。
为便于说明和计算,定义随机变量Yi,i=1,2,...,K,则:
Figure BDA0002170057120000101
基于在数据结构D中存储的2n个元素中最多有n个过期元素,并且c1.Ts<c2.Ts<…<cK.Ts,则:
Figure BDA0002170057120000111
由式1和式2可得,算法步骤中第5-6行需要检查单元格的期望数量为:
Figure BDA0002170057120000116
在K已知的条件下,式3的计算结果为常数,即为O(1);同时算法步骤的第 13-14行需要检查单元格预期数量的耗时计算步骤及同算法步骤的第5-6行的计 算过程,也得到相同的结果,即常数时间成本O(1);因此结合第一部分和第二部 分组成的查询时间可知数据结构D对任意长度不超过L的查询区间所需要的查 询时间为始终为常数时间成本,O(1)+O(1)=O(1)。
结合图5所示的数据结构D的插入过程算法结构,所述数据结构D支持数据 插入操作所需要的时间也为常数时间成本O(1)。在数据插入算法中,插入算法所 需的时间也主要是由算法步骤的第5-6行和第10-11行确定,因为插入算法中 的其它步骤只需要恒定的常数时间,因此进一步分析计算插入算法执行第5-6 行和第10-11行需要使用的预期比较次数。
在不失一般性的情况下,定义随机变量Zi,i=1,2,...,K,则:
Figure BDA0002170057120000113
基于物联网数据流δ中元素是从整数集合中随机且独立选择的,设定物联网 数据流δ中元素et在单元格di中存储的偏移量为di.O,i=1,2,...,K,则di.O和
Figure BDA0002170057120000115
是 独立同分布的随机变量,因此:
Figure BDA0002170057120000114
由式4和式5可得,需要检查单元格预期数量为:
在K已知的条件下,式6的计算结果为常数,即O(1);插入算法步骤中第10-11 行需要检查单元格预期数量的耗时计算步骤及过程同算法步骤的第5-6行的计 算过程,也得到相同的结果,即常数时间成本O(1);因此由式6可知数据结构D 插入任一元素et的时间开销为常数时间成本,也即O(1)+O(1)=O(1)。
结合图6所示,在数据结构D完成数据插入后,进行数据更新时,对任意一 个单元格平均更新时间也为常数时间成本O(1);即在时间点t最多扫描数据结构 D中的2×n个单元格:n,2n,....,则对任意一个单元格平均更新时间是 也是常数时间成本。
本发明公开的基于物联网数据流滑动窗口模型的快速区间查询方法,旨在 设计一种能够应用在服务器中、并能够节省内存空间的新数据结构D,该数据结 构D可以支持长度为L的任意区间的快速查询;本发明的数据结构D能够始终表 示到时间点t的流δ的n个最新元素W(t,n),并且可以快速回答假阳性率不超过ε, 长度小于或者等于L的任何查询间隔I关于
Figure BDA0002170057120000123
形式的空查询, 并且通过对数据结构D的改进,极大的减少物联网流δ中元素插入数据结构所需 的时间,以及从数据结构中驱逐过时元素信息所需的时间,极大的减少了查询 过程中的等待时间。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本发明 所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各 种的更动与润饰。因此,本发明的保护范围当视权利要求书所界定者为准。

Claims (4)

1.一种基于物联网数据流滑动窗口模型的快速区间查询方法,其特征在于,包括如下步骤:
1)在服务器中建立基于(ε,L)-ARE-problem的数据结构D,所述数据结构D在任意时间点t,t>0,使用的内存位的数量为
Figure FDA0002170057110000012
所述数据结构D包括4个独立的哈希函数hj,j∈{1,2,3,4},以及与哈希函数分别对应的4个哈希表Bj,j∈{1,2,3,4};其中,每个哈希表包含g个桶,g={1,...,n/24},g∈N*;每个桶包含8个槽,记为s[q],q={1,2,...,8};
任一槽s[q]包括三部分:s.Fp、s.P和s.P,s.Fp用于存储物联网数据流δ中对应元素的指纹;s.P用于存储指向链接的单元格列表的指针,该指针首先按照时间戳的升序排列,然后按偏移值的升序排列;s.P用于存储指向链接的单元列表的指针,该指针首先按照时间戳的升序排列,然后按偏移值的降序排列;
对于链接的单元格列表中的任一单元格,记为c,由s.P或s.P指向,包含三个部分:c.Ts,c.O和c.Pt,其中,c.Ts用于存储物联网数据流δ中对应元素的时间戳;c.O用于存储对应元素在物联网数据流δ中的偏移量;c.Pt用于存储指向该链接的单元格列表的下一个单元格的指针;
对于在时间点t,物联网数据流δ连续生成的n个最新元素中的任一元素et,采用表示元素et所在块的值,
Figure FDA0002170057110000014
哈希函数hj使用
Figure FDA0002170057110000015
作为其关键字,映射到其对应哈希表中的位置,记为
Figure FDA0002170057110000016
所述数据结构D还包括一个独立的哈希函数f,f的使用范围为
Figure FDA0002170057110000019
对于在时间点t,物联网数据流δ连续生成的n个最新元素中的任一元素et,通过哈希函数f产生这个元素的指纹,记为
Figure FDA0002170057110000018
2)在时间点t,输入查询区间I=[a,b],通过数据结构D判断查询区间I的端点元素a、b分别与滑动窗口W(t,n)的交集是否为空集;
首先,判断端点元素a:设置元素a的时间戳,记为Tt;设置元素a所在块的值,记为aB;设置元素a所在块内偏移量,记为aO;生成端点元素a在4个哈希表中散列桶的位置,Bj[hj(aB)],以及生成元素a的指纹f(aB);
当哈希表中4个散列桶中存在一个槽,记为s[a],使得s.Fp=f(aB),设置c为s.P指向链接的单元格列表的第一个单元格,并且当c≠NULL,c.Ts≤(t mod n),设置c指向c的下一个单元格指针,则当元素a在物联网数据流δ中偏移量大于其块内偏移量时,判定端点元素a与滑动窗口W(t,n)的交集不为空集;
其次,判断端点元素b:设置元素b所在块的值,记为bB;b所在块内偏移量,记为bO;生成端点元素b在4个哈希表中散列桶的位置,Bj[hj(bB)],以及生成元素b的指纹f(bB);
当哈希表中4个散列桶中存在一个槽,记为s[b],使得s.Fp=f(bB),设置c为s.P指向链接的单元格列表的第一个单元格,并且当c≠NULL,c.Ts≤(t mod n),设置c指向c的下一个单元格指针,则当元素b在物联网数据流δ中偏移量大于其块内偏移量,判定端点元素b与滑动窗口W(t,n)的交集不为空集;
当查询区间I的两个端点元素a、b与滑动窗口W(t,n)的交集均为空集时,查询区间
2.根据权利要求1所述的基于物联网数据流滑动窗口模型的快速区间查询方法,其特征在于,所述数据结构D支持数据插入,所述数据插入过程为:
在时间点t,物联网数据流δ连续生成的n个最新元素中的任一元素et,元素et所在块的值为
Figure FDA0002170057110000022
设置元素et的时间戳,记为
Figure FDA0002170057110000023
Figure FDA0002170057110000024
存储于环绕计数器中,且设置元素et所在块内偏移量,记为
Figure FDA0002170057110000026
Figure FDA0002170057110000027
生成元素et在4个哈希表中散列桶的位置Bj[hj(et B)]和元素et的指纹f(et B);
如果4个散列桶中存在一个槽s[q]使得s.Fp=f(et B),设置s.P指向的链接单元格列表中的第一个单元格为c1、s.P指向的链接单元格列表中的第一个单元格为c2;
当c1≠NULL,
Figure FDA0002170057110000031
或c1.Ts≤(t mod n)时,则删除c1.Pt指向的子列表中的单元格,否则,将c1指向c1的下一个单元格指针;
当c2≠NULL,
Figure FDA0002170057110000032
或c2.Ts≤(t mod n)时,则删除c2.Pt指向的子列表中的单元格,否则,将c2指向c2的下一个单元格指针;
如果4个散列桶中不存在一个槽s[q]使得s.Fp=f(et B),则在4个散列桶中找到空闲槽最小的桶,断开该空闲槽与相邻被占用的空闲槽的连接,生成两个新的单元格,分别记单元格c1和c2,同时设置s.P指向c1,s.P指向c2,设置s.Fp=f(et B);
当c1≠NULL且c2≠NULL时,设置和c1.Pt=NULL,设置
Figure FDA0002170057110000034
和c2.Pt=NULL。
3.根据权利要求2所述的基于物联网数据流滑动窗口模型的快速区间查询方法,其特征在于,所述数据结构D支持数据更新,所述数据更新过程为:
当物联网数据流δ在时间点t新到达的元素et插入数据结构D后,如果t mod n≠0,则元素et停止更新;
如果t mod n=0,则对于四个哈希表的任一桶中的任意一个槽:设置c为s.P指向链接的单元格列表的第一个单元格,当c≠NULL,如果c.Ts≤n,则删除c和c.Pt所指向的子列表,否则,c=c.Pt;设置c为s.P指向链接的单元格列表的第一个单元格,当c≠NULL,如果c.Ts≤n,删除c和c.Pt所指向的子列表;否则,c=c.Pt。
4.根据权利要求3所述的基于物联网数据流滑动窗口模型的快速区间查询方法,其特征在于,所述数据结构D对任意长度不超过L的查询区间的空查询、数据插入和数据更新均具有常数时间成本。
CN201910760323.3A 2019-08-16 2019-08-16 基于物联网数据流滑动窗口模型的实时区间查询方法 Active CN110750565B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910760323.3A CN110750565B (zh) 2019-08-16 2019-08-16 基于物联网数据流滑动窗口模型的实时区间查询方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910760323.3A CN110750565B (zh) 2019-08-16 2019-08-16 基于物联网数据流滑动窗口模型的实时区间查询方法

Publications (2)

Publication Number Publication Date
CN110750565A true CN110750565A (zh) 2020-02-04
CN110750565B CN110750565B (zh) 2022-02-22

Family

ID=69275886

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910760323.3A Active CN110750565B (zh) 2019-08-16 2019-08-16 基于物联网数据流滑动窗口模型的实时区间查询方法

Country Status (1)

Country Link
CN (1) CN110750565B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115547508A (zh) * 2022-11-29 2022-12-30 联仁健康医疗大数据科技股份有限公司 数据校正方法、装置、电子设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100817026B1 (ko) * 2006-12-05 2008-03-26 한국전자통신연구원 공간 슬라이딩 윈도우를 이용한 공간 데이터 스트림 처리시스템 및 방법
CN103154935A (zh) * 2010-10-11 2013-06-12 惠普发展公司,有限责任合伙企业 用于查询数据流的系统和方法
CN103177130A (zh) * 2013-04-25 2013-06-26 苏州大学 一种分布式数据流上的K-Skyband连续查询方法及系统
CN103309966A (zh) * 2013-06-04 2013-09-18 中国科学院信息工程研究所 基于时间滑动窗口的数据流点连接查询方法
CN104156524A (zh) * 2014-08-01 2014-11-19 河海大学 交通数据流的聚集查询方法及系统
CN106777093A (zh) * 2016-12-14 2017-05-31 大连大学 基于空间时序数据流应用的Skyline查询系统
CN109783520A (zh) * 2018-12-26 2019-05-21 东华大学 基于滑动窗口的可伸缩的大规模流数据顺序特征维持方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100817026B1 (ko) * 2006-12-05 2008-03-26 한국전자통신연구원 공간 슬라이딩 윈도우를 이용한 공간 데이터 스트림 처리시스템 및 방법
CN103154935A (zh) * 2010-10-11 2013-06-12 惠普发展公司,有限责任合伙企业 用于查询数据流的系统和方法
CN103177130A (zh) * 2013-04-25 2013-06-26 苏州大学 一种分布式数据流上的K-Skyband连续查询方法及系统
CN103309966A (zh) * 2013-06-04 2013-09-18 中国科学院信息工程研究所 基于时间滑动窗口的数据流点连接查询方法
CN104156524A (zh) * 2014-08-01 2014-11-19 河海大学 交通数据流的聚集查询方法及系统
CN106777093A (zh) * 2016-12-14 2017-05-31 大连大学 基于空间时序数据流应用的Skyline查询系统
CN109783520A (zh) * 2018-12-26 2019-05-21 东华大学 基于滑动窗口的可伸缩的大规模流数据顺序特征维持方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
杨永滔: "n-of-N数据流模型上高效概率Skyline计算", 《计算机软件及计算机应用》 *
王栩等: "基于滑动窗口的数据流压缩技术及连续查询处理方法", 《计算机研究与发展》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115547508A (zh) * 2022-11-29 2022-12-30 联仁健康医疗大数据科技股份有限公司 数据校正方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN110750565B (zh) 2022-02-22

Similar Documents

Publication Publication Date Title
Lim et al. Mascot: Memory-efficient and accurate sampling for counting local triangles in graph streams
Chen et al. Density-based clustering for real-time stream data
Hua et al. Locality-sensitive bloom filter for approximate membership query
Li et al. Efficient core maintenance in large dynamic graphs
Tu et al. Stream data clustering based on grid density and attraction
WO2017012491A1 (zh) 一种图像高维特征的相似比较方法及装置
Singh et al. Probabilistic data structures for big data analytics: A comprehensive review
CN110874488A (zh) 一种基于混合差分隐私的流数据频数统计方法、装置、系统及存储介质
CN102915347B (zh) 一种分布式数据流聚类方法及系统
CN114168608B (zh) 一种用于更新知识图谱的数据处理系统
CN108304409B (zh) 一种基于进位的Sketch数据结构的数据频度估计方法
Yu et al. Effective algorithms for vertical mining probabilistic frequent patterns in uncertain mobile environments
Alrabea et al. Enhancing k-means algorithm with initial cluster centers derived from data partitioning along the data axis with PCA
Park et al. Cell trees: An adaptive synopsis structure for clustering multi-dimensional on-line data streams
Deng et al. New estimation algorithms for streaming data: Count-min can do more
CN110750565B (zh) 基于物联网数据流滑动窗口模型的实时区间查询方法
Beyer et al. Distinct-value synopses for multiset operations
Hershberger et al. Adaptive sampling for geometric problems over data streams
CN108173876B (zh) 基于最大频繁模式的动态规则库构建方法
Huang et al. Optimisation of mobile intelligent terminal data pre‐processing methods for crowd sensing
Cohen Stream sampling framework and application for frequency cap statistics
US10706035B2 (en) Auto unload
CN116303585A (zh) 一种基于Flag标志位的数据流计数方法、设备和存储介质
Fan et al. OneSketch: A Generic and Accurate Sketch for Data Streams
Liu et al. Towards in-network compact representation: Mergeable counting bloom filter vis cuckoo scheduling

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant