CN105164675A - 增量式地更新统计 - Google Patents

增量式地更新统计 Download PDF

Info

Publication number
CN105164675A
CN105164675A CN201380076186.2A CN201380076186A CN105164675A CN 105164675 A CN105164675 A CN 105164675A CN 201380076186 A CN201380076186 A CN 201380076186A CN 105164675 A CN105164675 A CN 105164675A
Authority
CN
China
Prior art keywords
sample
row
database
statistics
distribution
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
Application number
CN201380076186.2A
Other languages
English (en)
Inventor
C·拉克什米纳拉亚
R·科舒鲁
陈启凡
H·泽勒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Antite Software Co., Ltd.
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN105164675A publication Critical patent/CN105164675A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/188Virtual file systems
    • G06F16/196Specific adaptations of the file system to access devices and non-file objects via standard file system access operations, e.g. pseudo file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Operations Research (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Complex Calculations (AREA)

Abstract

增量更新统计包括,对数据库中的数据库列的行进行采样以生成第一样本;在生成第一样本后,对数据库列的修改的行的子集进行采样以生成第二样本;基于所述第一样本和第二样本,确定数据库列是否发生分布变化;以及响应于确定存在分布变化,更新关于所述数据库列的数据库统计。

Description

增量式地更新统计
背景技术
在某些类型的数据库中,比如关系型数据库中,查询计划优化器使用关于数据库的数据进行统计。响应于接收查询,生成关于如何搜索数据库的多个查询计划。查询计划优化器作出关于这些查询计划中的哪些将在最短时间内根据搜索查询中的术语引起搜索数据库的决定。依赖于数据库,统计允许搜索查询优化器在无需从头计算关于数据库的数据的信息的情况下,选择查询计划。
附图说明
附图图示本文描述的原理的各种示例并且是说明书的一部分。图示的示例仅仅是示例并且不限制权利要求的范围。
图1是根据本文描述的原理的网络上的数据库的示例的示意图。
图2是根据本文描述的原理的数据库列的样本的示例的示意图。
图3是根据本文描述的原理的唯一条目计数估计器的示例的示意图。
图4A是根据本文描述的原理的布隆(bloom)过滤器的示例的示意图。
图4B是根据本文描述的原理的直方图的示例的示意图。
图5是根据本文描述的原理从数据库列的样本删除行的示例的示意图。
图6是根据本文描述的原理添加插入到的数据库列的样本的示例的示意图。
图7是根据本文描述的原理的布隆过滤器的示例的示意图。
图8是根据本文描述的原理的直方图的示例的示意图。
图9是根据本文描述的原理用于增量式地更新数据库统计的方法的示例的示意图。
图10是根据本文描述的原理的更新系统的示例的示意图。
图11是根据本文描述的原理的更新系统的示例的示意图。
图12是根据本文描述的原理的增量式地更新数据库统计的过程的流程图的示例的示意图。
具体实施方式
为了提供查询优化器有益的统计信息,统计被更新。然而,更新统计导致数据库能力和处理资源耗尽。在某些情况下,因为资源被提供给更新统计,因此这种更新阻碍了其他操作的性能。
本文描述的原理包括在数据库的数据分布已被确定在统计上保持不变时,用于利用较少工作且基于样本估计统计更新统计的机制。该机制确定数据库中的什么数据已经改变的足够以值得更新统计,而不是仅基于样本估计统计。这些原理包括用于增量式更新数据库的方法。这种方法包括对数据库中的数据库列的行进行采样以生成第一样本,随后在生成第一样本之后,对数据库列的修改的行的子集进行采样以生成第二样本,基于第一样本和第二样本确定数据库列是否发生分布变化,并且响应于确定存在分布变化而更新关于数据库列的数据库统计。修改的行可包括删除的行、插入的行、更新的行或其组合。
在下面的描述中,出于解释的目的,为了提供本系统和方法的全面理解,提出了许多具体细节。然而,对本领域技术人员来说显而易见的是,可在没有这些具体细节的情况下实践本装置、提供和方法。说明书中提及的“示例”或类似语言意味着描述的特定的特征、结构或特性被包括在至少一个示例中,但不必在其他示例中。
图1是根据本文描述的原理的网络上的数据库(100)的示例的示意图。在此示例中,客户设备(104)与网络(102)通信,网络(102)通信与数据库(100)通信。
客户设备(104)可以是用户使用来与数据库(100)通信的任何适当的设备。客户设备(104)笔记本电脑、个人计算机、台式机、电话、电子输入板、电子设备、任何类型的客户端设备或其组合。
用户可以在客户设备(104)的监视器上显示的搜索查询域中输入搜索查询。基于搜索查询术语,查询计划生成器生成多个查询计划,多个查询计划可用于搜索数据库(100)以从数据库的内容中找到适当的搜索结果。查询计划优化器选择查询计划优化器确定将用最短的时间搜索数据库内容的多个查询计划中的一个。查询计划优化器至少部分地基于存储在数据库(100)中和描述数据库内容的统计做出决定以选择查询计划。例如,数据库(100)可存储直方图、行计数、唯一条目计数、其它统计或其组合,以描述数据库(100)中的列信息。此统计使查询计划优化器免于重新计算关于列中的数据的摘要信息。
在数据库的数据存在很小的变换时,关于数据库列的统计可基于样本被估计,以避免数据可使用大量的资源来更新大量的统计。数据库(100)包括更新系统(106),更新系统(106)在适当的时候更新描述数据库列的至少之一的统计的至少之一。更新统计的适当时间是在统计分布具有统计改变时。
更新系统(106)可随时间的变化让数据的样本进入数据库的列,并且将样本相互比较。如果样本展现大的统计差异,则更新系统(106)可确定更新统计是适当的,而不是基于样本估计统计。进一步,更新系统(106)还可确定用于总结样本之间的大的统计差异的置信度的水平。预定的置信度阈值可包括95%置信度或在更新系统将使统计之一更新前被超越的一些其他置信度水平。
虽然此示例已经参照数据库、查询计划生成器、查询计划优化器、更新系统以及其它部件的具体位置进行了描述,但是这些部件可以位于根据本文描述的原理的任何适当的位置。例如,更细系统可以位于网络部件而不是数据库上,或位于客户设备上。另外,查询计划生成器和查询计划优化器也可以位于网络部件而不是数据库上,或位于客户设备上。
图2是根据本文描述的原理的数据库列(202)的样本(200)的示例的示意图。在此示例中,数据库列(202)存储信息的多个行(204)。数据库可包括额外的信息列。数据库列的行(204)可包括任何适当数量的行。在某些示例中,数据库列(202)可包括从仅几行到数亿行。
数据库还包括与行关联的统计,例如行的数量、唯一条目技术、其他统计或其组合。这些统计可以与查询计划优化器一起使用,该查询计划优化器选择将占用最短时间来执行的查询计划。
通过计算唯一条目计数、一系列列值上的不相交区间的行计数的值对的更新统计表来执行直方图收集。更新统计表是耗时操作,并且使用来自数据库的存储器、中央处理单元和输入/输出的大量资源,因为其使用“分组依据”(“group-by”)操作以及“分类”(“sort”)操作以计算列的唯一条目计数。数据库管理系统利用抽样以便减少该操作的成本。相应地,这减少了输入的大小并且改善了相应时间。
更新系统在第一天从数据库列取出行的样本(200)。样本(200)可以是来自数据库列(202)的行的随机样本。取出样本(200)可包括将选中行的值拷贝到同一列中。在某些示例中,样本包括来自数据库列(202)的所有行的至少1%。例如,如果数据库列具有成百万行,则样本表将包括至少上万行,该至少上万行包含从数据库列(202)的选中行拷贝的值。在一些示例中,样本包括数据库列的行的多于1%。
更新系统可基于样本(200)计算描述数据库列的至少一些统计。例如,更新系统可基于样本估计唯一条目计数统计。
虽然此示例已经参照数据库列中行的具体数量和样本的大小进行了描述,但是可根据本文描述的原理使用任何适当数量的行和样本大小。进一步,更新系统可取出多个数据库列的样本并基于它们相应的样本估计抽样的数据库列的每一个的统计。
图3是根据本文描述的原理的唯一条目计数估计器(300)的示例的示意图。在此示例中,更新系统的唯一条目计数估计器(300)基于样本(200,图2)估计唯一条目计数。唯一条目计数表示样本(200,图2)中的唯一值。例如,样本(200,图2)中的三行包括值11。因此,11构成一个唯一条目计数。一行包括值342。因此,342构成一个唯一条目计数。两行包括值654。因此,654构成一个唯一条目计数。进一步,一行包括值56。因此,56构成一个唯一条目计数。结果,在图3的示例中,唯一条目计数值是4。
图4A是根据本文描述的原理的布隆(bloom)过滤器(400)的示例的示意图。在此示例中,布隆过滤器(400)是包括表示样本(200,图2)的行的寄存器位图(402)的数据结构。寄存器中的每一个表示来自样本值的二进制值。如果在样本的行中存在大于0的值,则相应的布隆过滤器寄存器将存储值1。另一方面,如果样本行具有0值,那么相应的布隆过滤器寄存器将存储0。除了位图(402),布隆过滤器还包括表示来自样本的唯一条目计数的计数器(404)。例如,样本包括具有唯一值11的三个条目计数。因此,计数器之一保持值3。另外,样本包括654的两个条目计数,因此,另一个计数器保持值2。进一步,样本还包括一个唯一值342和56,因此,其他两个计数器(404)值1以表示这些唯一条目计数。布隆过滤器的计数器(404)表示样本的数据分布。
图4B是根据本文描述的原理的直方图(450)的示例的示意图。在此示例中,直方图(405)也表示样本的数据分布。样本的数据本分成值范围。第一值范围(451)覆盖从0到50,第二值范围(452)覆盖从大于50到300,第三值范围(453)覆盖从大于300到100。每个值范围(451、452、453)的第一列(454)表示样本中的总行数,其包括适当的值范围内的值。每个值范围(451、452、453)的第二列(455)表示适当的值范围内的那些行的唯一条目计数。在此示例中,更新系统基于直方图的分布,参考直方图(450)以确定数据库列的分布。直方图的分布表示样本的分布。
图5是根据本文描述的原理的来自数据库列(504)的样本(502)的删除行(500)的示例的示意图。在此示例中,随时间的流逝抽样第一样本。例如,第一样本可以在第一天采集,并且可在一小时、几个小时、一天、几天、一周、、其他时间段或其组合之后分析第一样本的改变。在时间流逝期间,当数据库列(504)中的行(500)被删除或额外行被插入时,数据库列(504)经历改变。这种改变可在更新过程在数据库列(504)上执行时发生。另外,这种改变可在用户人工插入或删除数据库列中的行(500)时产生。被删除的图5的示例中的每一行被用箭头(506)标记。数据库列(504)的行(508)被用插入行替代,所以,因为第一样本(502)被采集,尽管行(508)被删除,但行(508)出现改变的值。
对应于数据库列(504)的删除的行的已经包括在样本(502)中的行的每一个被从样本(502)删除。在此示例中,样本(502)的行(512、514、516)被从样本(502)中删除以反映数据库列(504)中的改变。
图6是根据本文描述的原理的添加插入(600)到的数据库列(604)的样本(602)的示例的示意图。在此示例中,仅采集数据库列(604)删除的行的随机样本。行的值在样本表中表示。在此示例中,样本(602)包括三行,其中三行中的两行具有大于0的值。具有大于0的值的行的每一个被插入到之前被修改以反映数据库列(604)的删除行的样本中。在此示例中,仅样本行(606)被插入到样本中。随着样本现在反映从样本原始采集到删除和插入的发生,因此样本现在分类为第二样本(608)。
图7是根据本文描述的原理的布隆过滤器(700)的示例的示意图。在此示例中,在来自第二样本(608,图6)的行计数的值大于0时,布隆过滤器(700)的位图(702)的寄存器保持“1”。因为样本中的行中的一个被删除,因此其对应的寄存器保持“0”值。计数器(704)也表示第二样本(608,图6)中发现的唯一条目计数。
更新系统比较布隆过滤器的分布以确定分布差异的存在。例如,更新系统可比较来自表示第二样本(608,图6)的布隆过滤器(700,图7)的计数器的唯一条目计数的分布与表示第一样本(200,图2)的布隆过滤器(400,图4A)的计数器的唯一条目计数的分布。此处,分布是不同的,因为布隆过滤器(400,图4A)有不同的唯一条目计数。响应于发现分布差异,例如唯一条目计数的改变,更新系统确定对第一样本(200,图2)估计的统计被更新。在其他示例中,布隆过滤器的比较未产生统计分布变化,则更新系统确定基于样本继续估计统计。在某些示例中,更新系统使用来自布隆过滤器的位图的行计数来确定是否发生分布改变。
图8是根据本文描述的原理的直方图(800)的示例的示意图。在此示例中,直方图(800)表示更新的样本的分布。更新系统比较图4B(450,图4B)中的直方图的分布与图8中直方图(800)的分布。更新系统可比较唯一计数条目分布、行计数的分布、每直方图区间的各频率的频率、整个直方图统计、直方图中描述的其他统计或其组合。如果选择的统计的分布中存在变化,更新系统确定更新数据库列的统计。
虽然上面已经参照使用布隆过滤器来确定第一样本和第二样本之间的分布变化描述了各示例,但是可使用任何适当的机制来确定分布变化。例如,概要表可用于替代布隆过滤器或与布隆过滤器组合来确定样本之间的分布变化。在某些示例中,其他机制用于替代概要表和布隆过滤器或与概要表和布隆过滤器组合。另外,虽然上面已经参照不同的样本大小、删除行的具体数量以及插入行的具体数量描述了各示例,但是可根据本文描述的原理使用其他任何适当的样本大小、删除行的数量或插入行的数量。
图9是根据本文描述的原理用于增量式地更新数据库统计的方法的示例的示意图。在此示例中,方法(900)包括对数据库中的数据库列的行进行采样(902)以生成第一样本,在生成第一样本后,对数据库的修改的行的子集进行采样(904)以生成第二样本,基于第一样本和第二样本确定(906)数据库列是否发生分布变化,以及响应于确定存在分布变化而更新关于数据库列的数据库统计。修改的行可包括删除的行、插入的行、更新的行或其组合。更新可被表示为其后伴随新的值的插入的旧的值的删除。
该方法可包括具有总体表T,其中表T是数据库列。样本表S表示样本,其中S满足条件基数|S|可以是至少min(1,000,000,|T|的1%)。在第一天,表T被表示为T1且在第一天样本表被表示为S1。唯一条目计数被用S1估计。在第二天,T1被更新产生表T2,其中T2=T1-d1+i1,其中d1表示总体中的删除且i1表示总体中的插入。相应地,S2=S1-ds1+is1,其中ds1表示样本表中的删除且is1表示样本表中的插入。在第i天,样本表被由Si=Si-1-dsi+isi,i=2,3,…,n,给定。因此,Si反映第i天数据的分布。
在第一天,更新系统建立表S1,且基于表S1估计唯一条目计数。进一步,更新系统为S1(每列一个布隆过滤器)的行建立计数布隆过滤器。针对具有高频率的值,计数器可溢出。此外,更新系统可为这些值保持独立的概要表。更新系统在计数布隆过滤器和概要表上存留S1
在第二天,更新系统从S1删除行。这些行被表示为ds1。更新系统还从表T采集行的随机样本。该随机样本是is1,其被添加到S1以生成S2。随机样本由T1中避免删除的样本的观察数据和插入的观察数据的样本组成。在第(i-1)天和第i天之间发生的插入的数量可通过更新系统跟踪和存储。因此,来自表T1的随机样本提供对插入的访问。如果更新系统跟踪更新之间的插入部分,则插入样本可被按剩余的数据分布的比例绘制。
此外,在第二天,针对ds1的每一行,更新系统减去布隆过滤器和概要表中的相应的计数器至较低的值。同样地,针对is1的每一行,更新系统增加布隆过滤器和概要表中的相应的计数器至较高的值。计数布隆过滤器为频率提供新的值并且概要表提供斜交元件的新列表。更新系统还在计数布隆过滤器和概要表上存留S2
更新系统提出假设的推理测试,以增量式地更新第i天的唯一条目计数。零假设为未改变偏斜统计。如果零假设被拒绝,使得第i-1天和第i天之间斜交中存在改变,那么更新统计确定从数据库列重新更新统计。另一方面,如果零假设不被拒绝,其建议数据分布未改变,则更新系统基于增量数据集(其是来自超级集的样本)更新唯一条目计数。更确切地,使{x11,x12,…,x1n}是从Si-1的列X得到的随机样本,并且{x21,x22,…,x2n}是从Si的列X得到的随机样本。基于随机样本,更新系统测试来自两个随机样本的偏斜度的差异。如果偏斜度中不存在95%的置信度水平的统计差异,则即便一系列的删除和插入,数据分布也将保持不变。在该示例中,更新系统基于从Si-1到Si的增量数据(第i-1天和第i天之间的变化)来增量式地估计唯一条目计数。第i-1天的增量数据不是Si,但样本从超级集(Ti,2)产生。
增量式地更新统计可包括多个条件。如果行计数与唯一条目计数的比例在增量样本中的更新循环上保持不变,那么唯一条目计数可线性地伸缩以找到Si中的唯一条目计数。进一步,如果存在从Si-1到Si的偏斜度的变化,那么更新系统可在样本Si上启动具有线性加权组合估计器的唯一条目数。另外,如果增量样本非常大,即比|T|的0.1%大很多,则可根据本文描述的原理使用布隆过滤器实现方式。
在某些示例中,可将列X的值分为多个直方图的区间,并且该可用于增量式地估计唯一条目数计数的方案可应用于单个区间。例如,直方图区间可以包括200个区间,所以估计器仅与样本大小的1/200一起工作。可以通过统计测试确定置信度水平。可以使用直方图、布隆过滤器、另一机制或其组合执行测试。可以使用行计数、唯一条目计数、其他统计数据或其组合确定置信度水平。统计测试可以包括参数测试、非参数测试、其他类型的测试或其组合。
比较包括在更新(插入和删除)前的时间段(t-1)采样,以及在更新后的时间段(t)采样。考虑到在连续的两个时间段中的随机样本Si-1和andSi,使得fi-1和fi表示如下定义的频率:正好出现了“i”次的观测数据(可为认为是“类”)的跟踪的频率的量。唯一条目计数计算与频率(f)的分布相关。量的变化引起分布中出现偏斜度。置信引擎估计偏斜度变化程度,以确定是否批准重新计算唯一条目计数。在置信引擎的实现方式中,做出了下列假设:1)在时段ti-1,ti,中发生删除和插入;2)采样的数据为高斯分布;3)提取独立的样本。
针对参数的测试,使x11,x21,....,xn1是来自大小为n的正态分布的随机样本,并且是来自大小为m的正态分布的随机样本,其中是未知的,来自时段tt-1,tt。还假设样本是独立的。
提出假设H01=μ2versusH11≠μ2。测试可被修改以测试是否H012=0versusH112≠0。由于总体方差是未知的,我们可以通过他们的样本替换他们估计可以使用下列公式计算样本方差:
s 1 2 = 1 n - 1 Σ i = 1 n ( x i 1 - x ‾ 1 ) 2 a n d s 2 2 = 1 m Σ i = 1 m ( x 2 i - x ‾ 2 ) 2
用于测试假设的逻辑统计为由给定的统计平均值之差。平均值之差的方差是:
var ( x ‾ 1 - x ‾ 2 ) = var ( x ‾ 1 ) + var ( x ‾ 2 ) = σ 1 2 n + σ 2 2 m .
假设总体方差是相向等,即样本方差被合并以产生对总体方差的综合估计。 var ( x ‾ 1 - x ‾ 2 ) = var ( x ‾ 1 ) + var ( x ‾ 2 ) = σ 1 2 n + σ 2 2 m = σ 2 ( 1 n + 1 m ) . 方差σ2通过综合样本方差估计:
S p o o l e d 2 = = ( n - 1 ) S 1 2 + ( m - 1 ) S 2 2 n + m - 2
测试统计被给出为:
t = ( x ‾ 1 - x ‾ 2 ) - ( μ 1 - μ 2 ) s p o o l e d 2 ( 1 n + 1 m ) ~ t n + m - 2
两个样本的t–测试适用于小样本大小。在总体方差相等时,可使用t-统计是适当的。该假设的验证涉及执行方差齐性检验测试。如果两个总体的方差是不相等的,则修改t–测试。该测试也被公认为贝伦斯-费舍尔(Behrens-Fisher)测试。t–测试对于比较独立的样本也是有效的。
成对的t–测试是用于比较两个不同时间分布变化的统计测试,假设样本在这两个时段相关。测试典型地包括获采样本变化之前和之后时段对象上的测量结果。假设可以被表达为H0b=μaversusH1b≠μa。在一些示例中,测试可以被重写为H0D=0versusH1D≠0,其中μD=μba。用于测试假设的测试统计是:
t D = x ‾ D - μ D s D / n = x ‾ D s D / n
其中并且sD是之前的统计平均值和之后的统计平均值之间的差值的标准偏差。由于之前和之后的平均值是相关的,因此 var ( x ‾ D ) = var ( x ‾ b - x ‾ a ) = var ( x ‾ b ) + var ( x ‾ a ) - 2 cov ( x ‾ b , x ‾ a ) .
两个正相关的随机变量的差的方差小于两个独立的随机变量的差的方差,并且类似的,如果随机变量是负相关的,那么差的方差将趋向于更大。因此成对差的t-统计调整测量结果之间的相关性。为了确定与频率相关的样本之间的统计显著性,将计算的t-统计数据的绝对值与tn-1,α/2给出的理论t-分布的百分点相比较。如果t≤-tα/2或者t≥tα/2,则指示两面测试的变化存在巨大的差异。对于单面测试,可适当的调整否定区域以得出相关推论。
可替代地,不依赖于采样数据的正常假设的非参数测试可被称为柯尔莫哥洛夫-斯米尔诺夫测试(Kolmogorov-Smirnov,K-S测试),其用来确定两个数据集是否存在显著差异。KS测试具有关于数据分布不用进行假设的优点。两个样本的KS测试是非参数假设测试,其可用来估计在每个数据集的数据范围内两个样本数据向量Si-1和Si分布的累积分布函数(CDF)的差异。其中数据是数据集的元组。
两面测试使用了两个数据向量分布的CDF之间的最大绝对差值。其中测试统计为
D * = m a x x ( | F 1 ( x ) - F 2 ( x ) | ) ,
其中为x1值小于或等于x的比例。为x2值小于或等于x(分布中的一个元组)的比例。测试统计数据D*用于计算样本Si-1和Si差异显著性的置信度水平。上面描述的这些测试可以被很容易的应用到考虑中的直方图区间的行计数(RC)。
虽然已经参照具体测试对确定置信度水平进行了描述,但是根据本文描述的原理,可以使用任何适当的测试。进一步的,虽然已经参照使用具体的统计对确定置信度水平进行了描述,但是可以使用任何适当的统计。
图10是根据本文描述的原理的更新系统(1000)的示例的示意图。更新系统(1000)包括采样引擎(1002)、确定引擎(1004)以及更新引擎(1006)。在此示例中,所述更新系统(1000)进一步包括置信度引擎(1008)、布隆过滤器引擎(1010),减量引擎(1012)以及增量引擎(1014)。引擎(1002、1004、1006、1008、1010、1012、1014)指的是执行指定功能的硬件和程序指令组合。每个引擎(1002、1004、1006、1008、1010、1012、1014)可以包括处理器和内存。所述程序指令存储在存储器中,并且使处理器执行引擎的指定功能。
采样引擎(1002)对数据库列进行采样,或者对数据库列的一部分进行采样,以生成样本。所述确定引擎(1004)确定在不同的时间采样的样本之间是否发生了统计分布变化。如果确定引擎(1004)确定存在分布变化,则更新引擎(1006)更新关于数据库列的至少一个统计,例如唯一条目计数。否则,所述更新系统(1000)将基于最新的样本估计统计数据。
更新系统具有分布变化存在的确定,置信度引擎(1008)确定置信度水平。只有在置信度水平高于预定阈值时的情况下,例如95%的置信度水平,更新引擎(1006)才可更新统计。
布隆过滤器引擎(1010)基于最初的样本建立布隆过滤器并且填充布隆过滤器的寄存器。减量引擎(1012)减去布隆过滤器的计数器,以反映数据库列的删除的行。增量引擎(1014)增加对应于样本中的插入的行的计数器。
图11是根据本文描述的原理的更新系统(1100)的示例的示意图。在此示例中,所述更新系统(1100)包括与存储器资源(1104)通信的处理资源(1102)。处理资源(1102)包括至少一个处理器,以及用于处理程序化指令的其他资源。存储器资源(1104)通常表示能够存储数据(例如更新系统(1100)使用的程序化指令或数据结构)的任何存储器。存储在存储器资源(1104)中示出的程序化指令包括列采样器(1106)、唯一条目计数估计器(1108)、布隆过滤器生成器(1110)、布隆过滤器填充器(1112)、删除行确定器(1114)、修改的行采样器(1116)、插入跟踪器(1118)、布隆过滤器减量器(1120)、布隆过滤器增量器(1122)、偏斜度比较器(1124)、唯一条目计数更新器(1126)以及搜索查询计划优化器(1128)。
存储器资源(1104)包括计算机可读存储介质,计算机可读存储介质包含使任务由处理资源(1102)执行的计算机可读程序代码。计算机可读存储介质可以是有形的和/或非瞬态的存储介质。计算机可读存储介质可以是非传输存储介质的任何适当的存储介质。计算机可读存储介质类型的非穷尽列表包括:非易失性存储器、易失性存储器、随机存取存储器、基于忆阻器的存储器、只写存储器、快闪存储器、电可擦除可编程只读存储器、磁存储介质、其它类型的存储器或其组合。
列采样器(1106)表示程序化指令,在执行时,使处理资源(1102)对数据库的列进行采样。唯一条目计数估计器(1108)表示程序化指令,在执行时,使处理资源(1102)基于用列采样器(1106)提取的样本估计唯一条目计数。
布隆过滤器生成器(1110)表示程序化指令,在执行时,使处理资源(1102)建立布隆过滤器。布隆过滤器填充器(1112)表示程序化指令,在执行时,使处理资源(1102)基于样本的总数,填充布隆过滤器的寄存器。删除行确定器(1114)表示程序化指令,在执行时,使处理资源(1102)确定反映在样本中的从数据库列中删除的行的数量。修改行采样器(1116)表示程序化指令,在执行时,使处理资源(1102)对数据库列中修改的行进行采样。修改的行可包括删除的行,插入的行,更新的行或其组合。插入跟踪器(1118)表示程序化指令,在执行时,使处理资源(1102)跟踪数据库列中的插入。
布隆过滤器减量器(1120)表示程序化指令,在执行时,使处理资源(1102)减去与样本中删除的行对应的布隆过滤器的计数器。布隆过滤器增量器(1122)表示程序化指令,在执行时,使处理资源(1102)增加与样本中插入的行对应的布隆过滤器的计数器。
偏斜度比较(1124)表示程序化指令,在执行时,使处理资源(1102)比较不同样本之间的分布的偏斜度。唯一条目计数更新器(1126)表示程序化指令,在执行时,如果偏斜度比较(1124)基于布隆过滤器和/或直方图的唯一计数确定样本中存在统计分布变化,则使处理资源(1102)从数据库列更新唯一条目计数。否则,估计唯一条目数(1108)会基于样本继续估计所述唯一条目数。搜索查询计划优化器(1128)表示程序化指令,在执行时,使处理资源(1102)基于最新的唯一条目计数选择查询计划。
进一步,存储器资源(1104)可以是安装包的一部分。响应于安装该安装包,存储器资源(1104)的程序化指令可以从安装包的源下载,例如便携式介质、服务器、远程网络位置、其它位置或其组合。兼容本发明描述的原理的便携式存储介质包括DVD、CD、闪存、便携式磁盘、磁盘、光盘、其它形式的便携式存储器或其组合。在其它例子中,程序指令已被安装。此处,存储器资源可以包括集成的存储器,例如硬盘驱动器、固态硬盘驱动器等等。
在一些例子中,所述处理资源(1102)和存储器资源(1104)可以位于同一的物理不见,例如服务器或网络部件。存储器资源(1104)可以是物理部件的主存储器、高速缓存、寄存器、非易失性存储器或物理部件的存储器结构的其他部分。可替代地,存储器资源(1104)可以通过网络与处理资源(1102)通信。进一步,当程序化指令位于本地时,数据结构,例如库且可以通过网络连接从远程位置访问。因此,更新系统(1100)可以在用户设备、服务器、服务器集合或其组合上实现。
图11的更新系统(1100)可以是通用计算机的一部分。然而,在可替代的示例中,更新系统(1100)可以是专用集成电路的一部分。
图12是根据本文描述的原理的增量式地更新数据库统计的过程的流程图(1200)的示例的示意图。在此示例中,过程包括:在第一天,对数据库列进行采样(1202)以生成第一样本,并且基于第一样本估计(1204)唯一条目计数。过程还包括基于第一样本填充(1206)布隆过滤器计数器且记录布隆过滤器计数器中的唯一条目计数。过程进一步包括:修改(1208)行,例如删除、插入或更新行,在第二天,自第一样本生成后,在从数据库列删除的第一样本中,在第二天对数据库列的修改的行采样(1210),以定位修改行中的插入。由于样本中的删除行,与较低频率对应的布隆过滤器中的计数器被减去(1212)。同样地,由插入行引起的与增加的频率对应的计数器被增加(1214)到较高的值。
过程还包括确定(1216)表示不同样本的布隆过滤器之间是否存在统计分布变化。如果确定不存在分布变化,则过程估计(1218)样本上的列的唯一条目计数。另一方面,如果确定存在分布变化,则过程完全更新(1220)数据库列中的唯一条目计数。
虽然上面已经参照生成第一样本和生成第二样本之间的具体时间期间描述了各示例,但根据本文描述的原理可使用任何适当的期间。进一步,虽然上面已经参照用于确定分布变化的具体机制描述了各示例,但根据本文描述的原理可使用使用用于确定分布变化的任何适当机制。
虽然已经参照具体的直方图描述了该示例,但根据本文描述的原理可使用任何适当类型的直方图。进一步,虽然已经参照具体的布隆过滤器描述了该示例,但根据本文描述的原理可使用任何适当类型的布隆过滤器。另外,虽然上面已经参照具体的统计描述了各示例,但根据本文描述的原理可使用任何适当类型的统计。
已经提供前面的描述仅用于说明和描述描述的原理的示例。该描述目的不在于穷举或将这些原理限制到公开的任何精确的形式。根据上述教导,许多修改和变形是可能的。

