CN110008544B - 一种查询时序数据递增次数与递减次数的处理方法 - Google Patents
一种查询时序数据递增次数与递减次数的处理方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing 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查询非常灵活,但是一旦实体过大(数据过于密集),每次需要处理的数据量变大,性能会十分低下。
假设有个账号具备如下序列,⑦⑤⑥②排布如图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除支持毫秒、秒、分钟、小时、天、周、月、年以外,还支持任意时间切片长度。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108733697A (zh) * | 2017-04-19 | 2018-11-02 | 北京京东尚科信息技术有限公司 | 执行数据查询的方法和装置 |
Family Cites Families (4)
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 |
-
2019
- 2019-03-21 CN CN201910219684.7A patent/CN110008544B/zh active Active
Patent Citations (1)
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. |