(论文阅读-优化器)Selectivity Estimation Without the Attribute Value Independence Assumption

目录

摘要

一、简介

二、问题公式

2.1 数据分布

2.2 属性值独立

2.3 查询结果集大小估计

三、直方图

四、属性值独立假设(AVI)

五、多维直方图(MHIST)

六、奇异值分解

七、实验评价

八、总结


摘要

一个包含相同relation中多个属性的查询结果size取决于这些属性的联合数据分布joint data distribution,即,所有属性值组合的频次。为了简化对属性大小的估计,大多数商业系统会假设属性值是互相独立的,并仅针对独立的属性来维护统计数据(通常是直方图)。在实际场景中,这个假设几乎都是错误的,因此估计的结果会非常不准确。在本文中,我们针对高效近似(多维)联合数据分布提出了两个主要可选方案。

  1. 使用多维直方图

  2. 使用基于线性代数的奇异值分解(SVD)技术

大量的实验证明了这两种方法的优点和缺点,以及与独立推定相比两者的优点。

一、简介

数据库关系系统(DBMS)中的多个组件都需要针对opeartor结果size(或是selectivities)的合理准确的估计。Cost-based query optimizer使用这些信息来推断后续operator,或最终整个query execution plans的costs。同样滴,query profilers使用它们来为用户提供快速的反馈,作为一种方法,可以在实际执行查询之前检测某些形式的语义错误。Selectivity估计通常依赖于数据库内容的一些近似知识。

对于涉及一个relation中的单个属性的查询,它的结果size依赖于数据库中这个属性的数据分布。近似单属性数据分布的建议技术方案包括基于histogram直方图的技术(采用均匀分布假设是它们中的一个特例)、采样参数技术(?)。直方图的主要优势在于它几乎不需要运行时开销,而且不要求数据满足概率分布或是多项式,并且,在大多数真实场景的数据库中,有一些直方图可以产生低误差的估计,同时占用相当小的空间(在catalog中大约100 bytes)。因此,直方图是实践中最常用的统计形式(例如,它们被用在DB2、Informix、Ingres、Microsoft、Oracle、Sybase中),并在文献中得到了广泛的研究。我们自己的早期工作已经产生了一种分类法,既包括旧的直方图,也包括几种新的直方图,其中一些新直方图的准确率远远高于前者。

对于涉及到同一个relation中的两个或是多个属性的查询来说,它的结果集大小取决于这些属性的联合数据分布,即,数据库中这些属性组合值的频率。由于这些分布的多维性,并且有大量这样的属性组合值,联合分布的直接近似值会更复杂和昂贵。在实践中,大多数的商业DBMSs会采纳属性值独立假设。在这个假设下,一个relation中的单个属性的数据分布之间互相独立,并且联合数据分布可以从个体分布中派生(用一维直方图近似)。

不幸的是,真实数据很少会满足属性值独立假设。例如,函数依赖关系(functional dependencies)与假设完全相反。此外,还存在一些中间场景。例如,在Employee relation中,salary属性强依赖于age属性是非常自然的(例如,更高/更低的salaries通常会和older/younger age相关)。在这种场景下使用属性值独立假设会导致非常不准确的联合数据分布的近似,进而会导致不准确的查询结果集大小推断和DBMS性能的毁灭性代价。我们意识到只有一种方法可以替代这一假设,即构造多维等深度直方图。但是,根据新的和更准确的直方图类,这种建议似乎是有限的,而且为划分二维空间而提出的启发式技术往往无效。

受到上述问题推动,我们研究了几种相对准确的近似联合数据分布的方法。本文包含了这些努力的结果,并作出了如下贡献:

  1. 我们以前的以为分类法中的所有直方图都被推广为多维。我们引入的新直方图类别被证明在获取联合数据分布方面比传统的等深直方图更准确。

  2. 在满足各种数学约束的情况下,提供了一种将多维空间划分为给定数量的分区的新技术。该技术与基于Hilbert-numbering的技术并对Muralikrisbna和Dewitt的技术进行了概括,结果表明,该技术可产生明显更好的多维图。

  3. 线性代数中的奇异值分解(Singular Value Decomposition,SVD)技术被引入作为一种用少量独立数据分布来近似二维联合数据分布的技术。

大量的实验证明了各种方法的优点和缺点,以及与独立假设相比的好处。

二、问题公式

我们提供了在一个relation中的一组实数或是整数值属性Xi(i = 1..n)上下文中的定义。这些定义可以通过首先将其域中的值转换为浮点数来扩展到非数值属性。

2.1 数据分布