Claims (15)

1.一种用于增量式地更新统计的方法,包括:
对数据库中的数据库列的行进行采样以生成第一样本;
在所述第一样本生成后,对所述数据库列的修改的行的子集进行采样以生成第二样本;
基于所述第一样本和所述第二样本确定所述数据库列是否发生分布变化;以及
响应于确定存在分布变化,相应地更新关于所述数据库列的数据库统计。
2.根据权利要求1所述的方法,其中所述数据库统计包括唯一条目计数,行计数,每直方图区间的频度的频率以及整个直方图统计频度的频率。
3.根据权利要求1所述的方法,其中基于所述第一样本和所述第二样本确定所述数据库列是否发生分布变化包括:确定与使用统计测试得出存在分布变化的结论关联的置信度水平。
4.根据权利要求3所述的方法,其中所述统计测试基于比较两个时间段中的统计平均值和类似地两个时间段中的统计方差。
5.根据权利要求3所述的方法,其中所述统计测试在所述样本被视为相关时是成对t-测试。
6.根据权利要求3所述的方法,其中所述统计测试在所述数据的分布不符合正态分布的假设时是非参数测试、柯尔莫哥洛夫-斯米尔诺夫测试、其他的统计测试或其组合。
7.根据权利要求3所述的方法,其中响应于确定存在分布变化更新关于所述数据库列的数据库统计包括:响应于置信度水平大于预定的置信度水平阈值而更新所述数据库统计。
8.根据权利要求1所述的方法,其中所述第一样本是所述数据库列中的行的至少百分之一。
9.根据权利要求1所述的方法,进一步包括:基于所述数据库统计,执行查询计划优化任务。
10.根据权利要求1所述的方法,其中对所述数据库列的修改的行的子集进行采样以生成第二样本包括:通过将所述第一样本与来自所修改的行的子集的删除和插入进行组合来生成所述第二样本。
11.一种用于增量式地更新统计的系统,包括:
采样引擎,用于对数据库中的数据库列的行进行采样以生成第一样本,并且在生成所述第一样本之后,对所述数据库列的修改的行进行采样以生成第二样本;
确定引擎,用于基于所述第一样本和第二样本确定是否发生分布变化;以及
更新引擎,用于响应于确定存在分布变化,更新关于所述数据库列的唯一条目计数、行计数、直方图区间的频度的频率、整个直方图统计的频度的频率。
12.根据权利要求11所述的系统,进一步包括置信度引擎,用于确定得出存在分布变化的结论的置信度水平。
13.根据权利要求11所述的系统,其中所述置信度引擎进一步使用统计测试确定所述置信度水平。
14.根据权利要求11所述的系统,其中所述统计测试包括:两个样本的t-测试、成对t-测试、非参数测试、柯尔莫哥罗夫-斯米尔诺夫测试、基于两个时间段的统计平均值相互比较的测试、基于两个时间段的统计方差相互比较的测试或其组合。
15.一种用于增量式地更新统计的计算机程序产品,包括:
非瞬态计算机可读存储介质,所述非瞬态计算机可读存储介质包括嵌入到其中的计算机可读程序代码,所述计算机可读程序代码包括程序指令,在所述程序指令被执行时,引起处理器:
对数据库中的数据库列的行进行采样以生成第一样本;
在所述第一样本生成后,对所述数据库列的行的子集进行采样以生成第二样本,所述子集包括删除的行、插入的行以及更新的行;
建立表示所述第一样本和所述第二样本的行的布隆过滤器;
基于所述第一样本和第二样本确定所述子集是否发生分布变化;以及
响应于确定存在分布变化,更新关于所述数据库列的唯一条目计数、行计数、和直方图区间的频度的频率,以及整个直方图统计的频度的频率。
CN201380076186.2A 2013-04-30 2013-04-30 增量式地更新统计 Pending CN105164675A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/038895 WO2014178851A1 (en) 2013-04-30 2013-04-30 Incrementally updating statistics

