CN110008544B - 一种查询时序数据递增次数与递减次数的处理方法 - Google Patents

一种查询时序数据递增次数与递减次数的处理方法 Download PDF

Info

Publication number
CN110008544B
CN110008544B CN201910219684.7A CN201910219684A CN110008544B CN 110008544 B CN110008544 B CN 110008544B CN 201910219684 A CN201910219684 A CN 201910219684A CN 110008544 B CN110008544 B CN 110008544B
Authority
CN
China
Prior art keywords
time
tail
head
count
decreasing
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.)
Active
Application number
CN201910219684.7A
Other languages
English (en)
Other versions
CN110008544A (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.)
Zhejiang Bangsheng Technology Co.,Ltd.
Original Assignee
Zhejiang Bangsun Technology Co ltd
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 Zhejiang Bangsun Technology Co ltd filed Critical Zhejiang Bangsun Technology Co ltd
Priority to CN201910219684.7A priority Critical patent/CN110008544B/zh
Publication of CN110008544A publication Critical patent/CN110008544A/zh
Application granted granted Critical
Publication of CN110008544B publication Critical patent/CN110008544B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种查询时序数据递增次数与递减次数的处理方法,本发明预先对数据序列分组,然后计算每个分组的累计递增与递减次数、首元素、尾元素,把中间结果存储在相应时间戳上,查询时根据指定的时间戳快速得到计算结果;首先,中间结果的存储位置灵活多变,满足各种场景的需求;由于存储结果是计算后的中间结果,内存耗费降低,存储效率很高,因为已经提前计算好了中间结果,所以在获取对应的递增次数与递减次数时响应速度极快;最为重要的是,这部分结果跟着系统时间移动而不断变化,能够达到所需的递增次数与递减次数随时间窗口平滑移动的目的。本发明适用于时序数据处理技术等数据分析领域,能够显著提升统计递增次数与递减次数的速度。

Description