属性Xi的值集合Vi是Xi在relation R中中出现的值的集合。我们定义 Vi = { vi(k): 1≤k≤Di },其中当k<j时vi(k) < vi(j)。vi(k) 的扩展 si(k) 定义为 si(k) = vi(k + 1) - vi(k),对于1≤i≤Di。 (我们取 si(Di) = 1)vi(k)的频率fi(k)是R中满足Xi=vi(k)的元组的数量。vi(k) 的面积 ai(k) 定义为 ai(k) = fi(k)*si(k)。Xi 的数据分布是对的集合 Ti={ (vi(1),fi(1)), (vi(2),fi(2)), ..., (vi(Di),fi(Di)) }。

组合值<vi(k1), ..., v(kn)>的联合频率f(k1, ..., kn)是R中对于所有的i,满足属性Xi包含vi(ki)值的元组的数量。X1, ..., Xn的联合数据分布T1...n是整组(值组合,联合频率)对。通常我们将每个属性的单独数据分布称为它们的边缘分布。表示联合数据分布的一种自然方式是使用多维频率矩阵(tensor张量)。Xi 的频率矩阵 F1,..,n 是 D1 x .. x Dn矩阵(张量),其 [k1, ..., kn] 项等于 f(k1, .., kn)。在本文中,我们将此类矩阵称为 n 维矩阵。我们可以类似地定义对应于 Xi 的边缘分布的一维频率向量。

联合频率分布可以在多维空间作为一组点的集合进行可视化,其中每一个属性对应于一个轴。对于relation中出现的每一个属性组合值,空间中都会有一个点,其坐标等于属性值。下图Figure展示了一个二维的案例。点旁边的数字表示属性值对对应的联合频率。

请注意,联合数据分布是多维的,对于大型数据库relation来说可能非常大,并且对于每个属性组合(在数据库中可能有很多)都不同。由于这些复杂性,存储relation的整个联合数据分布是不切实际的,并且被认为是昂贵的,即使它是近似的。在下一节中,我们定义了某些联合数据分布的一个重要但罕见的特征,这使得它们更容易近似。

2.2 属性值独立

定理2.1 一组属性Xi, i≤i≤n,如果满足下面条件,会具有一个互相独立的数据分布:

其中k和m出现在f中的第i个参数,l和n出现在f中的第j个参数。换句话说,如果relation中的元组是根据其中一个属性的值进行分组的,那么每个组中其他属性值的分布都是相同的,等于一个常量因子。

我们让T代表relation R中的元组数量,Fi作为Xi的1 x ... x Di x ... x 1 频率向量并且F1...n作为所有Xi, 1≤i≤n,的联合频率矩阵。那么定理2.1意味着:

这些等式可以用如下的例子说明。(这个证明不严谨,只是给了一个case)

Example 2.1 假设X1和X2分别包含3个值,以及如下的联合频率和边际频率矩阵

我们可以很容易证明:1. 成立。例如,f(2, 1) /(2、3)= 30/6 = f (3,1) / f(3、3)= 15/3。同样地,把所有频率加起来,得到T=152,所以 2. 也成立

2.3 查询结果集大小估计

本文中,我们主要关注包含格式为(P1 & .. & Pn)谓词的查询,其中Pi是基于属性Xi的属性。这样一个查询的结果集大小可以基于相关属性的联合数据分布计算出来,作为满足查询谓词的属性对的频率之和。联合分频矩阵的任一个近似都会产生对应查询结果集大小的近似。一维直方图对于单属性分布近似来说是一个非常常见的工具,也是本文的核心,它们会在接下来的章节中被介绍。

三、直方图

在本节中,我们定义了一维直方图,并简要描述了我们早期工作中提出的一种分类法。本文后面定义了多维直方图的扩展。

属性X的一个直方图是使用一种partitioning rule来将数据分布划分到β(≥1)个互不相交的被称为bucket的子集中构造的,并用一些常见的方法来近似每个bucket的频率和值。特别是,对值最有效的方法是均匀分布假设,在这个假设中每个属性值在bucket的最小值和最大值之间被认为是相等放置的。同样地,对于频率来说最有效的方法是均匀频率假设,其中bucket中的每个频率都可以根据均值来近似。

作为例子,考虑众所周知的等宽直方图等深直方图。它们都将连续的属性值范围分组到bucket中,但它们采用的分区规则不同。在一个等宽的直方图中,所有的bucket被赋值的范围是相等的;在一个等深的直方图中,所有的bucket被赋值的元组总数是相等的。

