CN108763298A - 一种针对窗口函数row方式的增量采样算法 - Google Patents
一种针对窗口函数row方式的增量采样算法 Download PDFInfo
- Publication number
- CN108763298A CN108763298A CN201810354665.0A CN201810354665A CN108763298A CN 108763298 A CN108763298 A CN 108763298A CN 201810354665 A CN201810354665 A CN 201810354665A CN 108763298 A CN108763298 A CN 108763298A
- Authority
- CN
- China
- Prior art keywords
- window
- data
- sampling
- function
- sampled
- 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.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种针对窗口函数row方式的增量采样算法,该方法利用随机抽样和增量采样的思想,在对每行数据的计算过程中对窗口内的数据进行采样,使用采样数据的统计信息拟合原始数据的窗口函数值并将置信区间一并返回用户。本发明对窗口函数的计算流程做出优化,避免处理数据全集,兼顾效率和准确性,在大数据应用上表现优异。
Description
技术领域
本发明属于数据库系统中的查询分析领域,针对SQL-2003新提出的窗口函数,通过近似计算的方式提高窗口函数的查询效率,提高了窗口函数的可用性。
背景技术
随着数据的积累,如何有效的分析和利用数据中蕴含的知识成为各行各业的关注点。传统的数据库聚焦于基本日常的事务处理,这些任务也被称为联机事务处理过程(On-Line Transaction Processing),比如基本的增删查改的操作。然后在现今的大数据背景下,传统数据库面对大量的数据处理效率低下,很难对日渐增加的数据分析和处理的任务提供有效的支持。
大数据的分析和处理任务,从技术角度而言,主要的难点在于需要处理的数据量大,而且要求分析的结果实时返回。这种场景下的数据分析任务被称为联机分析处理(On-Line Analytical Processing)。窗口函数是分析型数据库中一种很重要的技术,最初是作为SQL-99的扩展被提出来,在之后的SQL-2003正式成为一种新的特性。
窗口函数在分析型数据库中的应用很广泛,但是在数据量大的情况其查询处理的代价仍旧难以接受,而很多情况下用户需要快速地得到查询的结果,亟待得到一种有效的解决方法。
发明内容
本发明的目的是对窗口函数的计算提供一种针对窗口函数row方式的增量采样算法,从而提高分析性数据库在大数据应用中的可用性。同时本发明还针对采样的误差,给出了置信区间的计算方式。
实现本发明目的的具体技术方案是:
一种针对窗口函数row方式的增量采样算法,该算法包括以下具体步骤:
S1:对表格中的数据进行分区和排序;依据over字句中PARTITION子句将表格中的数据划分到键值对应的分区,每一个分区都对应着PARTITION子句中的一个键值;
S2:在分区上对窗口的每一行建立窗口W,同时初始化窗口的上下界;
S3:将上次计算的窗口数据SWi-1复制到当前窗口SWi;
S4:使用remove_head(.)函数移除失效的采样数据;由于窗口是向下滑动的,在滑动的过程中窗口头部的数据会被移除出窗口;如果采样数据包含在其中,在采样窗口中对对应数据进行移除;
S5:对于窗口中新增的数据进行采样,并调用append(.)函数添加到采样窗口SWi中;移除之后窗口中的数据减少,在新加入的数据中重新进行采样,然后添加到采样窗口中;
S6:对于SWi中的数据,计算窗口函数值;对每条数据应用adjust_transfunc(.)函数来更新结果得到最终的转移值;然后将每个窗口的转移值添加到结果之中;adjust_transfunc(.)是对原本的窗口函数的调整;
S7:重复S2-S5,直到所有的数据都计算完毕;
S8:利用公式(1),计算所得结果的误差;
其中εn代表总体和样本间的误差;p代表置信度,Zp代表正态分布下置信度p所对应的Z值,σ代表总体方差;
S9:输出结果。
所述步骤S2-S4中在窗口内部进行采样来拟合窗口函数值以及S4-S5的增量采样过程。
本发明的有益效果:
本发明对窗口函数的计算做出优化,降低了用户对数据库的查询响应时间,大大提高了窗口函数的执行效率,同时保证结果的精度。本发明在大数据时代表现尤为突出。
附图说明
图1是本发明流程图。
具体实施方式
下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
实施例
图1是本发明基于Row方式的窗口函数优化策略增量采样算法具体实施方式流程图。如图1所示,本发明具体步骤包括:
S101:对表格中的数据进行分区和排序。
表格1是由数据库评测基准TPC-H的标准测试框架DBGEN生成的订单数据(便于展示,移除了部分列)。其中,第一列表示订单的编号。第二列表示该订单所对应的客户ID。第三列表示订单的状态,O表示交易成功,F表示交易失败。第四列表示订单对应的价格。第五列表示订单生成的日期。第六列表示订单的优先级。
表格1
o_orderkey | o_custkey | o_orderstatus | o_totalprice | o_orderdate | o_orderpriority |
1 | 36901 | O | 173665.47 | 1996-01-02 | 5-LOW |
2 | 78002 | O | 46929.18 | 1996-12-01 | 1-URGENT |
3 | 123314 | F | 193846.25 | 1993-10-14 | 5-LOW |
4 | 136777 | O | 32151.78 | 1995-10-11 | 5-LOW |
5 | 44485 | F | 144659.2 | 1994-07-30 | 5-LOW |
6 | 55624 | F | 58749.59 | 1992-02-21 | 4-NOT SPECIFIED |
7 | 39136 | O | 252004.18 | 1996-01-10 | 2-HIGH |
32 | 130057 | O | 208660.75 | 1995-07-16 | 2-HIGH |
33 | 66958 | F | 163243.98 | 1993-10-27 | 3-MEDIUM |
34 | 61001 | O | 58949.67 | 1998-07-21 | 3-MEDIUM |
... | ... | ... | ... | ... | ... |
假定在某种应用场景下,用户需要使用窗口函数统计一段相邻的购买时间波动下某个客户的最大交易额,使用的sql语句如下:
selecto_custkey,max(o_totalprice)over(partition by o_custkey order byo_orderdate row 4 preceding and 4following)from orders where o_orderstatus=‘O’;
首先对表格中的数据进行分区和排序。依据over字句中PARTITION子句和order子句将表格中的数据划分到不同的分区并在每个分区分别进行排序,排序后的数据示例如表格2所示。
表格2
o_orderkey | o_custkey | o_orderstatus | o_totalprice | o_orderdate | o_orderpriority |
4808192 | 1 | O | 74602.81 | 1996-06-29 | 2-HIGH |
5133509 | 1 | O | 174645.94 | 1996-07-01 | 1-URGENT |
579908 | 1 | O | 54048.26 | 1996-12-09 | 5-LOW |
... | ... | ... | ... | ... | ... |
5096387 | 17 | O | 183112.74 | 1998-03-15 | 67 |
... | ... | ... | ... | ... | ... |
S102在分区上对窗口的每一行建立窗口W,初始化窗口的上下界
用W.d表示窗口上界,使用W.u表示窗口下界,使用W.TV表示窗口的转移值。以第一条数据为例,第一列的前10行(由于超出上界,上界置为0)和后10行和当前数据一起落入了窗口,即表格2中的前20条数据。相应属性如下:
W.d=0
W.u=4
W.TV=0.0
S103:将上次计算的窗口数据SWi-1复制到当前窗口SWi。
因为窗口向下移动,首先将上一次的窗口数据复制到当前窗口中,然后再进行进一步的运算。对于每个分区上的第一个结果,直接进行采样。而对于其他窗口,重用上次采样的结果。以SW6为例,示例数据如表格3所示,共有5条数据,这里没有列举完全。
表格3
o_orderkey | o_custkey | o_orderstatus | o_totalprice | o_orderdate | o_orderpriority |
4808192 | 1 | O | 74602.81 | 1996-06-29 | 2-HIGH |
579908 | 1 | O | 54048.26 | 1996-12-09 | 5-LOW |
4273923 | 1 | O | 53911.01 | 1997-03-23 | 5-LOW |
... | ... | ... | ... | ... | ... |
S104:使用remove_head(.)函数移除失效的采样数据。
在窗口的移动过程中,窗口上部的数据可能滑出窗口。例如第5个窗口到向下移动的过程中,第一条数据不再在第六条数据中出现,因此需要将其从SW6中移除,如表格4所示。
表格4
o_orderkey | o_custkey | o_orderstatus | o_totalprice | o_orderdate | o_orderpriority |
579908 | 1 | O | 54048.26 | 1996-12-09 | 5-LOW |
4273923 | 1 | O | 53911.01 | 1997-03-23 | 5-LOW |
... | ... | ... | ... | ... | ... |
S105:对于窗口中新增的数据进行采样,并调用append(.)函数添加到采样窗口SWi中
由于在S104中,采样窗口少了一条数据,需要在加入的数据进行新的采样并加入到采样窗口中。新产生的采样窗口如表格5所示,最后一行表示新加入的数据:
表格5
S106对于SW中的数据,计算窗口函数值。
对每条数据应用adjust_transfunc函数来更新结果得到最终的转移值。以第一条数据为例,最终的SW.TV=74602.81。
S107:迭代对表中的数据进行计算。
回到S102,对下一条数据建立窗口,并计算窗口函数值。
S108:利用公式(1),采样算法计算结果的误差。
将采样率代入到公式(1),计算置信区间(正常值加减均值的结果)。
S109:最终数据库返回的结果如表格6所示:
表格6
o_custkey | max(o_totalprice) | o_orderdate |
1 | 74602.81 | 1996-06-29 |
1 | 54048.26 | 1996-12-09 |
1 | 54048.26 | 1997-03-23 |
区间估计(对置信区间的估计)是计算采样误差的一个重要的手段。对于某个给定的置信水平(0.95或者0.99),如果计算出总体参数的置信区间,就可以评估出统计量与参数之间的近似程度。
在这里给出SUM函数和AVG函数的置信区间的计算方式。该方法使用均值作为误差分析对象来对误差进行估计。
对于给定的置信度p,根据标准正态分布表找到它所对应的z值,用zp表示,根据中心极限定义可以得到对应的误差范围,如公式(1)所示。
其中εn代表总体和样本间的误差;σ代表总体方差。
Claims (2)
1.一种针对窗口函数row方式的增量采样算法,其特征在于,该算法包括以下具体步骤:
S1:对表格中的数据进行分区和排序;依据over字句中PARTITION子句将表格中的数据划分到键值对应的分区,每一个分区都对应着PARTITION子句中的一个键值;
S2:在分区上对窗口的每一行建立窗口W,同时初始化窗口的上下界;
S3:将上次计算的窗口数据SWi-1复制到当前窗口SWi;
S4:使用remove_head(.)函数移除失效的采样数据;由于窗口是向下滑动的,在滑动的过程中窗口头部的数据会被移除出窗口;如果采样数据包含在其中,在采样窗口中对对应数据进行移除;
S5:对于窗口中新增的数据进行采样,并调用append(.)函数添加到采样窗口SWi中;移除之后窗口中的数据减少,在新加入的数据中重新进行采样,然后添加到采样窗口中;
S6:对于SWi中的数据,计算窗口函数值;对每条数据应用adjust_transfunc(.)函数来更新结果得到最终的转移值;然后将每个窗口的转移值添加到结果之中;adjust_transfunc(.)是对原本的窗口函数的调整;
S7:重复S2-S5,直到所有的数据都计算完毕;
S8:利用公式(1),计算所得结果的误差;
其中εn代表总体和样本间的误差;p代表置信度,Zp代表正态分布下置信度p所对应的Z值,σ代表总体方差;
S9:输出结果。
2.根据权利要求1所述的增量采样算法,其特征在于,所述步骤S2-S4中在窗口内部进行采样来拟合窗口函数值以及S4-S5的增量采样过程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810354665.0A CN108763298A (zh) | 2018-04-19 | 2018-04-19 | 一种针对窗口函数row方式的增量采样算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810354665.0A CN108763298A (zh) | 2018-04-19 | 2018-04-19 | 一种针对窗口函数row方式的增量采样算法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108763298A true CN108763298A (zh) | 2018-11-06 |
Family
ID=64010919
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810354665.0A Pending CN108763298A (zh) | 2018-04-19 | 2018-04-19 | 一种针对窗口函数row方式的增量采样算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108763298A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100325148A1 (en) * | 2009-06-19 | 2010-12-23 | Ingenix, Inc. | System and Method for Generation of Attribute Driven Temporal Clustering |
CN106227765A (zh) * | 2016-07-13 | 2016-12-14 | 广州唯品会网络技术有限公司 | 时间窗口累计的实现方法 |
CN106547547A (zh) * | 2016-10-18 | 2017-03-29 | 广州酷狗计算机科技有限公司 | 数据采集方法及装置 |
-
2018
- 2018-04-19 CN CN201810354665.0A patent/CN108763298A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100325148A1 (en) * | 2009-06-19 | 2010-12-23 | Ingenix, Inc. | System and Method for Generation of Attribute Driven Temporal Clustering |
CN106227765A (zh) * | 2016-07-13 | 2016-12-14 | 广州唯品会网络技术有限公司 | 时间窗口累计的实现方法 |
CN106547547A (zh) * | 2016-10-18 | 2017-03-29 | 广州酷狗计算机科技有限公司 | 数据采集方法及装置 |
Non-Patent Citations (4)
Title |
---|
GUANGXUAN SONG等: "Approximate Calculation of Window Aggregate Functions via Global Random Sample", 《DATA SCIENCE AND ENGINEERING》 * |
宋光旋等: "IM~2:一种改进的MIN/MAX窗口函数优化技术", 《华东师范大学学报(自然科学版)》 * |
田鹏辉: "视频图像中运动目标检测与跟踪方法研究", 《中国博士学位论文全文数据库》 * |
皋军: "智能识别中的降维算法简述", 《盐城工学院学报(自然科学版)》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10713240B2 (en) | Systems and methods for rapid data analysis | |
Koller | robustlmm: an R package for robust estimation of linear mixed-effects models | |
Johnson et al. | High-speed peak matching algorithm for retention time alignment of gas chromatographic data for chemometric analysis | |
Katajamaa et al. | Data processing for mass spectrometry-based metabolomics | |
US7509311B2 (en) | Use of statistics on views in query optimization | |
US20030135485A1 (en) | Method and system for rowcount estimation with multi-column statistics and histograms | |
CN106067034B (zh) | 一种基于高维矩阵特征根的配电网负荷曲线聚类方法 | |
CN110309199B (zh) | 一种面向非正态分布水质观测数据的幂变换分析方法 | |
JP4114653B2 (ja) | クエリ処理操作中に補助属性を用いてクエリをリライトするための方法および装置 | |
Awan et al. | MS-REDUCE: an ultrafast technique for reduction of big mass spectrometry data for high-throughput processing | |
US9576027B2 (en) | Generating a query plan for estimating a number of unique attributes in a database | |
CN116830097A (zh) | 数据库区域地图的自动线性聚类推荐 | |
US7945558B2 (en) | Query optimizer with join cardinality estimation which mitigates the effects of skew | |
Kleijnen | Design and analysis of simulations: Practical statistical techniques | |
CN105408883A (zh) | 数据库表列注解 | |
CN108763298A (zh) | 一种针对窗口函数row方式的增量采样算法 | |
Hilbe et al. | Generalized estimating equations for longitudinal panel analysis | |
CN114861800A (zh) | 模型训练方法、概率确定方法、装置、设备、介质及产品 | |
CN106933909B (zh) | 多维度数据的查询方法及装置 | |
Zhang et al. | Factor modeling for clustering high-dimensional time series | |
CN110895529B (zh) | 结构化查询语言的处理方法及相关装置 | |
Stonecypher | Computational methods | |
CN111382342B (zh) | 一种热搜词的获取方法、装置、设备及存储介质 | |
JPH03108036A (ja) | データベース管理システムの性能見積もり方法 | |
Zhilova | Simultaneous likelihood-based bootstrap confidence sets for a large number of models |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181106 |
|
RJ01 | Rejection of invention patent application after publication |