一种查询时序数据递增次数与递减次数的处理方法
技术领域
本发明是一种时序数据处理技术,根据时序数据中的时间戳,将指定区间的时序运算结果存于该区间对应时间戳上,从而提供时间窗口平行滑动处理的能力。主要适用于时序数据处理技术等数据分析领域。
背景技术
在时序数据分析处理领域,对于时间窗口滑动处理的方案很多,大多都是将某个实体上面的数据进行过滤保留原始数据,从而进行adhoc查询的方案。adhoc查询非常灵活,但是一旦实体过大(数据过于密集),每次需要处理的数据量变大,性能会十分低下。
假设有个账号具备如下序列,
Figure GDA0002481465760000011
Figure GDA0002481465760000015
⑤⑥
Figure GDA0002481465760000013
Figure GDA0002481465760000014
排布如图1所示。假设以当前时间作为基准,我们需要统计该账号过去6小时的交易金额递增次数。按照adhoc处理的形式,需要根据当前时间(18:00:00),计算统计区间的起点(18-6=12:00:00),找到12点到18点的所有数据,然后对这些数据进行统计递增计算得到7这个答案。每次系统时间向前滑动,就需要重复上述计算步骤。因为每次都需要基于原始时间序列重复计算,整个计算过程复杂且效率低下,唯一的优势就是计算比较灵活。
发明内容
本发明的目的在于针对现有技术的不足,提供一种查询时序数据递增次数与递减次数的处理方法。
本发明的目的是通过以下技术方案来实现的:一种查询时序数据递增次数与递减次数的处理方法,对于一个时序数据集合P={(t1,v1),(t2,v2),(t3,v3),…,(tn,vn)},其中t代表不同事件时间,v代表对应时间上的一个事件;对该时序数据集合,计算其在任意时间区间内的递增次数或递减次数,具体处理步骤为:
(1)根据时间切片长度TS对数据集合进行分组,得到集合M={{(t1,v1),(t2,v2)…(tm1,vm1)},{(tm1+1,vm1+1),(tm2+2,vm2+2)…(tm2,vm2)}…{(tmi+1,vmi+1),(tmi+2,vmi+2)…(tn,vn)}}:对于集合P里的每个元素(t,v),都有(t,v)属于而且仅属于集合M的一个元素Mx,其中(t,v)与Mx的映射关系为t/TS+1=x。这样,M集合里的每个元素Mx代表时序数据集P中事件时间在TS*(x-1)与TS*x之间的元素组成的集合;
(2)对于集合M中的每个元素Mx,计算其累计递增次数或递减次数count、首元素head和尾元素tail,记为fx=(head,tail,count),所有的fx组成集合FV={f1,f2…fx};
(3)查询移动窗口中间结果集:根据指定时间戳T和时间切片个数TC,找到T对应的fx,那么集合Sx={fx-TC,fx–TC+1,…fx}就是该查询的中间结果集;
(4)计算移动窗口的递增次数或递减次数:对中间结果集Sx中的元素从前到后依次合并,相邻两个元素合并成一个新元素,新元素中首元素head是第一个元素的head,新元素的尾元素tail是第二个元素的tail,新元素的递增次数或递减次数count=第一个元素的count+第二个元素的count+X;当计算递增次数时,如果第一个元素的tail<第二个元素的head,X=1,否则X=0;当计算递减次数时,如果第一个元素的tail>第二个元素的head,X=1,否则X=0;这样依次合并后得到最终的一个元素,该元素的count就是移动窗口的递增次数或递减次数。
进一步地,所述时间切片长度TS除支持毫秒、秒、分钟、小时、天、周、月、年以外,还支持任意时间切片长度,比如3分钟,11秒等。
本发明的有益效果是:本发明预先把计算好的中间结果存储在相应时间戳,通过这样一种存储结构,可以根据指定的时间戳,快速得到对应的计算结果;首先,中间结果的存储位置灵活多变,满足各种场景的需求;另外,由于存储结果也是同样的数字,内存耗费没有增长,存储效率很高,而且因为已经提前计算好了中间结果,所以在查询时响应速度极快;最为重要的是,这部分结果是跟着系统时间移动而不断变化的,能够达到时间窗口平滑移动的目的。
附图说明
图1为一个实施例的账号交易序列示意图;
图2为本发明方法计算后的结果展示图;
图3为本发明方法与传统方法的实施效果对比图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细说明。
假设我们有一个时序数据集合P={(t1,v1),(t2,v2),(t3,v3),…,(tn,vn)},其中t代表不同事件时间,v代表对应时间上的一个事件;对该时序数据集合,计算其在任意时间区间内的递增次数或递减次数,具体处理步骤为:
(1)根据时间切片长度TS对数据集合进行分组,得到集合M={{(t1,v1),(t2,v2)…(tm1,vm1)},{(tm1+1,vm1+1),(tm2+2,vm2+2)…(tm2,vm2)}…{(tmi+1,vmi+1),(tmi+2,vmi+2)…(tn,vn)}}:对于集合P里的每个元素(t,v),都有(t,v)属于而且仅属于集合M的一个元素Mx,其中(t,v)与Mx的映射关系为t/TS+1=x。这样,M集合里的每个元素Mx代表时序数据集P中事件时间在TS*(x-1)与TS*x之间的元素组成的集合;
(2)对于集合M中的每个元素Mx,计算其累计递增次数或递减次数count、首元素head和尾元素tail,记为fx=(head,tail,count),所有的fx组成集合FV={f1,f2…fx}。这样计算后,无论Mx中有多少元素,都只会产生一个三元组,在存储时可以有效的节省空间;
(3)查询移动窗口中间结果集:根据指定时间戳T和时间切片个数TC,找到T对应的fx,那么集合Sx={fx-TC,fx–TC+1,…fx}就是该查询的中间结果集;
(4)计算移动窗口的递增次数或递减次数:对中间结果集Sx中的元素从前到后依次合并,相邻两个元素合并成一个新元素,新元素中首元素head是第一个元素的head,新元素的尾元素tail是第二个元素的tail,新元素的递增次数或递减次数count=第一个元素的count+第二个元素的count+X;当计算递增次数时,如果第一个元素的tail<第二个元素的head,X=1,否则X=0;当计算递减次数时,如果第一个元素的tail>第二个元素的head,X=1,否则X=0;这样依次合并后最终只剩下一个元素,该元素的count就是移动窗口的递增次数或递减次数。
本发明方法在流式数据处理场景中效果更加明显,在该场景中数据在产生后不断流入流式数据处理系统中,同时要求流式数据处理系统迅速的给出计算结果(通常是毫秒级或微秒级)。如果采用传统的计算方式,需要先查询出关联的全部历史数据,然后计算累计递增次数或递减次数;计算所需的时间与历史数据量直接相关,时间极不可控,在大维度情况下计算所需时间会达到秒级甚至分钟级。采用本发明方法后,每流入一条数据,采用步骤(2)的方法将其合并到对应的fx中,因为只需要处理一条数据,所以计算速度很快。输出结果时,只需要合并少量(等于时间切片个数TC)的元素即可得到所需结果。
实施例1
在金融领域,每一笔交易都有交易时间和交易金额,同一张卡在一段时间内的交易序列就是一个时序数据集合P。如图1所示,假设有交易时序数据集合P={(12:10,12),(12:40,7),(13:10,14),(13:20,5),(13:45,6),(14:28,19),(15:10,23),(15:20,67),(15:40,11),(15:50,2),(16:20,98),(16:25,15),(17:20,56)}。
首先,假设当时间切片长度为1小时,(12:10,12),(12:40,7)属于第一个分组,(13:10,14),(13:20,5),(13:45,6)属于第二个分组…(17:20,56)属于第六个分组。
接下来计算每个分组的累计递增次数(count)和首(head)尾(tail)元素,每个分组都可以得到一个3元组(head,tail,count)。每个分组的计算结果如图2所示。
假设查询时,时间戳为18:00、时间切片数为6,也就是查询(12:00,18:00)内所有交易金额组成的序列的递增次数。因此,得到了图2中显示的6个三元组。
最后,合并这6个三元组。相邻两个三元组合后得到一个新的三元组,新的head是第一个元组的head,新的tail是后一个三元组的tail;新的count首先是把两个三元组的count相加,然后如果第一个三元组的tail大于后一个的head,新的count再加1。最终可以得到过去6小时交易金额递增次数之和为7。
实施例2
为了展示本发明方法的实际有益效果,我们做了一组实验。通过对比本发明方法和传统方法在处理同样的数据量时,本发明方法比传统方法使用更少的时间来展示本发明方法的效果。
实验场景为:生成随机的50万组测试数据,每组测试数据中包括一个时间戳和一个数字。时间戳代表数据的时序,数字代表系统在该时间点上的采集值。测试数据分布在连续的50个小时中,每个小时有1万组。每组数据的时间戳在该小时内均匀分布,采集值随机生成。
测试方法为:分别使用本发明方法和传统方法计算每1个、2个...50个小时的递增和递减次数,然后记录下每次测试的时间,最终绘制图表。
测试结果如图3所示。通过结果可以看出:
(1)传统方法的处理耗时远远大于本发明方法。
(2)随着数据量的增长,传统方法的处理耗时线性增长,而本发明方法基本保持不变。
上述实施例用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明作出的任何修改和改变,都落入本发明的保护范围。