我们引入了几类新的(一维)直方图,它们的特性和准确度都有显著的差异。我们对所有可能性的理解产生了一种分类法,使我们能够系统地处理新旧直方图类。这种分类法基于四个正交特征它们唯一地标识了一个直方图类,如下所述。

什么是source value?什么是最高的source values?什么是singleton bucket?什么叫bucket边界?什么是end-biased?

  • Sort Parameter:这是一个参数,它在数据分布中对于每个元素的值来自于对应的属性值和频率。所有的直方图都要求每个桶中的参数值与其他桶形成一个连续的范围,并且不能重叠。属性值attribute Value(V)、frequency频率(F)和area面积(A)是我们提出的sort parameter

  • Partition Class:这表示bucket中元素数量的限制。有两个重要的类是串行的:一个没有限制,并且end-biased采样;一个要求最多只有一个non-singleton bucket。这些类的区别之处准确度(serial最高)和存储效率(end-biased最高)。

  • Source Parameter:它捕捉在估计问题中最关键的数据分布的属性,并与下一个特征一起用于确定唯一的分区。分布spread(S)、频率frequency(F)、和,面积area(A)是source parameters中最有用的

  • Partition Constraint(分区预算):分区约束是对唯一标识单个直方图的source parameters的数学约束:

  • Equi-sum:在一个equi-sum直方图中,每一个bucket中的source value的加和近似一致。

  • V-Optimal:将直方图的方差定义为每个bucket中其source parameter方差的加权和,权重为桶中分组的属性值的数量。属性上的v-oprimaf直方图是所有直方图中具有相同桶数的方差最小的直方图。

  • MaxDiff:在MaxDiff直方图中,如果两个相邻(按照sort parameter order)的source parameter值之间的差值是β- 1最大的差值之一,则在这两个source parameter之间存在bucket边界。

  • Compressed:在一个compressd直方图中,h个最高的source values被单独存储在h个singleton buckets中;其余部分按照equi-sum直方图进行分区。我们选择满足以下条件的h值作为source values的数量:(a) 超过所有source values之和处于buckets数量;(b) 可以容纳在β个buckets的直方图中。

通过对每个正交的直方图特征进行不同的选择,可以得到不同的直方图类型。接下来,我们将使用p(s,u)来表示一个带有分区约束p、排序参数s和source parameter u的直方图类。例如,在这个符号下,相等深度和相等宽度的直方图分别变成equisum(V,F)和equisum(V,S)直方图。

使用上述直方图框架,我们现在转向本文的主要主题,即近似联合数据分布。

四、属性值独立假设(AVI)

属性值独立假设是在System R优化器中引入的。在这个假设中,所有的属性值以互相独立被处理。每一个属性的数据分布是近似独立的,可以使用本文前面所描述的分类中的任一个直方图来独立的近似。

使用场景:假设谓词P的格式为(Pi & ... & Pn),其中Pi是基于属性Xi上的过滤。假设Hi是属性Xi的直方图,T是relation的cardinality。首先,计算将Pi应用到基于Hi的relation上的结果大小估计si。然后,在relation上应用P的结果大小估计S可以通过以下公式获得:

这是公式2的一个直接结果。

评价:这种方法的好处之一在于它可以使用高质量的一维直方图,这样的直方图计算、存储和维护的代价都不昂贵。主要的劣势在于这样的假设几乎总是错误的,并且它会导致近似的联合数据分布(以及查询结果的大小)与实际数据相差甚远。

Example 4.1考虑左边的联合频率矩阵

很容易证明这个矩阵的编辑分布和Example 2.1一致。因此,在属性值独立性下计算的它们的联合频率矩阵是在这个例子中给出的,并在上面(右边)重复。这两个矩阵之间的差异是明显的。

接下来,我们考虑使用更准确的技术来捕捉属性之间的依赖关系。

五、多维直方图(MHIST)

一组属性之上的多维直方图是通过将联合数据分布分为β个互不相交的bucket,并使用如下的统一方法来对每个bucket中的频率和值集进行近似来构造的。

Values:值域是通过一个均匀分布假设(第三章中介绍)的扩展来近似的。假设Xi在bucket B中的最小值和最大值分别是mini和maxi。然后,我们可以将bucket形象化为一个n维的矩形,其中两个端点是<min1,...,minn>和<max1,...,maxn>。假设di是属性Xi在bucket B中的distinct value。假设第i维的第k个近似值(由沿该维的均匀分布假设得到)由vi'(k)标识。B中实际的数据点可以通过所有可能的组合来近似<v'1(k1),...,vn'(kn)>,其中1≤ki小于等于di。

