CN105493085B - 创建数据库表的样本的方法、系统和计算机可读存储介质 - Google Patents

创建数据库表的样本的方法、系统和计算机可读存储介质 Download PDF

Info

Publication number
CN105493085B
CN105493085B CN201480046615.6A CN201480046615A CN105493085B CN 105493085 B CN105493085 B CN 105493085B CN 201480046615 A CN201480046615 A CN 201480046615A CN 105493085 B CN105493085 B CN 105493085B
Authority
CN
China
Prior art keywords
database table
row
value
sample
hash function
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
Application number
CN201480046615.6A
Other languages
English (en)
Other versions
CN105493085A (zh
Inventor
T·L·韦德惠泽恩
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.)
Luo Jiqibuluo Ces Co Ltd
Original Assignee
Luo Jiqibuluo Ces Co Ltd
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 Luo Jiqibuluo Ces Co Ltd filed Critical Luo Jiqibuluo Ces Co Ltd
Publication of CN105493085A publication Critical patent/CN105493085A/zh
Application granted granted Critical
Publication of CN105493085B publication Critical patent/CN105493085B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F16/24545Selectivity estimation or determination
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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
    • 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/24535Query rewriting; Transformation of sub-queries or views

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Operations Research (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

用于查询大小估计的显著性采样包括识别出一数据库表中的两个或更多列,其在一个或多个其他表中具有相应的列。对所识别出的列中的每一列的域应用一个或多个散列函数。对第一列的域应用第一散列函数,并且对第二列的域应用第二散列函数。选择数据库表中的行的子集。所述选择包括选择数据库表中的其中第一散列函数的结果满足第一数值阈值的各行,以及选择数据库表中的其中第二散列函数的结果满足第二数值阈值的各行。创建对应于数据库表的样本数据库表。所述样本数据库表包括数据库表中的行的所选子集。

Description

创建数据库表的样本的方法、系统和计算机可读存储介质
相关申请的交叉引用
本申请要求2013年7月9日提交的美国申请No.61/844045的权益,通过引用的方式将其全部内容合并在此。
背景技术
本发明总体上涉及数据库操作,更具体来说涉及提供用于数据库查询大小估计的样本数据。
数据库管理系统允许用户查询大的信息总集。存在数据库管理系统可以潜在地采用来对给定的查询作出应答的许多执行计划。查询优化是其中数据库管理系统估计若干候选计划的成本并且选择具有最低成本的候选计划的处理。
数据库查询成本估计中的重要步骤是估计常常影响与数据库查询相关联的计划的成本的中间查询结果的大小。数据库系统旨在以相对小的努力准确地估计这些大小,而并不实际执行查询。有若干种技术常被用于估计这样的大小。用于估计查询结果大小的总的一类技术被称作采样。在采样过程中,系统从其中一个或多个参与的表获得样本,并且在样本上实施查询的变型。对样本上的查询结果大小进行适当地缩放,以便估计全部数据集合上的查询的大小。
采样还可以被用于与查询优化分开的其他多种估计任务。举例来说,如果只需要对于查询结果的粗略估计,则对于具有适当大小的样本的处理常常被用来提供准确性与计算时间之间的良好平衡。
发明内容
一些实施例包括一种用于创建数据库表的样本的方法、系统和计算机程序产品。识别出一数据库表中的两个或更多列,其在一个或多个其他表中具有相应的列。所述两个或更多列包括第一列和第二列。对所识别出的列中的每一列的域应用一个或多个散列函数。所述应用包括对第一列的域应用第一散列函数,以及对第二列的域应用第二散列函数。基于应用所述一个或多个散列函数的结果选择数据库表中的行的子集。所述选择包括选择数据库表中的其中第一散列函数的结果满足第一数值阈值的各行,以及选择数据库表中的其中第二散列函数的结果满足第二数值阈值的各行。创建对应于数据库表的样本数据库表。所述样本数据库表包括数据库表中的行的所选子集。
通过本发明的技术将会认识到附加的特征和优点。在这里详细描述了本发明的其他实施例和方面,并且其被视为所要求保护的本发明的一部分。为了更好地理解本发明的优点和特征,应参照后面的描述和附图。
附图说明
在说明书的末尾处特别指出并且在权利要求书中明确地要求保护被视为本发明的主题。通过后面结合附图作出的详细描述,本发明的前述和其他特征和优点将是显而易见的,其中:
图1描绘出通过几何方式示出了如何能够根据一个实施例在二维中进行采样的图表;
图2描绘出通过几何方式示出了如何能够根据一个实施例在三维中进行采样的图表;
图3描绘出根据所提出的采样技术的二维查询的原始和散列空间视图的实例;
图4描绘出根据一个实施例的所采样的数据以及连接样本的结果的一个实例;
图5描绘出根据一个实施例的用于查询大小估计的显著性采样的流程图;以及
图6描绘出根据一个实施例的可以在其上实施用于查询大小估计的显著性采样的系统的方框图。
具体实施方式
本发明总体上涉及数据库操作,更具体来说涉及提供用于数据库查询大小估计的样本数据。一些实施例是针对创建将被使用在查询中的两个或更多表的样本。在一个实施例中,创建样本包括对于查询结果中的一项或多项属性的每一个域选择散列函数。可以通过对于查询中的不等于先前变量或常数的独特变量的数目进行计数来确定查询的维度(即将要连接的列的数目)。可以基于所选择的散列函数和数值阈值对于在查询中所提到的每一个表计算所确定的维度的显著性区段。显著性区段内的那些记录随后可以被包括在查询中所提到的每一个表的样本中。
一些实施例与其中从底层数据集合中选择具有已知大小的随机子集的传统采样不同。传统采样对于某些目的来说是足够的,但是在组合来自多个表的数据时则存在缺点。
采样技术可以采用散列在指定比率下对数据集合进行采样。举例来说,假设数据库包括具有三项属性X、Y和Z的被标示成R(X,Y,Z)的表R。系统选择散列函数H,其把属性X的域映射到比方说1,...,N的范围。设Rs(X,Y,Z)标示R(X,Y,Z)的其中H(X)≤d的子集,其中“d”是处于范围1,...,N内的所选阈值。如果H是将其域均匀地分布在1,...,N之上的散列函数,并且如果H是独立于R(X,Y,Z)中的实际值而选择的,则预期Rs(X,Y,Z)是大小为R(X,Y,Z)的d/N倍的样本。可以通过如前所述的采样以获得对应于|R(X,Y,Z)|的N×|Rs(X,Y,Z)|/d的估计来估计R(X,Y,Z)的大小,其中|R(X,Y,Z)|标示表R中的记录的数目。
在利用等值连接(例如其中将两个表相关的条件是等值条件的连接)组合来自多个表的数据时,基于散列的采样可以具有优于传统采样的优点。举例来说,假设利用阈值d的共同值如前所述地对R(X,Y,Z)和表S(其被标示成S(X)并且具有一项属性X)全部二者进行采样,从而产生样本Rs(X,Y,Z)和Ss(X)。此外,假设属性X在全部两个表中都均匀地分布在较大的域上。于是Rs(X,Y,Z)与Ss(X)的自然连接也将是R(X,Y,Z)与S(X)的自然连接的d/N样本。与此不同,没有确保包括共同的X值的R(X,Y,Z)和S(X)的独立传统样本将导致仅为完全连接的(d/N)2样本的样本连接结果。
为了方便起见,在这里所描述的实施例中,通过定义h(x)=H(x)/N把散列范围映射到区间[0,1],其中N是H的范围的最大值。类似地,阈值d可以被映射到适当的阈值θ=d/N。在这里为了易于描述,选择并且使用区间[0,1]。可以由其他实施例实施其他区间。
为了实现一个实施例中的某些所期望的属性,可以从已知类别的具有高度通用性的散列函数中随机选择散列函数h。可以选择将各个项目均匀地分布在[0,1]上的散列函数h,从而使得随机选择的值x满足h(x)≤θ的概率是θ。此外,在一个实施例中,对于所述域内的不同值x和y考虑所述类别中的所有散列函数h,使得h(x)≤θ并且使得h(y)≤θ的概率彼此独立。
考虑R(X,Y,Z)与S(X)之间的双向连接,其中采样阈值θR和θS分别单独处在列X上。在该例中,θ被定义成θR和θS当中的最小值。此外,Rs(X,Y,Z)和Ss(X)是相应的样本。Rs和Ss的连接的大小可以被估计成R和S的连接的大小乘以θ。在关于前面所提到的散列函数的假设之下,可以通过数学方式表明,在所有散列函数上经过平均之后,随着连接结果的大小增大,该估计的相对误差朝向零减小。
虽然之前已经描述过基于散列的采样技术的一些变型(例如参见Hadjieleftheriou等人的“Hashed Samples:Selectivity Estimators for SetSimilarity Selection Queries(散列样本:用于集合相似性选择查询的选择性估计器)”,Very Large Data Bases(VLDB)2008年;Estan等人的“End-biased Samples for JoinCardinality Estimation(用于连接基数估计的末端偏置的样本)”,InternationalConference on Data Engineering,2006年4月),这些采样技术描述了一次对一项属性进行采样(例如一维中的采样)。当前的技术没有处理也没有考虑到这里所描述的多项同时属性上的基于散列的采样方案。本发明的实施例把基于散列的采样扩展到多维,并且提供了在给出每一个参与的表的样本的情况下估计复杂连接表达法的大小的方法。
现在参照一个实例,初始地假设所有属性共享共同的域。在这种情况下,可以利用共同的散列函数h对每一项属性进行散列。出于采样的目的,每一个表R与阈值θR相关联。如果其一项或多项属性相对于阈值满足散列采样条件,则来自一个表的记录随后被包括在其中。举例来说,如果h(a)≤θR或者h(b)≤θR或者h(c)≤θR,则R(X,Y,Z)中的记录(a,b,c)将被包括。换句话说,如果min(h(a),h(b),h(c))≤θR,则R(X,Y,Z)中的(a,b,c)被采样。在该例中,在三维中实施基于散列的采样(也就是说其具有三个维度)。
现在参照图1,其中总体上示出了通过几何方式描绘出如何能够根据一个实施例在二维中进行采样的曲线图。如图1中所描绘的那样,对于表(或连接表达法)中的每一项属性存在一个维度。在该例中,被标示成T(X,Y)的表包括两项属性X和Y。被采样条件所覆盖的多维空间的区段在这里被称作“显著性区段”或者被简单地称作“显著性”。图1中示出的显著性102的容量“v”可以通过v给出,其中v=1-(1-θ)k,其中k是维数。在一个实施例中,当阈值θ足够小时,v可以被近似成kθ。图1中示出的显著性102代表其中X的散列值“h(x)”或者Y的散列值“h(y)”小于或等于阈值θ的区域。
现在参照图2,其中总体上示出了通过几何方式描绘出如何能够根据一个实施例在三维中进行采样的曲线图。如图2中所描绘的那样,对于表(或连接表达法)中的每一项属性存在一个维度。在该例中,被标示成T(X,Y,Z)的表包括三项属性X、Y和Z。正如前面所描述的那样,图2中示出的显著性202的容量“v”可以通过v给出,其中v=1-(1-θ)k,其中k是维数。在一个实施例中,当阈值θ足够小时,v可以被近似成kθ。图2中示出的显著性202代表其中X的散列值“h(x)”或者Y的散列值“h(y)”或者Z的散列值“h(z)”小于或等于阈值θ的体积的并集。
k维样本Rs和Ss的连接的大小可以被估计成R和S的连接的大小乘以v=1-(1-θ)k,其中k是维数。当连接中的其中一个参与的表具有低于作为整体的表达法的维度时,一个实施例可以调节显著性区段,从而使其可以被适当地定义在更高维的空间上。举例来说,再一次考虑R(X,Y,Z)和S(X)的连接,其中现在在X、Y和Z上实施三维采样。假设利用如图2中所示的三维散列采样方法获得R的样本Rs(X,Y,Z),并且利用一维散列采样方法获得S的样本Ss(X)。假设全部两种方法都使用共同的阈值θ。随后,在Rs(X,Y,Z)和Ss(X)的连接中,来自表S的所有记录都将满足h(X)≤θ。这是对应于R(X,Y,Z)和S(X)的连接的显著性区段的本征子空间(proper subspace)。两个样本的连接将仅具有完全连接的分数θ的大小,而不是完全连接的分数v。因此,所述样本的连接不具有将与表R与S之间的完全连接的样本完全匹配的三维分布。举例来说,完全连接的三维样本将包括具有不满足采样阈值的X值的一些行,而样本的连接则将不会包括这些行。
为了补救这一问题,所提出的技术的实施例可以利用来自对应于不存在的属性的域的值来填充较低维的表。举例来说,假设D(Y)可以被写成意味着Y可以是来自属性Y的域D的任何值,并且D(Z)可以是来自属性Z的域D的任何值。在概念上,样本Ss现在可以在三维中被定义成交叉乘积S(X)×D(Y)×D(Z)的基于散列的样本。在实践中,没有必要完全具体化Ss,这是因为只有X范围的散列到最多θ的值的部分将被显式存储。其余的分量可以通过符号方式来表示。当Rs和新的Ss被连接时,Ss的符号分量(在变量Y和Z上声明h(y)≤θ或者h(z)≤θ)被翻译成关于Rs中的这些属性的选择。
当利用不同的阈值θi对参与在连接中的各个表进行了采样时,这些阈值当中的最小值定义对应于所述连接的样本的阈值。
现在参照图3,其中总体上根据所提出的采样技术示出了包括多于一项连接的复合连接表达法的结果。图3描绘出根据一个实施例的查询的原始和散列空间视图的实例,该实施例在二维中考虑三个表A(X,Y)、B(X)和C(Y)的自然连接。曲线图302在二维(x,y)坐标中示出了输入表。三个表当中的每一个被偏斜:B和C都从该域取得更高数值,表A则具有其中(x,y)值集中在大致具有圆环图形状的集群中的分布。图3中的曲线图304示出了该数据集合上的完全连接的结果。图3中的曲线图306和308示出了包括(h(x),h(y))坐标的散列变换空间中的输入和查询结果。该变换的效果是使得数据看起来比其最初的情况更加均匀。显著性区段包括所述空间的左侧和底部切片。
现在参照图4,其中总体上示出了根据一个实施例的所采样的数据的一个实施例。图4中示出的所采样的数据基于图3中的曲线图302和304。曲线图402描绘出所采样的数据,曲线图404描绘出利用这里所描述的基于散列的采样技术的一个实施例的原始(x,y)坐标中的所采样的数据的连接。如图4中所示,对于该数据集合,所采样的数据的连接代表图3的曲线图304中示出的完全连接。
现在参照图5,其中总体上示出了根据一个实施例的用于查询大小估计的显著性采样的流程图。在方框502处,基于查询表达法识别出将要采样的表,并且在方框504处,如查询表达法中所指定的那样识别出各个表中的可以被连接的列。为了清楚起见,使用了基于逻辑的语言来编写查询,其中不同的表中的列在其被连接时共享共同的变量名称。然而也可以替换地使用例如SQL之类的其他语言,并且对于可连接的列并不要求其具有共同的属性名称。在方框506处,对每一个表中的所识别出的列中的数据值应用散列函数。在一个实施例中,对于每一种域类型存在一个散列函数。可以利用本领域内已知的任何散列函数,但是通用的散列函数族可能是优选的。
在方框508处,选择具有特定散列值的列值。正如前面所描述的那样,这可以基于某一阈值数字,并且在一个实施例中,把全部所选列值或者其一个子集与相同的阈值数字进行比较。
在方框510处,识别出与所选列值相关联的行,以便生成将被用于采样的样本表。在表的维度低于作为整体的查询的维度的情况下,利用额外的列通过符号方式填充该表以匹配总体维度。在方框512处,对各个样本表应用连接或其他查询以生成连接的样本。
实施例不限于基于固定维度的显著性区段来实施用于采样的样本表。对于维数不存在上限,并且可以通过实施例来实施基于任何维数的显著性区段。
在一个实施例中,通过把样本的连接结果缩放因数1/v来估计完全连接的大小,其中v是显著性区段的容量。在某些情况下,这一规程可以给出其误差界限可以被量化的估计。
考虑这样一个数据库,其中没有记录在多于一项属性中包含相同的值。此外还假设没有单个值x出现在多于|Q|β条记录中,其中β是处于0到1之间的数字,Q是等值连接查询,并且|Q|是完全连接中的记录的数目。在这样的条件下,下面的定理成立:只要样本的连接中的记录的预期数目至少与|Q|(β+1)/2成比例,则在所有散列函数上经过平均之后,随着数据库大小增大,1/v近似的相对误差减小到零。
前面的定理的前提暗示了需要特别关注的特殊情况,也就是出现在一行的多项属性中的那些值以及非常频繁地出现在数据库中的那些值。为了解决这些情况,所提出的方法的一个实施例可以把采样问题分解成对应于原始采样空间的不相交子空间的几个子采样问题。为了应对其中大量记录在多于一列中包含相同值的数据库,所提出的方法的一个实施例可以把采样问题划分到其中不存在共同列值的子集以及其中存在共同列值的各个子集中。各个子集是不相交的,因此可以通过取得对应于每一个子集的估计的总和来估计总体基数。例如考虑三属性查询Q(X,Y,Z)。Q可以被表达成Q1∪Q2∪Q3∪Q4∪Q5,其中Q1=σ(X=Y=Z)Q,Q2=σ(X=Y≠z)Q,Q3=σ(X=Z≠Y)Q,Q4=σ(z=Y≠X)Q,并且Q5=σ(X≠Z,Y≠Z,X≠Y)Q。针对|Q|的估计可以是各项估计的总和|Q1|+|Q2|+|Q3|+|Q4|+|Q5|。|Q5|可以被如前所述地估计,这是因为不存在共同的列值。对于Q1,由于所有列都是相等的,因此该表实际上是一维的而不是三维的。在几何方面,其对应于Q的(X,Y,Z)立方体的对角线。由于这一较小的维度,|Q1|可以被如前所述地估计,但是利用k=1而不是k=3。按照类似的方式,|Q2|、|Q3|和|Q4|当中的每一项可以利用k=2来估计,这是因为其对应于原始空间的二维子集。
作为一项试探性优化,通过避免不太可能对估计有贡献的情况有可能使得采样工作更少。举例来说,假设在Q中,属性X是雇员id,并且属性Y是X的管理者的雇员id。除了公司的首席执行官CEO(其是自身的管理者)之外,X在Q中将绝不会等于Y。因此,在估计前面的|Q|时,合理的是忽略|Q1|和|Q2|。这仅仅是一项试探性优化,这是因为可以构造其中包括|Q1|和|Q2|很重要的实例,比如当针对Q的仅有的回答具有作为公司的CE0的标识的X时。
当单个值w出现在所有记录当中的一大部分中时,估计的质量可能较差。或者h(w)处在显著性区段中,在这种情况下查询估计可能是对于真实查询大小的过高估计,或者h(w)不处在显著性区段中,在这种情况下查询估计可能是对于真实查询大小的过低估计。为了应对具有高度共同性的值,一个实施例可以应用子采样方法。假设对于前面的查询Q,w是出现在一大部分记录中的用于Z的值。举例来说,Z可以是雇员的医疗计划,并且50%的雇员可能加入了w所代表的最为普及的计划。于是Q可以被如下表达:T1UT2,其中T1=σ(w=Z)Q并且T2=σ(w≠Z)Q。针对|Q|的估计是各项估计的总和|T1|+|T2|。遵循前面的子采样方法,将利用k=2来估计|T1|,并且将利用k=3来估计|T2|。如果存在多个共同的值,正如对于具有数目非常少的选项的属性常常可能会发生的那样,则所提出的方法的一个实施例将是利用对应于每一个共同值的单独的情况对查询进行子采样。当来自查询的属性来自多于一个域时,每一个域D可以具有其自身的散列函数hD。显著性区段的定义与前面一样,不同之处在于每一项属性利用其域的散列函数被散列。
本发明的技术效果和益处包括创建可以更加准确地预测查询成本估计以及基于所采样的数据的其他数据库估计的样本数据的能力。
在一些实施例中,一种或多种方法被具体实现在用于能够访问一种或多种类型的存储器的一个或多个处理器的指令集中。所述指令可以被编码在硬件或软件中。可以使用许多种类的平台,其中包括而不限于:计算机、移动电话、平板设备、游戏主机、网络管理设备、现场可编程门阵列以及基于云端的计算机系统。本公开内容的各个方面可以被部署在多个设备上以用于并行操作。一些实施例可以被用作例如数据库管理系统之类的更大系统的组成部分。
参照图6,其中总体上示出了根据一个实施例的用于查询大小估计的显著性采样的示例性系统600的方框图。系统600包括由位于主机系统604上的一个或多个计算机程序执行的用于实施显著性采样查询大小估计的采样算法610。在一个实施例中,算法610的全部或一部分是执行在主机系统604上的数据库管理系统的一部分。在另一个实施例中,算法610的全部或一部分是支持事务和查询两者的系统的组成部分。
图6中所描绘的系统600包括一个或多个用户系统602,处在一个或多个地理位置处的用户(例如末端用户、数据库管理员)能够借以联系主机系统604以便发起执行数据库查询和/或事务的程序。用户系统602通过网络606耦合到主机系统604。每一个用户系统602可以利用执行用于实施这里所描述的处理的计算机程序的通用计算机来实施。用户系统602可以是个人计算机(例如膝上型计算机、平板计算机、蜂窝电话)或主机附属终端。如果用户系统602是个人计算机,则这里所描述的处理可以由用户系统602和主机系统604共享。用户系统602还可以包括游戏主机、网络管理设备以及现场可编程门阵列。此外,多个用户系统602和/或主机系统604可以并行操作来实施显著性采样。
网络606可以是任何类型的已知网络,其中包括而不限于广域网(WAN)、局域网(LAN)、全球网络(例如因特网)、虚拟私有网络(VPN)、云端网络以及内联网。网络606可以利用无线网络或者本领域内已知的任何种类的物理网络实现方式来实施。用户系统602可以通过多个网络(例如蜂窝网络和互联网)耦合到主机系统,从而使得所有用户系统602不会都通过相同的网络耦合到主机系统604。其中一个或多个用户系统602和主机系统604可以通过无线方式连接到网络606。在一个实施例中,所述网络是因特网,并且一个或多个用户系统602执行用户接口应用(例如web浏览器)以便通过网络606联系主机系统604。在另一个示例性实施例中,用户系统602直接连接到主机系统604(也就是不通过网络606)。在另一个实施例中,主机系统604直接连接到或者包含存储设备608。
存储设备608包括与用于查询大小估计的显著性采样有关的数据,并且可以利用多种用于存储电子信息的设备来实施。在一个实施例中,存储在存储设备608中的数据包括而不限于一个或多个数据库、数据库表、索引以及由这里所描述的实施例利用的其他数据。应当理解的是,存储设备608可以利用包含在主机系统604中的存储器来实施,或者其可以是单独的物理设备。存储设备608可以是逻辑可寻址的,以作为跨越包括网络606的分布式环境的统一数据来源。可以通过主机系统604和/或通过用户系统602取回和操纵存储在存储设备608中的信息。
图6中描绘的主机系统604可以利用一个或多个服务器来实施,所述服务器响应于存储在可由服务器访问的存储介质中的计算机程序来操作。主机系统604可以作为网络服务器(例如web服务器)操作,以便与用户系统602进行通信。主机系统604应对向/从用户系统602发送/接收信息,并且可以实施相关联的任务。主机系统604还可以包括防火墙以便防止对于主机系统604的未经授权的访问,并且关于经过授权的访问施行任何限制。举例来说,管理员可以访问整个系统,并且具有修改系统的某些部分的权限。防火墙可以利用传统的硬件和/或软件来实施,正如本领域内已知的那样。
主机系统604还可以作为应用服务器操作。主机系统604执行包括算法610在内的一个或多个计算机程序,以便提供这里所描述的实施例的各个方面。可以通过向用户系统602提供应用由用户系统602和主机系统604共享处理。或者,用户系统602可以包括用于实施这里所描述的处理的一部分或全部的独立软件应用。正如前面所描述的那样,应当理解的是,可以利用分开的服务器来实施网络服务器功能和应用服务器功能。或者,可以通过执行用以实施必要功能的计算机程序的单个服务器来实施网络服务器、防火墙和应用服务器。
本领域技术人员将认识到,本发明的各个方面可以被具体实现为系统、方法或计算机程序产品。相应地,本发明的各个方面可以采取完全硬件实施例、完全软件实施例(其包括固件、驻留软件、微代码等等)或者组合可以在这里全部被统称作“电路”、“模块”或“系统”的软件和硬件方面的实施例的形式。此外,本发明的各个方面可以采取具体实现在一个或多个计算机可读介质中的计算机程序产品的形式,所述计算机可读介质在其上具体实现计算机可读程序代码。
可以利用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是(而不限于)电子、磁性、光学、电磁、红外或半导体系统、装置或设备,或者前述各项的任何适当的组合。计算机可读存储介质的更多具体实例(非穷尽列表)将包括以下各项:具有一条或更多条连线的电连接,便携式计算机软盘,硬盘,随机存取存储器(RAM),只读存储器(ROM),可擦写可编程只读存储器(EPROM或闪存),光纤,便携式紧致盘只读存储器(CD-ROM),光学存储设备,磁性存储设备,或者前述各项的任何适当的组合。在本文献的上下文中,计算机可读存储介质可以是任何有形介质,其可以包含或存储程序以供指令执行系统、装置或设备使用或者与之相结合地使用。
计算机可读信号介质可以包括基带中的或者作为载波的一部分的传播数据信号,其中具体实现有计算机可读程序代码。这样的传播信号可以采取多种形式当中的任一种,其中包括而不限于电磁、光学或者其任何适当的组合。计算机可读信号介质可以是并非计算机可读存储介质的任何计算机可读介质,并且可以传送、传播或传输程序以供指令执行系统、装置或设备使用或者与之相结合地使用。
具体实现在计算机可读介质上的程序代码可以利用任何适当的介质来传送,其中包括而不限于无线、有线、光纤线缆、RF等等或者前述各项的任何适当的组合。
用于实施对应于本发明的各个方面的操作的计算机程序代码可以通过一种或多种编程语言的任意组合来编写,其中包括面向对象的编程语言,比如Java、Smalltalk、C++等等,以及传统的过程性编程语言,比如“C”编程语言或者类似的编程语言。程序代码可以完全在用户的计算机上执行,部分地在用户的计算机上执行,作为独立软件包装执行,部分地在用户的计算机上执行并且部分地在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后面的情形中,远程计算机可以通过任何类型的网络连接到用户的计算机,其中包括局域网(LAN)或广域网(WAN),或者可以实施去到外部计算机的连接(例如使用互联网服务提供商通过因特网来实施)。
前面参照根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图和/或方框图描述了本发明的实施例的各个方面。应当理解的是,流程图和/或方框图的每一个方框以及流程图和/或方框图中的方框组合可以通过计算机程序指令来实施。这些计算机程序指令可以被提供到通用计算机、专用计算机或者其他可编程数据处理装置的处理器从而产生机器,从而使得通过所述计算机或其他可编程数据处理装置的处理器执行的指令产生用于实施在流程图和/或一个或多个方框图方框中规定的功能/动作的部件。
这些计算机程序指令还可以被存储在计算机可读介质中,其可以指导计算机、其他可编程数据处理装置或者其他设备按照特定方式运作,从而使得存储在计算机可读介质中的指令产生包括实施在流程图和/或一个或多个方框图方框中规定的功能/动作的指令的制造产品。
所述计算机程序指令还可以被加载到计算机、其他可编程数据处理装置或者其他设备上,以使得在所述计算机、其他可编程装置或其他设备上实施一系列操作步骤,从而产生计算机实施的处理,从而使得在所述计算机或其他可编程装置上执行的指令提供用于实施在流程图和/或一个或多个方框图方框中规定的功能/动作的处理。
附图中的流程图和/或方框图示出了根据本发明的各个实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。在这方面,流程图或方框图中的每一个方框可以代表代码的一个模块、节段或部分,其包括用于实施所规定的(多项)逻辑功能的一条或更多条可执行指令。还应当提到的是,在一些替换实现方式中,在所述方框中提到的功能可以按照不同于附图中所提到的顺序发生。举例来说,取决于所涉及的功能,相继示出的两个方框可以实际上被基本上同时执行,或者所述方框有时可以按照相反的顺序被执行。还应当提到的是,方框图和/或流程图中的每一个方框以及方框图和/或流程图中的方框组合可以通过实施所规定的功能或动作的基于专用硬件的系统或者专用硬件与计算机指令的组合来实施。
这里所描述的术语仅仅是用于描述特定实施例的目的,而不意图限制本发明。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”也意图包括复数形式。还应当理解的是,在本说明书中使用的术语“包括”表明所陈述的特征、整数、步骤、操作、元件和/或组件的存在,而不排除存在或添加一项或多项其他特征、整数、步骤、操作、元件、组件和/或其组合。
所附权利要求书中的所有部件或者步骤加功能元件的相应结构、材料、动作和等效方案意图包括用于与具体要求保护的其他所要求保护的元素相组合来实施所述功能的任何结构、材料或动作。本发明的描述是出于说明和描述的目的而给出的,而不意图是穷举性的或者被限制到所公开的本发明的形式。在不背离本发明的范围和精神的情况下,本领域技术人员将会想到许多修改和变型。所选择和描述的实施例是为了最佳地解释本发明的原理和实际应用,并且使得本领域其他技术人员能够理解适合于所设想的特定用途的具有各种修改的本发明的各个实施例。
这里所描绘的任何流程图仅仅示出了一个实例。在不背离本发明的精神的情况下,对于这里所描述的该图或步骤(或操作)可以有许多变型。举例来说,各个步骤可以按照不同的顺序来实施,或者可以添加、删除或修改步骤。所有这些变型都被视为所要求保护的本发明的一部分。
虽然前面描述了本发明的优选实施例,但是应当理解的是,现在或者未来的本领域技术人员可以作出落在所附权利要求书的范围内的各种改进和增强。这些权利要求应当被解释成保持对于最初描述的本发明的适当保护。

Claims (20)

1.一种创建数据库表的样本的方法,所述方法包括:
识别第一数据库表中的第一列和第二列,第一列和第二列均在一个或多个其他数据库表中具有相应的列;
对第一列和第二列中的值应用一个或多个散列函数,所述应用包括对第一列的值应用第一散列函数,以及对第二列的值应用第二散列函数;
在第一数据库表中选择其中第一散列函数的结果满足第一数值阈值或其中第二散列函数的结果满足第二数值阈值的行的子集;以及
创建与第一数据库表和所述一个或多个其他数据库表的所述行的子集的连接操作的结果对应的样本数据库表。
2.根据权利要求1所述的方法,还包括针对样本数据库表执行查询。
3.根据权利要求1所述的方法,其中,第一散列函数不同于第二散列函数。
4.根据权利要求1所述的方法,其中,第一散列函数与第二散列函数相同。
5.根据权利要求1所述的方法,其中,第一数值阈值不同于第二数值阈值。
6.根据权利要求1所述的方法,其中,第一数值阈值与第二数值阈值相同。
7.根据权利要求1所述的方法,其中,所述一个或多个其他数据库表之一以及所述第一列和第二列在数据库查询中被提到,并且对于在数据库查询中所连接的所有数据库表和列实施所述识别、应用、选择以及创建。
8.根据权利要求7所述的方法,其中,所述方法还包括在样本数据库表上计算数据库查询。
9.根据权利要求8所述的方法,还包括通过按因子1/v在样本数据库表上缩放所述数据库查询的基数来在第一数据库表上估计所述数据库查询的基数,其中v是第一数据库表的所选择的行的子集相对于第一数据库表的容量。
10.根据权利要求7所述的方法,还包括:
将数据库查询表达成两项或更多项子查询的不相交并集;以及
对于每一项子查询实施以下操作:
在样本数据库表上计算所述子查询;以及
将数据库查询的基数估计成样本数据库表上的所述子查询的基数除以行的所选子集的容量;以及
把所得到的各项估计相加。
11.一种用于创建数据库表的样本的系统,所述系统包括:
具有计算机可读指令的存储器;以及
用于执行计算机可读指令以实施包括以下操作的方法的处理器:
识别第一数据库表中的第一列和第二列,第一列和第二列均在一个或多个其他数据库表中具有相应的列;
对第一列和第二列中的值应用一个或多个散列函数,所述应用包括对第一列的值应用第一散列函数,以及对第二列的值应用第二散列函数;
在第一数据库表中选择其中第一散列函数的结果满足第一数值阈值或其中第二散列函数的结果满足第二数值阈值的行的子集;以及
创建与第一数据库表和一个或多个其他数据库表的所述行的子集的连接操作的结果对应的样本数据库表。
12.根据权利要求11所述的系统,还包括针对样本数据库表执行查询。
13.根据权利要求11所述的系统,其中,以下各项当中的至少一项是成立的:
第一散列函数不同于第二散列函数;以及
第一数值阈值不同于第二数值阈值。
14.根据权利要求11所述的系统,其中,以下各项当中的至少一项是成立的:
第一散列函数与第二散列函数相同;以及
第一数值阈值与第二数值阈值相同。
15.根据权利要求11所述的系统,其中,所述一个或多个其他数据库表以及所述第一列和第二列在数据库查询中被提到,并且对于在数据库查询中所提到的所有数据库表和列实施所述识别、应用、选择以及创建。
16.根据权利要求15所述的系统,其中,所述方法还包括在样本数据库表上计算数据库查询。
17.根据权利要求16所述的系统,其中,所述方法还包括通过按因子1/v在样本数据库表上缩放所述数据库查询的基数来在第一数据库表上估计所述数据库查询的基数,其中v是第一数据库表的所选择的行的子集相对于第一数据库表的容量。
18.根据权利要求15所述的系统,其中,所述方法还包括:
把数据库查询表达成两项或更多项子查询的不相交并集;以及
对于每一项子查询实施以下操作:
在样本数据库表上计算所述子查询;以及
将数据库查询的基数估计成样本数据库表上的所述子查询的基数除以行的所选子集的容量;以及
把所得到的各项估计相加。
19.一种计算机可读存储介质,该计算机可读存储介质上包含计算机可读程序代码,所述计算机可读程序代码在由计算机处理器执行时使得计算机处理器实施一种方法,所述方法包括:
识别第一数据库表中的第一列和第二列,第一列和第二列均在一个或多个其他数据库表中具有相应的列;
对第一列和第二列中的值应用一个或多个散列函数,所述应用包括对第一列的值应用第一散列函数,以及对第二列的值应用第二散列函数;
在第一数据库表中选择其中第一散列函数的结果满足第一数值阈值或其中第二散列函数的结果满足第二数值阈值的行的子集;以及
创建与第一数据库表和所述一个或多个其他数据库表的所述行的子集的连接操作的结果对应的样本数据库表。
20.根据权利要求19所述的计算机可读存储介质,其中,所述方法还包括针对样本数据库表执行查询。
CN201480046615.6A 2013-07-09 2014-06-26 创建数据库表的样本的方法、系统和计算机可读存储介质 Active CN105493085B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361844045P 2013-07-09 2013-07-09
US61/844,045 2013-07-09
PCT/US2014/044271 WO2015006061A1 (en) 2013-07-09 2014-06-26 Salient sampling for query size estimation

Publications (2)

Publication Number Publication Date
CN105493085A CN105493085A (zh) 2016-04-13
CN105493085B true CN105493085B (zh) 2019-06-18

Family

ID=52277985

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480046615.6A Active CN105493085B (zh) 2013-07-09 2014-06-26 创建数据库表的样本的方法、系统和计算机可读存储介质

Country Status (8)

Country Link
US (2) US9779137B2 (zh)
EP (1) EP3019985A4 (zh)
JP (2) JP6392340B2 (zh)
KR (1) KR20160029122A (zh)
CN (1) CN105493085B (zh)
CA (1) CA2917812A1 (zh)
IL (1) IL243493B (zh)
WO (1) WO2015006061A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9588978B2 (en) 2013-09-30 2017-03-07 International Business Machines Corporation Merging metadata for database storage regions based on overlapping range values
US9519687B2 (en) 2014-06-16 2016-12-13 International Business Machines Corporation Minimizing index maintenance costs for database storage regions using hybrid zone maps and indices
US10042887B2 (en) * 2014-12-05 2018-08-07 International Business Machines Corporation Query optimization with zone map selectivity modeling
US10353897B2 (en) * 2015-06-29 2019-07-16 Oracle International Corporation One-pass join size estimation with correlated sampling
US10320745B2 (en) * 2015-08-05 2019-06-11 Samsung Electronics Co., Ltd. Apparatus and method for transparent, secure element-based mediation of on-board diagnostic operations
US10685066B2 (en) * 2015-12-31 2020-06-16 Oath Inc. On-line content sampling
US20190057097A1 (en) * 2016-02-05 2019-02-21 Nec Solution Innovators, Ltd. Information processing device, information processing method, and computer-readable recording medium
US10225273B2 (en) * 2017-01-27 2019-03-05 International Business Machines Corporation Secured event monitoring leveraging blockchain
US20180329951A1 (en) * 2017-05-11 2018-11-15 Futurewei Technologies, Inc. Estimating the number of samples satisfying the query
CN115292362A (zh) * 2022-07-07 2022-11-04 深圳计算科学研究院 一种基于二维空间的数据查询方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1701316A (zh) * 2003-07-28 2005-11-23 索尼株式会社 信息处理设备和方法、记录媒体和程序
US7188334B1 (en) * 2001-11-20 2007-03-06 Ncr Corp. Value-ordered primary index and row hash match scan
CN102521364A (zh) * 2011-12-15 2012-06-27 北京大学 一种图上两点间最短路径查询方法

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5890150A (en) 1997-01-24 1999-03-30 Hitachi, Ltd. Random sampling method for use in a database processing system and a database processing system based thereon
US6226629B1 (en) 1997-02-28 2001-05-01 Compaq Computer Corporation Method and apparatus determining and using hash functions and hash values
CA2266990A1 (en) * 1998-05-20 1999-11-20 Lucent Technologies, Inc. System and techniques for fast approximate query answering
US7120624B2 (en) * 2001-05-21 2006-10-10 Microsoft Corporation Optimization based method for estimating the results of aggregate queries
US8140568B2 (en) 2001-12-13 2012-03-20 International Business Machines Corporation Estimation and use of access plan statistics
US7136850B2 (en) 2002-12-20 2006-11-14 International Business Machines Corporation Self tuning database retrieval optimization using regression functions
US7249120B2 (en) 2003-06-27 2007-07-24 Microsoft Corporation Method and apparatus for selecting candidate statistics to estimate the selectivity value of the conditional selectivity expression in optimize queries based on a set of predicates that each reference a set of relational database tables
US7805411B2 (en) 2003-09-06 2010-09-28 Oracle International Corporation Auto-tuning SQL statements
US7636707B2 (en) 2004-04-06 2009-12-22 Microsoft Corporation Query selectivity estimation with confidence interval
US20060074875A1 (en) 2004-09-30 2006-04-06 International Business Machines Corporation Method and apparatus for predicting relative selectivity of database query conditions using respective cardinalities associated with different subsets of database records
US7483873B2 (en) 2005-01-18 2009-01-27 International Business Machines Corporation Method, system and article of manufacture for improving execution efficiency of a database workload
US20070156736A1 (en) 2006-01-05 2007-07-05 International Business Machines Corporation Method and apparatus for automatically detecting a latent referential integrity relationship between different tables of a database
US7707207B2 (en) 2006-02-17 2010-04-27 Microsoft Corporation Robust cardinality and cost estimation for skyline operator
US20080086444A1 (en) 2006-10-09 2008-04-10 International Business Machines Corporation System and method for improving cardinality estimation in a relational database management system
US7877374B2 (en) 2006-12-01 2011-01-25 Microsoft Corporation Statistics adjustment to improve query execution plans
US7593931B2 (en) 2007-01-12 2009-09-22 International Business Machines Corporation Apparatus, system, and method for performing fast approximate computation of statistics on query expressions
US20080306903A1 (en) 2007-06-08 2008-12-11 Microsoft Corporation Cardinality estimation in database systems using sample views
US7945558B2 (en) 2008-01-09 2011-05-17 Hewlett-Packard Development Company, L.P. Query optimizer with join cardinality estimation which mitigates the effects of skew
WO2010033877A1 (en) * 2008-09-19 2010-03-25 Oracle International Corporation Storage-side storage request management
US7668804B1 (en) 2008-11-04 2010-02-23 International Business Machines Corporation Recommending statistical views using cost/benefit metrics
US8898142B2 (en) 2009-01-29 2014-11-25 Hewlett-Packard Development Company, L.P. Risk-premium-based database-query optimization
US8185519B2 (en) 2009-03-14 2012-05-22 Microsoft Corporation Techniques for exact cardinality query optimization
US8285709B2 (en) 2009-05-12 2012-10-09 Teradata Us, Inc. High-concurrency query operator and method
US8914354B2 (en) * 2009-07-28 2014-12-16 Teradata Us, Inc. Cardinality and selectivity estimation using a single table join index
JP5276639B2 (ja) * 2010-10-01 2013-08-28 日本電信電話株式会社 分散データベース管理装置および分散データベース管理プログラム
US10380269B2 (en) * 2011-06-07 2019-08-13 Entit Software Llc Sideways information passing
US8856085B2 (en) 2011-07-19 2014-10-07 International Business Machines Corporation Automatic consistent sampling for data analysis
US9406027B2 (en) * 2011-12-05 2016-08-02 Teradata Us, Inc. Making predictions regarding evaluation of functions for a database environment
US8874548B2 (en) 2012-02-27 2014-10-28 Nec Laboratories America, Inc. Predicting query execution time
US9563658B2 (en) * 2012-08-20 2017-02-07 Oracle International Corporation Hardware implementation of the aggregation/group by operation: hash-table method
US9311359B2 (en) * 2013-01-30 2016-04-12 International Business Machines Corporation Join operation partitioning
US9953054B2 (en) * 2013-04-22 2018-04-24 Salesforce.Com, Inc. Systems and methods for implementing and maintaining sampled tables in a database system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7188334B1 (en) * 2001-11-20 2007-03-06 Ncr Corp. Value-ordered primary index and row hash match scan
CN1701316A (zh) * 2003-07-28 2005-11-23 索尼株式会社 信息处理设备和方法、记录媒体和程序
CN102521364A (zh) * 2011-12-15 2012-06-27 北京大学 一种图上两点间最短路径查询方法

Also Published As

Publication number Publication date
CA2917812A1 (en) 2015-01-15
US20150019529A1 (en) 2015-01-15
JP2018185848A (ja) 2018-11-22
EP3019985A1 (en) 2016-05-18
WO2015006061A1 (en) 2015-01-15
KR20160029122A (ko) 2016-03-14
US20180025056A1 (en) 2018-01-25
IL243493B (en) 2018-11-29
CN105493085A (zh) 2016-04-13
US9779137B2 (en) 2017-10-03
EP3019985A4 (en) 2016-12-07
JP2016532938A (ja) 2016-10-20
JP6392340B2 (ja) 2018-09-19
US10719513B2 (en) 2020-07-21

Similar Documents

Publication Publication Date Title
CN105493085B (zh) 创建数据库表的样本的方法、系统和计算机可读存储介质
US11238065B1 (en) Systems and methods for generating and implementing knowledge graphs for knowledge representation and analysis
US10922329B2 (en) Systems and methods for interest-driven business intelligence systems including geo-spatial data
WO2018120424A1 (zh) 基于位置服务的人群分类方法、装置、设备和存储介质
CN104281701B (zh) 分布式多尺度空间数据查询方法及系统
US20140164362A1 (en) Systems and Methods for Data Relationship Visualization
CN102483693A (zh) 用于数据分析的可视化的系统和方法
US9672469B2 (en) Apparatus and method to increase accuracy in individual attributes derived from anonymous aggregate data
CN108804576B (zh) 一种基于链接分析的域名层级结构探测方法
US20150081353A1 (en) Systems and Methods for Interest-Driven Business Intelligence Systems Including Segment Data
CN104050213B (zh) 包括数据分类的查询处理系统
Gupta et al. Faster as well as early measurements from big data predictive analytics model
AU2015369723A1 (en) Identifying join relationships based on transactional access patterns
CN111046237A (zh) 用户行为数据处理方法、装置、电子设备及可读介质
CN105843842A (zh) 一种大数据环境下多维聚集查询与展示系统及方法
US20150371430A1 (en) Identifying Imagery Views Using Geolocated Text
Wittich et al. Recommending plant taxa for supporting on-site species identification
Li et al. GDPS: an efficient approach for skyline queries over distributed uncertain data
WO2014034383A1 (ja) 情報処理装置、レコード位置情報特定方法および情報処理プログラム
Li NoSQL Databases
CN106126943B (zh) 基于关联症状推导的病情采集方法
CN109614521B (zh) 一种高效的隐私保护子图查询处理方法
US20230049969A1 (en) Contextual geoanalytics engine in a data analytics system
CN106055594A (zh) 基于用户兴趣的信息提供方法
KR20180119104A (ko) 무정형 빅데이터의 개인정보 비식별화 처리 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant