CN108776707B - 针对探索性查询的抽样方法 - Google Patents
针对探索性查询的抽样方法 Download PDFInfo
- Publication number
- CN108776707B CN108776707B CN201810625076.1A CN201810625076A CN108776707B CN 108776707 B CN108776707 B CN 108776707B CN 201810625076 A CN201810625076 A CN 201810625076A CN 108776707 B CN108776707 B CN 108776707B
- Authority
- CN
- China
- Prior art keywords
- sample
- query
- sampling
- user
- optimal
- 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
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于数据仓库技术领域,具体为一种针对探索性查询的高效抽样方法。本发明方法包括:根据收集到的用户历史查询记录,将整个数据集划分成若干个抽样块,并构建一棵抽样块索引树来检索所有的抽样块;对于每一个抽样块,根据用户限定的总体样本空间大小限制,生成k个基于优化的分层抽样样本集;运行时,根据用户提交的查询,从抽样块索引树中找到所有有关的抽样块,从每个抽样块中的k个样本集合中取出最优的样本集进行近似结果计算并返回;选取最优样本集时,选出与目标查询分组条件下最优分层抽样策略距离最小的预生成策略;本发明能够成功匹配更多的探索性查询并返回更为精确的结果。
Description
技术领域
本发明属于数据仓库技术领域,具体涉及一种针对探索性查询的高效抽样方法。
背景技术
探索性分析场景中,用户更希望能在较低的时延内获得查询结果。抽样系统通过减少查询的数据量加速了用户查询的返回。其中,如何能在限制的查询时间内,提高探索性查询返回的近似结果的精确度是非常重要的。
传统的抽样系统通过分析用户查询负载,尤其是用户查询中的分组条件,来有针对性地生成分层抽样样本,提高了在样本上的近似结果的精确度。
然而,由于数据集的不同部分蕴藏了不同的信息,为了挖掘出这些信息,探索性查询对于不同的子数据集会使用截然不同的分组条件。这种情况下,子数据集上的查询负载特征被混合或是掩盖在了整个数据集的查询负载中。因此,传统抽样系统通过分析混合的查询负载产生的仅有一份的样本集合无法对涉及到若干子数据集的探索性查询返回较优的近似结果。
发明内容
本发明的目的是在探索性分析场景下,对在数据仓库上发起的探索性近似查询,提出一种更加灵活高效的抽样方法,使得近似结果的精确度得到提高。
对于针对探索性查询的抽样方法,我们希望通过分析用户查询负载中不同子数据集上的查询特征情况,将整个数据集分割为若干个子数据集并以此作为抽样的最小基本单位。通过将呈现出不同查询特征的子数据集分割开来,可以更加有针对性的分析每个子数据集上的查询特征和数据特征,从而分析得出更加有效地抽样策略。对于每一个子数据集,针对与其关联的特定用户查询特征,进一步在其上生成多个样本集合。由于每个子数据集上都有多个样本集合可供选择,在运行时能从中选出一个较优的样本的可能性便大大增加,在其上得到的近似结果也将更为精确。
本发明提出的针对探索性查询的高效抽样方法,具体步骤如下:
(1)记录用户每次发起的近似查询作为用户查询负载;
(2)根据收集到的用户历史查询记录,将整个数据集划分成若干个抽样块,并构建一棵抽样块索引树来检索所有的抽样块,具体过程为:
(2.1)对于树的一个节点,首先从用户历史查询记录中找到权重最大的数据过滤属性,将其作为用于分割当前节点代表的数据集的分割属性;计算属性权重的公式为:
weight(attr)=majority(attr)×diversity(attr) (1)
其中,majority(attr)为属性attr在用户查询记录中出现的频数;我们希望分割属性能够覆盖更多的用户查询,因此出现频数越高的属性可以获得越大的权重;diversity(attr)为与该属性attr出现在同一个用户查询中的不同的用于分组的属性的个数;如果diversity值过小,即某一属性总是伴随着特定的分组条件;那么根据该分割得到的子数据集将会呈现出相同的分组查询特征,这与我们所希望的寻找子数据集上不同的查询特征的目的不符;
(2.2)得到该节点的分割属性后,利用DBSCAN聚类方法得到该属性代表的维度上的若干个类簇,将这些类簇的边界值作为该节点用于划分生成树的子节点的关键字;在使用DBSCAN聚类方法进行聚类时,我们从符合范围查询条件的值的点内均匀随机抽取出若干点输入聚类算法;相比于仅仅考虑范围查询条件的端点,这种均匀随机取点的方法更能表征出底层的数据特征;
(2.3)根据节点的分割属性和相应的划分关键字,生成相应的子节点,并为每个子节点过滤出并记录该子节点代表的子数据集上相关的用户历史查询记录;
(2.4)重复步骤(2.1-2.3),直至与生成的子节点相对应的子数据集上关联的用户查询记录中没有多余的可用于划分数据的属性;将这些子节点标记为抽样块索引树的叶子节点;
(2.5)对于所有标记出的抽样块索引树叶子节点,构建抽样块,为每个抽样块保存相关的用户历史查询记录,以供对该抽样块生成具体样本时的抽样策略分析使用;
(3)对于每一个抽样块,根据用户限定的总体样本空间大小限制,进行离线样本创建,生成k个基于优化的分层抽样样本集,具体过程为:
(3.1)将每种抽样策略即总体样本空间在每个分组上的大小分配策略,抽象为生成的样本集中任意随机样本属于某一分组的概率分布;由此可通过两个概率分布之间的距离来计算两种抽样策略间的距离;其中对于某个分组g,其概率值为:
p(g)=Sg/X (2)
其中,Divergence是用于衡量两个概率分布间距离的公式,例如巴氏距离;Pu是当查询分组条件为u时最优的分层抽样抽样空间分配策略,即对每个分组分配相同大小的抽样空间;该优化目标的目的是使抽样方法更加关注用户查询负载中重要的分组特征,并且期望在将来所有可能的探索性查询上获取最低的平均误差;
(3.3)使用模拟退火算法训练得出最优的k个抽样策略;
(3.4)对于每一种抽样策略,考察每个分组中样本的个数,将样本个数大于平均个数α倍的分组标记为溢出组,将样本个数小于平均个数α倍的分组标记为饥渴组,从溢出组中抽出一定样本空间分配给饥渴组;参数α的默认取值为10;
(3.5)根据最终生成的抽样策略,即按照每个分组被分配到的抽样空间大小,在每个分组内进行随机抽样,生成最终的样本集合;
(4)运行时,根据用户提交的查询,从抽样块索引树中找到所有有关的抽样块;从每个抽样块中的k个样本集合中进行样本选择,取出最优的样本集进行近似结果计算并返回;进行样本选择选取最优样本集时,使用与(2.2)中相同的Divergence距离公式,选出与目标查询分组条件下最优分层抽样策略距离最小的预生成策略;
(5)在选择出的最优样本上针对查询所要求的聚合函数进行查询重写,返回近似结果。
公式中所用的符号及参数的含义如下:attr:数据表中的某一属性,g:查询结果中的某一分组,p(g):样本出自于分组g的概率,Sg:分组g上分配的抽样空间大小,X:总的抽样空间大小,k:单个抽样块上存放的样本集个数,U:用户查询中所有分组条件的集合,u:用户查询中某一个分组条件。
本发明通过将整个数据集划分成若干个抽样块,使得在每个抽样块上生成的抽样策略能够更加匹配针对该子数据集的查询,返回更为精确地近似结果。
本发明相较于现有的抽样系统在探索性分析场景下有着如下优势:
与现有系统直接分析整个数据集上混合的用户负载相比,本发明首先划分出子数据集,再对子数据集上的用户查询负载进行有针对的抽样策略分析可以大大提高涉及到多个子数据集的探索性查询的近似结果的精确度。
与仅在整个数据集上生成一份样本相比,本发明在每个抽样块上生成多份样本并在运行时挑选出其中与当前用户查询最匹配的一份样本进行近似查询,大大提高了近似结果的精确度。
附图说明
图1为本发明所述的抽样方法的系统架构图。
图2为抽样块索引树的一个示例。
图3为本发明与现有抽样方法在TPC-H数据集上的精确度比较。
图4为本发明与现有抽样方法在SDSS数据集上的精确度比较。
具体实施方式
为了便于称呼,下文中我们将本发明中的抽样方法简写为POLYTOPE。
在本节中我们通过两个具体的数据集及其上的探索性查询来介绍本发明,并将其与现有抽样方法比较以体现其优势。数据集的介绍如下:
TPC-H。一个经典的数据库基准测试数据集,内容为商品交易信息。我们在基准测试提供的模板查询的基础上模拟用户探索性分析生成了120个探索性查询。使用该数据集中的lineitem表,数据集的总大小为74.7GB。
SDSS。SDSS数据集包含来自天文领域的数据。从该数据集官网上收集了相关的查询日志,经过筛选保留了102个查询。该数据集的总大小为101.45GB。
图1展示了本发明从离线分析构建样本到回答用户近似查询的整个流程。在上述两个数据集上,按照图1所述系统流程离线构建样本,并比较在样本集上返回的近似结果与在完整数据集上返回的精确结果的相对误差。分别从上述两个数据集的查询集合中抽取了30条用户查询用于测试,并将剩余的查询作为用户历史查询记录输入抽样系统进行样本生成。首先,分析收集到的历史用户查询记录,在两个数据集上分别按照上文所述过程对整个数据集进行划分,生成抽样块索引树,并对每个抽样块进行离线样本创建。图2是生成的抽样块索引树的一个示例。与此同时,将30条用户查询根据其产生的分组的个数和分组大小的倾斜程度划分为了四类,分别为少分组数小偏斜度、少分组数大偏斜度、多分组数小偏斜度和多分组数大偏斜度。通过测试抽样方法在不同类别的查询下的误差情况,可以对抽样方法在各种情况下的表现有更加完整的认识。对于每一条用户查询,POLYTOPE首先利用抽样块索引树匹配出所有相关的抽样块。然后,在每个抽样块内进行样本选择挑选出最优样本。最后,在样本上根据查询所要求的聚合函数按照抽样率重写近似查询,计算出并返回近似结果。测试中,将POLYTOPE与随机均匀抽样Uniform、国会抽样Congressional和多列分层抽样Multi-Colum进行对比测试,通过限制运行时可扫描的样本数为总数据量的1%,评估每一类查询下的误差情况,在TPC-H数据集和SDSS数据集上的测试结果如图3、图4所示。
从图中可以看出,相较于其他三种抽样方法,POLYTOPE对于四类查询返回的近似结果的误差都要更小。随着偏斜度的增加,其余三种抽样方法均表现出了性能上的衰落。而本发明POLYTOPE由于划分了子数据集并很好的根据子数据集上的特征分配抽样空间,在大偏斜的情况下依旧有着良好的表现。在多分组数的情况下,每个分组能被分配到的抽样空间大小会变得十分有限。因此,由于每个分组上样本大小的减少,抽样方法在多分组数的查询类别上的误差率相较于少分组数时都会有所提高。而本发明POLYTOPE由于会根据分组大小进一步调配抽样空间,从已经拥有足够样本的溢出组中抽调样本空间用于补偿过小的分组,将珍贵的抽样空间用在了更需要的分组上。因此,在多分组的情况下,相较于其他三种抽样系统,本发明有着明显的优势。
Claims (2)
1.一种针对探索性查询的抽样方法,其特征在于,具体步骤如下:
(1)记录用户每次发起的近似查询作为用户查询负载;
(2)根据收集到的用户查询负载,将整个数据集划分成若干个抽样块,并构建一棵抽样块索引树来检索所有的抽样块,具体过程为:
(2.1)对于树的一个节点,首先从用户历史查询记录中找到权重最大的数据过滤属性,将其作为用于分割当前节点代表的数据集的分割属性,计算属性权重的公式为:
weight(attr)=majority(attr)×diversity(attr) (1)
其中,majority(attr)为属性attr在用户查询记录中出现的频数,diversity(attr)为与该属性attr出现在同一个用户查询中的不同的用于分组的属性的个数;
(2.2)得到该节点的分割属性后,利用DBSCAN聚类方法得到该属性代表的维度上的若干个类簇,将这些类簇的边界值作为该节点用于划分生成树的子节点的关键字;
(2.3)根据节点的分割属性和相应的划分关键字,划分数据集,生成相应的子节点,并为每个子节点过滤出并记录该子节点代表的子数据集上相关的用户历史查询记录;
(2.4)重复步骤(2.1-2.3),直至与生成的子节点相对应的子数据集上关联的用户查询记录中没有多余的可用于划分数据的属性;将这些子节点标记为抽样块索引树的叶子节点;
(2.5)对于所有标记出的抽样块索引树叶子节点,构建抽样块,为每个抽样块保存相关的用户历史查询记录,以供对该抽样块生成具体样本时的抽样策略分析使用;
(3)对于每一个抽样块,根据用户限定的总体样本空间大小限制,进行离线样本创建,生成k个基于优化的分层抽样样本集,具体过程为:
(3.1)将每种抽样策略即总体样本空间在每个分组上的大小分配策略,抽象为生成的样本集中任意随机样本属于某一分组的概率分布,由此可通过两个概率分布之间的距离来计算两种抽样策略间的距离;其中对于某个分组g,其概率值为:
p(g)=Sg/X (2)
其中,Divergence是用于衡量两个概率分布间距离的公式,Pu是当查询分组条件为u时最优的分层抽样抽样空间分配策略,即对每个分组分配相同大小的抽样空间;
(3.3)使用模拟退火算法,训练得出最优的k个抽样策略;
(3.4)对于每一种抽样策略,考察每个分组中样本的个数,将样本个数大于平均个数α倍的分组标记为溢出组,将样本个数小于平均个数α倍的分组标记为饥渴组,从溢出组中抽出一定样本空间分配给饥渴组;参数α取值为10;
(3.5)根据最终生成的抽样策略,即按照每个分组被分配到的抽样空间大小,在每个分组内进行随机抽样,生成最终的样本集合;
(4)运行时,根据用户提交的查询,从抽样块索引树中找到所有有关的抽样块;从每个抽样块中的k个样本集合中进行样本选择,取出最优的样本集进行近似结果计算,并返回;进行样本选择选取最优样本集时,使用与(2.2)中相同的Divergence距离公式,选出与目标查询分组条件下最优分层抽样策略距离最小的预生成策略;
(5)在选择出的最优样本上针对查询所要求的聚合函数进行查询重写,返回近似结果;
公式中所用的符号及参数的含义如下:attr:数据表中的某一属性,g:查询结果中的某一分组,p(g):样本出自于分组g的概率,Sg:分组g上分配的抽样空间大小,X:总的抽样空间大小,k:单个抽样块上存放的样本集个数,U:用户查询中所有分组条件的集合,u:用户查询中某一个分组条件。
2.根据权利要求1所述的方法,其特征在于,在系统根据新记录的用户查询负载更新抽样块索引树时,仅找到所有失效的抽样块的最低祖先节点进行更新操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810625076.1A CN108776707B (zh) | 2018-06-17 | 2018-06-17 | 针对探索性查询的抽样方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810625076.1A CN108776707B (zh) | 2018-06-17 | 2018-06-17 | 针对探索性查询的抽样方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108776707A CN108776707A (zh) | 2018-11-09 |
CN108776707B true CN108776707B (zh) | 2021-07-23 |
Family
ID=64026061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810625076.1A Active CN108776707B (zh) | 2018-06-17 | 2018-06-17 | 针对探索性查询的抽样方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108776707B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7587374B1 (en) * | 2006-03-20 | 2009-09-08 | The United States Of America As Represented By The Secretary Of The Navy | Data clustering method for bayesian data reduction |
CN103699678A (zh) * | 2013-12-31 | 2014-04-02 | 苏州大学 | 一种基于多阶段分层采样的层次聚类方法和系统 |
CN103927392A (zh) * | 2014-05-04 | 2014-07-16 | 苏州大学 | 一种深层网络数据源异常点的检测方法及系统 |
CN104391972A (zh) * | 2014-12-05 | 2015-03-04 | 深圳大学 | 一种拒绝率可控的Metropolis-Hastings图抽样算法 |
CN104462184A (zh) * | 2014-10-13 | 2015-03-25 | 北京系统工程研究所 | 一种基于双向抽样组合的大规模数据异常识别方法 |
CN105893694A (zh) * | 2016-04-21 | 2016-08-24 | 北京航空航天大学 | 一种基于重采样粒子群优化算法的复杂系统设计方法 |
CN107122395A (zh) * | 2017-03-10 | 2017-09-01 | 博彦科技股份有限公司 | 数据抽样方法和装置 |
-
2018
- 2018-06-17 CN CN201810625076.1A patent/CN108776707B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7587374B1 (en) * | 2006-03-20 | 2009-09-08 | The United States Of America As Represented By The Secretary Of The Navy | Data clustering method for bayesian data reduction |
CN103699678A (zh) * | 2013-12-31 | 2014-04-02 | 苏州大学 | 一种基于多阶段分层采样的层次聚类方法和系统 |
CN103927392A (zh) * | 2014-05-04 | 2014-07-16 | 苏州大学 | 一种深层网络数据源异常点的检测方法及系统 |
CN104462184A (zh) * | 2014-10-13 | 2015-03-25 | 北京系统工程研究所 | 一种基于双向抽样组合的大规模数据异常识别方法 |
CN104391972A (zh) * | 2014-12-05 | 2015-03-04 | 深圳大学 | 一种拒绝率可控的Metropolis-Hastings图抽样算法 |
CN105893694A (zh) * | 2016-04-21 | 2016-08-24 | 北京航空航天大学 | 一种基于重采样粒子群优化算法的复杂系统设计方法 |
CN107122395A (zh) * | 2017-03-10 | 2017-09-01 | 博彦科技股份有限公司 | 数据抽样方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108776707A (zh) | 2018-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11372851B2 (en) | Systems and methods for rapid data analysis | |
US6546394B1 (en) | Database system having logical row identifiers | |
CN106452868A (zh) | 一种支持多维度聚合分类的网络流量统计实现方法 | |
CN105095522B (zh) | 基于最近邻搜索的关系表集合外键识别方法 | |
US10452676B2 (en) | Managing database with counting bloom filters | |
JP2004518226A (ja) | データベースシステムおよびクエリオプティマイザ | |
US7328221B2 (en) | Optimization based method for estimating the results of aggregate queries | |
CN108833139B (zh) | 一种基于类别属性划分的ossec报警数据聚合方法 | |
US20040002956A1 (en) | Approximate query processing using multiple samples | |
CN108984695A (zh) | 一种字符串匹配方法及装置 | |
CN113568368B (zh) | 一种工控数据特征重排序算法的自适应确定方法 | |
CN1783092A (zh) | 数据分析装置和数据分析方法 | |
CN110188196A (zh) | 一种基于随机森林的文本增量降维方法 | |
CN108764307A (zh) | 自然最近邻优化的密度峰值聚类方法 | |
CN109390032B (zh) | 一种基于进化算法在全基因组关联分析的数据中探索与疾病相关的snp组合的方法 | |
CN102141988B (zh) | 一种数据挖掘系统中数据聚类的方法、系统及装置 | |
CN108776707B (zh) | 针对探索性查询的抽样方法 | |
CN113360551B (zh) | 一种靶场中时序数据的存储与快速统计方法及系统 | |
CN107423319B (zh) | 一种垃圾网页检测方法 | |
CN108717551A (zh) | 一种基于最大隶属度的模糊层次聚类方法 | |
Rekatsinas et al. | CRUX: Adaptive Querying for Efficient Crowdsourced Data Extraction | |
CN110766087A (zh) | 一种基于离差最大化法改进k-means的提高数据聚类质量的方法 | |
CN112860734A (zh) | 地震数据多维度范围查询方法及装置 | |
CN111221864B (zh) | 一种基于mysql慢查询日志词频分析的索引智能推荐方法 | |
Liu et al. | Clustering web surfers with probabilistic models in a real application |
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 |