Frequencies:所有的直方图都会根据平均值来对一个bucket中的frequencies进行均匀分布假设。因此,假设F是B中所有frequencies之和,每个近似值<v'1(k1),...,vn'(kn)>都会和一个等于F/(d1,...,dn)的近似频率相关。

Example 5.1:为了说明上面的近似,我们可以考虑图2一个bucket中值和频率的实际值和近似值。bucket中的平均频率是通过用频率之和(315)除以bucket中所有的近似值的数量(4*5=20)得出的。

多维直方图中的bucket需要保留如下信息:每一个维度的元素数量、最低值和最高值,和该维度下的distinct value数量。

接下来,我们使用不同的划分规则识别出积累多维直方图。可以使用与一维分类法中相同的参数对生成的直方图进行分类。虽然partition class、source parameter和partition constraint以一种直接的方式扩展到多维情况,但多维排序参数引入了一个严重的“ordering”问题,如下所述。

标量排序参数(例如,F, A,或是Vi)是完全有序的,因此在这些场景下一个bucket值对应一个值范围,和按照sort parameter排序的连续的组元素。一个多维sort parameter,例如,属性值(V)的组合,会更难处理,因为它需要在n维空间中找到任意的非重叠区域,而n维空间是一个非常大的数字。我们使用以下两种不同的技术来解决这个问题。(Hilbert Numbering/ Rectangular Partitioning)

Hilbert Numbering:前面我们所介绍的以V作为sort parameter的一维直方图是高度精确的,因为它们将物理上接近的值分组到一个bucket中,从而实现值域的良好近似。在空间数据库中,一种著名的以线性顺序捕捉多维值邻近性的技术是使用空间填充曲线,如希尔伯特曲线Hilbert curve。我们建议使用属性值组合的希尔伯特编号Hilbert Numbering作为一个参数(用H表示)来排序数据,从而再次将问题简化为单一维度

这个shcema(被称为Hilbert)如图3所示,它展示了一个MaxDiff(H,F),将图1分为6个bucket。注意这种技术可能会生成非矩形的区域,因此对应的bucket(必须是矩形的)可能最终会重叠。根据多维数据的线性排序本质,n维空间中相邻的两个点在线性排序中往往相距遥远(这个问题对于高维更严重)。因此,生成的直方图可能无法准确地捕捉值域中的接近度。

Rectangular Partitioning:在第二类技术中,通过启发式计算的不重叠的n维矩形区域直接逼近n维空间。

为了激发我们的技术,我们首先在之前的论问题中提出的将二维数据分布T以等深分区的方法分隔为β个bucket。我们的泛化方法(本文中成为Phased)将它们的算法扩展到其他分约束partition constraints、源参数source parameters和下面描述的更高维度(αi近似等于β)。

  • Step1:n维空间会沿着其中一个维度进行分区,即根据X1划分为α1个等深bucket。

  • Stepi, i=2..n:在step i中,每一个在Step i-1中发现的region Tj'会根据Xi划分为αi个region。Step n中的结果分区构成了最终的bucket。

这个算法有一些缺点。首先,它只能处理有限的直方图,因此可能不是质量更好的直方图。其次,因此维度分隔的顺序只会在开始决定一次,而且是任意决定的,这种技术可能导致糟糕的分区。这主要是因为沿着边缘数据分布进行良好的一维分割仍然可能导致联合数据分布的分割非常差,特别是当联合数据分布很大的时候

受到这些限制的启发,我们提出了一种新的技术(称之为MHIST),它在每一步会按照如下描述的方法来选择一个最“关键”的属性。在每一步中,算法都会处理一个部分联合分布的集合P,它是整个联合数据分布的子集。最初,P只包含整个联合数据分布。下面的步骤会不断重复,直到P中的部分分布等于可用的bucket数量,此时每个部分分布会在直方图中形成一个bucket。

  • Step1:首先,从集合 P 中,我们选择包含属性 Xi 的分布 T',此时Xi在T'中的边际分布是最需要分区的。对于V-Optimal直方图,这意味着一个边缘分布是源参数值的最大方差;对于MaxDiff直方图,一个相邻值之间的源值差异最大;对于equi-Sum压缩直方图,一个源值之和最大。

  • Step2:下一步,T'会沿着Xi划分为一个小数量(p)个bucket。结果p是一个在集合P中替换T'的新的部分联合数据分布。

    显然,不同的p值会导致不同的直方图,p对于直方图准确性的影响在实验章节中研究。我们把使用p路拆分的MHIST技术成为MHIST-p。

六、奇异值分解

七、实验评价

八、总结

  • 29
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值