Claims (2)

1.一种查询时序数据递增次数与递减次数的处理方法,利用计算机进行快速的数据查询;其特征在于,预先把计算好的中间结果存储在相应时间戳,通过这样一种存储结构,查询时可根据指定的时间戳快速得到对应的中间结果;克服了adhoc的查询方法在数据量过大时性能下降的缺陷;对于一个时序数据集合P={(t1,v1),(t2,v2),(t3,v3),…,(tn,vn)},其中t代表不同事件时间,v代表对应时间上的一个事件;对该时序数据集合,查询其在任意时间区间内的递增次数或递减次数,具体处理步骤为:
(1)根据时间切片长度TS对数据集合进行分组,得到集合M={{(t1,v1),(t2,v2)…(tm1,vm1)},{(tm1+1,vm1+1),(tm2+2,vm2+2)…(tm2,vm2)}…{(tmi+1,vmi+1),(tmi+2,vmi+2)…(tn,vn)}}:对于集合P里的每个元素(t,v),都有(t,v)属于而且仅属于集合M的一个元素Mx,其中(t,v)与Mx的映射关系为t/TS+1=x;
(2)对于集合M中的每个元素Mx,计算其累计递增次数或递减次数count、首元素head和尾元素tail,记为fx=(head,tail,count),所有的fx组成集合FV={f1,f2…fx};
(3)查询移动窗口中间结果集:根据指定时间戳T和时间切片个数TC,找到T对应的fx,那么集合Sx={fx-TC,fx–TC+1,…fx}就是该查询的中间结果集;
(4)计算移动窗口的递增次数或递减次数:对中间结果集Sx中的元素从前到后依次合并,相邻两个元素合并成一个新元素,新元素中首元素head是第一个元素的head,新元素的尾元素tail是第二个元素的tail,新元素的递增次数或递减次数count=第一个元素的count+第二个元素的count+X;当计算递增次数时,如果第一个元素的tail<第二个元素的head,X=1,否则X=0;当计算递减次数时,如果第一个元素的tail>第二个元素的head,X=1,否则X=0;这样依次合并后得到最终的一个元素,该元素的count就是移动窗口的递增次数或递减次数。
2.根据权利要求1所述的一种查询时序数据递增次数与递减次数的处理方法,其特征在于,所述时间切片长度TS除支持毫秒、秒、分钟、小时、天、周、月、年以外,还支持任意时间切片长度。
CN201910219684.7A 2019-03-21 2019-03-21 一种查询时序数据递增次数与递减次数的处理方法 Active CN110008544B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910219684.7A CN110008544B (zh) 2019-03-21 2019-03-21 一种查询时序数据递增次数与递减次数的处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910219684.7A CN110008544B (zh) 2019-03-21 2019-03-21 一种查询时序数据递增次数与递减次数的处理方法