Publications (1)

Publication Number Publication Date
CN105164675A true CN105164675A (zh) 2015-12-16

Family

ID=51843821

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380076186.2A Pending CN105164675A (zh) 2013-04-30 2013-04-30 增量式地更新统计

Country Status (4)

Country Link
US (1) US10430411B2 (zh)
EP (1) EP2992458A4 (zh)
CN (1) CN105164675A (zh)
WO (1) WO2014178851A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107168977B (zh) * 2016-03-08 2020-07-28 阿里巴巴集团控股有限公司 一种数据查询的优化方法及装置

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10366068B2 (en) 2014-12-18 2019-07-30 International Business Machines Corporation Optimization of metadata via lossy compression
US9892160B2 (en) 2015-04-07 2018-02-13 International Business Machines Corporation Database statistics based on transaction state
WO2016175788A1 (en) * 2015-04-29 2016-11-03 Hewlett Packard Enterprise Development Lp Incrementally updating a database statistic
US10120664B2 (en) * 2015-08-28 2018-11-06 International Business Machines Corporation Incremental build generation
US10725994B2 (en) * 2016-04-08 2020-07-28 International Business Machines Corporation Automatically revising synopsis table structure
US10649991B2 (en) * 2016-04-26 2020-05-12 International Business Machines Corporation Pruning of columns in synopsis tables
US10664464B2 (en) 2016-10-17 2020-05-26 International Business Machines Corporation Self-maintaining effective value range synopsis in presence of deletes in analytical databases
US10860680B1 (en) 2017-02-07 2020-12-08 Cloud & Stream Gears Llc Dynamic correlation batch calculation for big data using components
US11119730B1 (en) 2018-03-26 2021-09-14 Cloud & Stream Gears Llc Elimination of rounding error accumulation
WO2021087153A1 (en) 2019-10-30 2021-05-06 Boray Data Technology Co. Ltd. Dynamic query optimization
US11347736B2 (en) * 2019-10-30 2022-05-31 Boray Data Technology Co. Ltd. Dynamic query optimization
CN111125222B (zh) * 2019-12-19 2023-05-02 北京顺丰同城科技有限公司 一种数据测试方法及装置
CN111427920B (zh) * 2020-03-16 2023-08-11 深圳市腾讯计算机系统有限公司 数据采集方法、装置、系统、计算机设备及存储介质
US20230229659A1 (en) * 2022-01-20 2023-07-20 Oracle International Corporation Estimating query execution performance using a sampled counter

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030229617A1 (en) * 2002-06-10 2003-12-11 Walid Rjaibi Incremental cardinality estimation for a set of data values
US20070180411A1 (en) * 2006-01-27 2007-08-02 Wolfgang Swegat Method and apparatus for comparing semiconductor-related technical systems characterized by statistical data
US20090192980A1 (en) * 2008-01-30 2009-07-30 International Business Machines Corporation Method for Estimating the Number of Distinct Values in a Partitioned Dataset
US20110055198A1 (en) * 2009-08-31 2011-03-03 Roger Mitchell System and method for optimizing queries
CN102135989A (zh) * 2011-03-09 2011-07-27 北京航空航天大学 一种基于正规化矩阵因式分解的增量协同过滤推荐方法
US20120084287A1 (en) * 2010-09-30 2012-04-05 Choudur Lakshminarayan Estimation of unique database values
CN102483738A (zh) * 2009-07-14 2012-05-30 惠普开发有限公司 确定时间数据中的周期性效应

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6738755B1 (en) 1999-05-19 2004-05-18 International Business Machines Corporation Query optimization method for incrementally estimating the cardinality of a derived relation when statistically correlated predicates are applied
US6529901B1 (en) 1999-06-29 2003-03-04 Microsoft Corporation Automating statistics management for query optimizers
US7890491B1 (en) 1999-12-22 2011-02-15 International Business Machines Corporation Query optimization technique for obtaining improved cardinality estimates using statistics on automatic summary tables
US7177864B2 (en) 2002-05-09 2007-02-13 Gibraltar Analytics, Inc. Method and system for data processing for pattern detection
US7831592B2 (en) * 2004-10-29 2010-11-09 International Business Machines Corporation System and method for updating database statistics according to query feedback
US7739293B2 (en) 2004-11-22 2010-06-15 International Business Machines Corporation Method, system, and program for collecting statistics of data stored in a database
US20070129112A1 (en) 2005-12-01 2007-06-07 Liang-Chern Tarn Methods of Implementing an Operation Interface for Instant Messages on a Portable Communication Device
US7933932B2 (en) 2006-11-14 2011-04-26 Microsoft Corporation Statistics based database population
US7603339B2 (en) * 2006-11-16 2009-10-13 Oracle International Corporation Merging synopses to determine number of distinct values in large databases
US20090083215A1 (en) 2007-09-21 2009-03-26 Louis Burger System, method, and computer-readable medium for automated selection of sampling usage in a database system
US7953755B2 (en) 2008-03-24 2011-05-31 Dataura LLC Semantic relational database
US8392406B1 (en) * 2008-05-30 2013-03-05 Oracle International Corporation Determining a height-balanced histogram incrementally
US8224807B2 (en) 2010-04-12 2012-07-17 Sybase, Inc. Enhanced utilization of query optimization
WO2012042521A2 (en) * 2010-09-27 2012-04-05 Carmel-Haifa University Economic Corporation Ltd Detecting change points in data streams

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030229617A1 (en) * 2002-06-10 2003-12-11 Walid Rjaibi Incremental cardinality estimation for a set of data values
US20070180411A1 (en) * 2006-01-27 2007-08-02 Wolfgang Swegat Method and apparatus for comparing semiconductor-related technical systems characterized by statistical data
US20090192980A1 (en) * 2008-01-30 2009-07-30 International Business Machines Corporation Method for Estimating the Number of Distinct Values in a Partitioned Dataset
CN102483738A (zh) * 2009-07-14 2012-05-30 惠普开发有限公司 确定时间数据中的周期性效应
US20110055198A1 (en) * 2009-08-31 2011-03-03 Roger Mitchell System and method for optimizing queries
US20120084287A1 (en) * 2010-09-30 2012-04-05 Choudur Lakshminarayan Estimation of unique database values
CN102135989A (zh) * 2011-03-09 2011-07-27 北京航空航天大学 一种基于正规化矩阵因式分解的增量协同过滤推荐方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107168977B (zh) * 2016-03-08 2020-07-28 阿里巴巴集团控股有限公司 一种数据查询的优化方法及装置

