The invention belongs to the technical field of data warehouse, in particular to an efficient sampling method for exploratory queries. The method of the invention includes: dividing the whole data set into several sampling blocks according to the collected user history query records, and constructing an index tree of sampling blocks to retrieve all sampling blocks; for each sampling block, K stratified sampling based on optimization are generated according to the limitation of the overall sample space defined by the user. Sample set; At run time, according to the query submitted by the user, all relevant sampling blocks are found from the index tree of sampling blocks, and the optimal sample set is extracted from K sample sets of each sampling block for approximate calculation and return; when selecting the optimal sample set, the optimal stratified sampling strategy under the condition of grouping with the target query is selected. The invention can successfully match more exploratory queries and return more accurate results.
【技术实现步骤摘要】
针对探索性查询的高效抽样方法
本专利技术属于数据仓库
,具体涉及一种针对探索性查询的高效抽样方法。
技术介绍
探索性分析场景中,用户更希望能在较低的时延内获得查询结果。抽样系统通过减少查询的数据量加速了用户查询的返回。其中,如何能在限制的查询时间内,提高探索性查询返回的近似结果的精确度是非常重要的。传统的抽样系统通过分析用户查询负载,尤其是用户查询中的分组条件,来有针对性地生成分层抽样样本,提高了在样本上的近似结果的精确度。然而,由于数据集的不同部分蕴藏了不同的信息,为了挖掘出这些信息,探索性查询对于不同的子数据集会使用截然不同的分组条件。这种情况下,子数据集上的查询负载特征被混合或是掩盖在了整个数据集的查询负载中。因此,传统抽样系统通过分析混合的查询负载产生的仅有一份的样本集合无法对涉及到若干子数据集的探索性查询返回较优的近似结果。
技术实现思路
本专利技术的目的是在探索性分析场景下,对在数据仓库上发起的探索性近似查询,提出一种更加灵活高效的抽样方法,使得近似结果的精确度得到提高。对于针对探索性查询的抽样方法,我们希望通过分析用户查询负载中不同子数据集上的查询特征情况,将整个数据集分割为若干个子数据集并以此作为抽样的最小基本单位。通过将呈现出不同查询特征的子数据集分割开来,可以更加有针对性的分析每个子数据集上的查询特征和数据特征,从而分析得出更加有效地抽样策略。对于每一个子数据集,针对与其关联的特定用户查询特征,进一步在其上生成多个样本集合。由于每个子数据集上都有多个样本集合可供选择,在运行时能从中选出一个较优的样本的可能性便大大增加,在其上得到的近似 ...
【技术保护点】
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) ...
【技术特征摘要】
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)将每种抽样策略即总体样本空间在每个分组上的大小分配策略,抽象为生成的样本集中任意随机样本属于某一分组的概率分布,由此可通...
【专利技术属性】
技术研发人员:邬志罡,郭程浩,毛旭琪,荆一楠,何震瀛,王晓阳,
申请(专利权)人:复旦大学,
类型:发明
国别省市:上海,31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。