Publications (2)

Publication Number Publication Date
CN110008544A CN110008544A (zh) 2019-07-12
CN110008544B true CN110008544B (zh) 2020-07-03

Family

ID=67167746

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910219684.7A Active CN110008544B (zh) 2019-03-21 2019-03-21 一种查询时序数据递增次数与递减次数的处理方法

Country Status (1)

Country Link
CN (1) CN110008544B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108733697A (zh) * 2017-04-19 2018-11-02 北京京东尚科信息技术有限公司 执行数据查询的方法和装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102340416B (zh) * 2011-07-08 2014-03-19 东软集团股份有限公司 基于时间切片进行事件统计的方法及装置
CN104199942B (zh) * 2014-09-09 2017-11-07 中国科学技术大学 一种Hadoop平台时序数据增量计算方法及系统
CN106202384A (zh) * 2016-07-08 2016-12-07 清华大学 一种支持时序数据聚合函数的索引方法
US10489716B2 (en) * 2016-07-08 2019-11-26 Intellergy, Inc. Method for performing automated analysis of sensor data time series

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108733697A (zh) * 2017-04-19 2018-11-02 北京京东尚科信息技术有限公司 执行数据查询的方法和装置

Also Published As

Publication number Publication date
CN110008544A (zh) 2019-07-12

Similar Documents

Publication Publication Date Title
CN109948007B (zh) 一种查询时序数据统计最大连续递增次数与递减次数的处理方法
CN107766575B (zh) 读写分离的数据库访问方法及装置
CN103647670B (zh) 一种基于sketch的数据中心网络流量分析方法
Van Leeuwen et al. Streamkrimp: Detecting change in data streams
CN110866997A (zh) 一种新的电动汽车行驶工况构建方法
CN100354864C (zh) 数据挖掘中一种基于混合互信息的特征选择方法
CN110008544B (zh) 一种查询时序数据递增次数与递减次数的处理方法
CN110851450B (zh) 一种基于增量计算的伴随车即时发现方法
CN110532104B (zh) 一种多通道数据实时排序方法及系统
CN114185885A (zh) 一种基于列存数据库的流式数据处理方法及系统
CN111639060A (zh) 一种火电厂时序数据处理方法、装置、设备及介质
US8768938B2 (en) Histogram processing by trend and pattern removal
JP2001282816A (ja) 多次元データベース処理方法および処理システム
CN116226086A (zh) 一种数据迁移过程中分段数据的顺序维护与校验方法
CN113660147B (zh) 一种基于模糊熵的ip会话序列周期性评估方法
CN112347098B (zh) 数据库表拆分方法、系统、电子设备及存储介质
CN114185884A (zh) 基于列存数据的流式数据处理方法及系统
CN112988846A (zh) 一种基于绝对的时间滑动窗口的流量实时统计方法及引擎
CN112685444A (zh) 数据查询方法、装置、计算机设备和存储介质
CN102306198B (zh) 一种性能数据汇聚方法和装置
CN102739592B (zh) 有效峰值点筛选方法、峰值搜索分配器及削峰装置
CN104715031A (zh) 一种海量数据近似聚集查询中的离群分治取样方法
CN114071705B (zh) 一种时延扩展获取方法和装置
CN116256710B (zh) 一种基于并行处理的雷达脉冲重复间隔估计方法
CN111680059B (zh) 基于特定区域的活跃人员、常驻人员的分析方法及系统

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
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: Room ABCD, 17th floor, building D, Paradise Software Park, No.3 xidoumen Road, Xihu District, Hangzhou City, Zhejiang Province, 310012

Patentee after: Zhejiang Bangsheng Technology Co.,Ltd.

Address before: Room ABCD, 17th floor, building D, Paradise Software Park, No.3 xidoumen Road, Xihu District, Hangzhou City, Zhejiang Province, 310012

Patentee before: ZHEJIANG BANGSUN TECHNOLOGY Co.,Ltd.