Also Published As

Publication number Publication date
EP2992458A1 (en) 2016-03-09
EP2992458A4 (en) 2017-02-01
US20160110417A1 (en) 2016-04-21
US10430411B2 (en) 2019-10-01
WO2014178851A1 (en) 2014-11-06

Similar Documents

Publication Publication Date Title
CN105164675A (zh) 增量式地更新统计
Ma et al. Query-based workload forecasting for self-driving database management systems
US10657229B2 (en) Building resilient models to address dynamic customer data use rights
US11734233B2 (en) Method for classifying an unmanaged dataset
Charras-Garrido et al. Extreme value analysis: an introduction
Laio et al. Spatially smooth regional estimation of the flood frequency curve (with uncertainty)
Delgado et al. Conditional stochastic dominance testing
CN108459965B (zh) 一种结合用户反馈和代码依赖的软件可追踪生成方法
Lu et al. Estimating regional species richness: The case of China's vascular plant species
Anas et al. Mean Estimators Using Robust Quantile Regression and L‐Moments’ Characteristics for Complete and Partial Auxiliary Information
Ahani et al. A feature weighting and selection method for improving the homogeneity of regions in regionalization of watersheds
Tarsitano Estimation of the generalized lambda distribution parameters for grouped data
Turczyk et al. A method for file valuation in information lifecycle management
Hadiji et al. Computer science on the move: Inferring migration regularities from the web via compressed label propagation
Landsman et al. Efficient analysis of case‐control studies with sample weights
US20080270479A1 (en) System and Method for Minimization of Calculation Retrieval in a Multidimensional Database
Thijs et al. Improved author profiling through the use of citation classes
US10229149B2 (en) Global filter factor estimation
Wang et al. Stochastic loss reserving using individual information model with over-dispersed Poisson
Wright et al. Discriminatory power of heterogeneity statistics with respect to error of precipitation quantile estimation
Ribeiro et al. Information theoretic approach for accounting classification
Biswas et al. OLS: Is that so useless for regression with categorical data?
Anas et al. Research Article Mean Estimators Using Robust Quantile Regression and L-Moments’ Characteristics for Complete and Partial Auxiliary Information
Shukla et al. A New Imputation Method for Missing Attribute Values in Data Mining.
Morgan Accounting for serial autocorrelation in decline curve analysis of Marcellus shale gas wells

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20161025

Address after: American Texas

Applicant after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP

Address before: American Texas

Applicant before: Hewlett-Packard Development Company, Limited Liability Partnership

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20180611

Address after: American California

Applicant after: Antite Software Co., Ltd.

Address before: American Texas

Applicant before: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP

WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20151216