According to the realization of the content of this disclosure, a query processing scheme is proposed. In this scheme, multiple data sets are pre stored, for example, stored in fast access storage devices for data analysis. Each subset of data can include data items corresponding to one or more dimensions. When multiple target dimensions corresponding to multiple query items that are received need to be covered by two or more data subsets, the query can be decomposed into multiple sub queries, instead of the source data set that is not stored in the steering analysis. Such decomposition can make the target dimension associated with each sub query item covered by a single subset of data. For each sub query, the corresponding subset of data is analyzed, and the query results of the query are determined based on the analysis results of multiple sub queries. In this way, queries can be processed quickly and query results can be provided from existing data subsets.
【技术实现步骤摘要】
数据分析中的查询处理
技术介绍
数据分析或数据探索(dataexploration)在数据挖掘、商业智能等诸多应用领域发挥着越来越重要的作用。用户可以向数据分析平台提交针对数据的各个方面(维度)的查询。查询处理工具可以探索和分析数据并且将查询结果返回给用户。由于用户的查询可能涉及数据的多个维度,因此要求查询处理工具可以跨维度理解数据并且挖掘数据背后的信息。可以采用多种联机分析处理(OLAP)技术来执行数据分析。很多数据分析任务对于时间很敏感并且因此期望以更快速度获得查询结果。例如,存在很多交互式数据探索的使用场景。用户可能希望依赖于上一次查询的结果做出判断,进而发起下一轮查询,通过多次的查询来做出最后的决策。如果查询处理工具不能够快速给出结果,这将极大降低其可用性。然而在如今的信息时代,随着可获得的数据源不断增长,数据变得无处不在并且在数量和维度上都有所增加。面对海量数据,如何为用户查询提供更快更准确的结果是数据分析面临的挑战。
技术实现思路
根据本公开内容的实现,提出了一种查询处理的方案。在该方案中,多个数据子集被预先存储、例如被存储在可快速访问的存储设备中,以供数据分析 ...
【技术保护点】
一种计算机实施的方法,包括:接收包含多个查询项的查询,所述多个查询项与数据条目的多个目标维度相关;确定所述多个目标维度是否需多个数据子集中的至少两个数据子集覆盖,所述多个数据子集中的至少一个数据子集包括与所述多个目标维度中的至少一个目标维度对应的数据条目;响应于所述多个目标维度需所述多个数据子集中的至少两个数据子集覆盖,将所述查询分解为多个子查询,每个子查询具有所述多个查询项中的至少一个查询项;以及通过分析所述多个数据子集中与每个子查询的所述至少一个查询项相关的目标维度的数据条目,来确定针对所述查询的查询结果。
【技术特征摘要】
1.一种计算机实施的方法,包括:接收包含多个查询项的查询,所述多个查询项与数据条目的多个目标维度相关;确定所述多个目标维度是否需多个数据子集中的至少两个数据子集覆盖,所述多个数据子集中的至少一个数据子集包括与所述多个目标维度中的至少一个目标维度对应的数据条目;响应于所述多个目标维度需所述多个数据子集中的至少两个数据子集覆盖,将所述查询分解为多个子查询,每个子查询具有所述多个查询项中的至少一个查询项;以及通过分析所述多个数据子集中与每个子查询的所述至少一个查询项相关的目标维度的数据条目,来确定针对所述查询的查询结果。2.根据权利要求1所述的方法,其中将所述查询分解为多个子查询包括:确定所述多个查询项中的每个查询项对之间的相关度;基于所述相关度和每个数据子集对应的目标维度,确定所述多个目标维度的关联性;以及基于确定的关联性将所述查询分解为所述多个子查询,使得具有多个查询项的子查询对应的目标维度被确定具有关联性。3.根据权利要求2所述的方法,其中确定每个查询项对之间的相关度包括:基于所述多个查询项在对应的目标维度中存在的概率值,确定每个查询项对之间的互信息。4.根据权利要求2所述的方法,其中确定所述多个目标维度的关联性包括通过以下至少一项确定所述多个目标维度中的两个目标维度具有关联性:与所述两个目标维度有关的查询项对之间的相关度大于相关度阈值;所述两个目标维度由所述多个数据子集中的第一数据子集覆盖;以及所述两个目标维度以及与所述两个目标维度中的一个目标维度具有关联性的另一目标维度由所述多个数据子集中的第二数据子集覆盖。5.根据权利要求1所述的方法,进一步包括:基于对源数据集的源维度的组合的预定覆盖率,从所述源数据集创建多个候选数据子集,每个候选数据子集覆盖所述源维度中的至少两个源维度;将所述多个候选数据子集中的至少两个候选数据子集合并为一个候选数据子集,使得合并后的候选数据子集覆盖所述至少两个候选数据子集的源维度;标识所述多个候选数据子集中其源维度由合并后的候选数据子集覆盖的候选数据子集;以及基于除所标识的候选数据子集之外的其余候选数据子集确定所述多个数据子集。6.根据权利要求5所述的方法,进一步包括通过以下选择所述至少两个候选数据子集:确定所述多个候选数据子集中的每个候选数据子集的数据量;以及从所述多个候选数据子集中选择数据量小于数据量阈值的所述至少两个候选数据子集。7.根据权利要求6所述的方法,其中确定每个候选数据子集的数据量包括:从给定候选数据子集包括的数据条目中采样多个数据条目;确定采样到的所述多个数据条目中不同数据条目的第一数目和出现次数小于计数阈值的数据条目的第二数目;基于所述第一数目和所述第二数目,确定所述给定候选数据子集包括的不同数据条目的数目;以及基于所述不同数据条目的数目确定所述给定候选数据子集的数据量。8.根据权利要求5所述的方法,其中基于其余候选数据子集确定所述多个数据子集包括:确定其余候选数据子集的总数据量是否超过可用于存储所述多个数据子集的存储空间;以及响应于所述总数据量小于或等于所述存储空间,将所述其余候选数据子集确定为所述多个数据子集。9.根据权利要求1所述的方法,其中所述多个数据子集被存储在可快速访问的存储设备中。10.一种设备,包括:处理单元;存储器,耦合至所述处理单元并且存储有指令,所述指令在由所述处理单元执行时执行以下动作:接收包含多个查询项的查询,所述多个查询项与数据条目的多个目标维度相关;确定所述多个目标维度是否需多个数据子集中的至少两个数据子集覆盖,所述多个数据子集中的至少一个数据子集包括与所述多个目标维度中的至少一个目标维度对应的数据条目;响应于所述多个目标维度需所述多个数据子集中的至少两个数据子集覆盖,将所述查询分解为多个子查询,每个子查询具有所述多个查询项中的至少一个查询项;以及通过分析所述多个数据子集中与每个子查询的所述至少一个查询项相...
【专利技术属性】
技术研发人员:林庆维,楼建光,
申请(专利权)人:微软技术许可有限责任公司,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。