1.本说明书实施例涉及数据处理技术领域,特别涉及一种数据采样方法。
背景技术:2.随着计算机技术的不断发展,为了避免数据库出现的各种性能问题,一般会在数据库中配置各种性能调优工具,例如,对于数据库的索引缺失问题,会在数据库配置有索引推荐类调优工具。而如何构建准确的统计信息是索引推荐类数据库调优工具的基石。基于此,现有技术中一般会通过基于均匀采样方法获取的数据,构建统计信息,但是,均匀采样方法在频繁更新的数据库上有很低的采样效率,以及采样准确率,从而导致后续无法快速且准确的构建统计信息,因此亟需提供一种能够显著的提高采样效率以及采样准确性的方法。
技术实现要素:3.有鉴于此,本说明书实施例提供了一种数据采样方法。本说明书一个或者多个实施例同时涉及一种数据采样装置,一种计算设备,一种计算机可读存储介质,一种计算机程序,以解决现有技术中存在的技术缺陷。
4.根据本说明书实施例的第一方面,提供了一种数据采样方法,包括:
5.接收针对目标数据表的数据采样请求,其中,所述数据采样请求中携带有目标索引位置;
6.根据所述目标索引位置,利用预测模型获得所述目标索引位置对应的目标预测采样概率,其中,所述预测模型基于样本对训练得到,所述样本对包括样本索引位置以及所述样本索引位置对应的样本预测采样概率;
7.基于所述目标预测采样概率,对所述目标索引位置处的待采样数据进行采样,获得目标数据。
8.根据本说明书实施例的第二方面,提供了一种数据采样装置,包括:
9.接收模块,被配置为接收针对目标数据表的数据采样请求,其中,所述数据采样请求中携带有目标索引位置;
10.预测模块,被配置为根据所述目标索引位置,利用预测模型获得所述目标索引位置对应的目标预测采样概率,其中,所述预测模型基于样本对训练得到,所述样本对包括样本索引位置以及所述样本索引位置对应的样本预测采样概率;
11.采样模块,被配置为基于所述目标预测采样概率,对所述目标索引位置处的待采样数据进行采样,获得目标数据。
12.根据本说明书实施例的第三方面,提供了一种计算设备,包括:
13.存储器和处理器;
14.所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现所述数据采样方法的步骤。
15.根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现所述数据采样方法的步骤。
16.根据本说明书实施例的第五方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行所述数据采样方法的步骤。
17.本说明书提供的数据采样方法,包括:接收针对目标数据表的数据采样请求,其中,所述数据采样请求中携带有目标索引位置;根据所述目标索引位置,利用预测模型获得所述目标索引位置对应的目标预测采样概率,其中,所述预测模型基于样本对训练得到,所述样本对包括样本索引位置以及所述样本索引位置对应的样本预测采样概率;基于所述目标预测采样概率,对所述目标索引位置处的待采样数据进行采样,获得目标数据。
18.具体的,该方法在接收针对目标数据表的数据采样请求的情况下,利用预测模型为数据采样请求中携带的目标索引位置,确定对应的目标预测采样概率,并基于该目标预测采样概率对目标数据表中的待采样数据进行采样,从而显著的提高采样效率以及采样准确性。
附图说明
19.图1是本说明书一个实施例提供的一种统计信息的示意图;
20.图2是本说明书一个实施例提供的一种数据采样方法的应用场景示意图;
21.图3是本说明书一个实施例提供的一种数据采样方法的流程图;
22.图4是本说明书一个实施例提供的一种数据采样方法的处理过程流程图;
23.图5是本说明书一个实施例提供的一种数据采样装置的结构示意图;
24.图6是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
25.在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
26.在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
27.应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
28.首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
29.accept-reject sampling:一种常用的采样方法,用于从一个分布中采样元素。
30.inverser probablity weighting:一种纠正采样偏差的统计方法。
31.rds:是关系型数据库服务(relational database service)的简称,是一种即开即用、稳定可靠、可弹性伸缩的在线数据库服务。
32.在云计算时代,开源关系型数据库(如mysql数据库)成为越来越多中小型企业上云的优先选择。但在使用开源关系型数据库时,用户会遇到不同的性能问题,如索引缺失等。但是目前没有针对开源数据库的性能调优工具;或者,由于企业规模限制,用户往往没有经验丰富的数据库管理员来做性能调优。
33.而一些数据库一般有内置的数据库调优工具,如索引推荐工具等,可以帮助用户解决数据库的性能问题,但是这些工具都是针对特定商业数据库定制的,对于开源关系型数据库的用户,目前这样的数据库自动调优工具是缺失的。
34.而针对索引推荐类工具来说,构造准确的统计信息是索引推荐类工具的基石,针对不同的数据分布,需要推荐不同的索引。并且考虑到统计信息的构建时,需要不影响数据库自身的数据写入、数据查询、数据添加、数据删除等服务的正常运行,一般会使用采样的方法构建统计信息。但是,一般的均匀采样方法在频繁更新的关系型数据库上有很低的采样效率。
35.比如,本说明书提供了一种均匀采样方案,该方案具体为:给定一个数据库实例中的某个表t,假设表中至少有一个带索引的类型为数字的列(该列通常是自增主键)id,之后可以通过在该索引列上的范围内查询sql,从而获取表中的某一行的元素。但是,考虑到采样预算或采样代价的消耗问题,希望该方案在给定的采样代价下,通过一系列的范围查询sql来获取表中其他列的统计信息,比如该统计信息可以为直方图。
36.该索引列中的值域范围,比如1~1000000。而该方案可以采用均匀采样的方法来获取表中的元素。为了提高采样效率,我们假设每次采样的采样范围是“/”,其中,该“/”可以相当于下述公式中的l,可以随机在[1,1000000]中选择一个数n,然后使用以下sql语句来获取表中的元素,然后使用这些元素构造统计信息。
[0037]
select*from t where id between
n-//2 andn+//2。
[0038]
例如,当表t的大小和索引列的值域范围近似时,比如t有1000000行,并且索引列中id的范围是1~1000000,也即是索引列中的值域范围为1~1000000。那么均匀采样在该表t中会有不错的采样效率。
[0039]
但是关系型数据库往往是不断变化的,伴随着很多的插入和删除操作,这样的表id的范围可能远远大于表的大小,比如表t只有10000行,而id的范围仍然是1~1000000;对于这种情况的表被称为稀疏表。针对该稀疏表,通过使用{表的大小}/{索引列的范围}来定义稀疏度,那上例中表t的稀疏度可以为10000/1000000=1%。
[0040]
而通过分析一些企业提供rds服务的表可知,稀疏表是非常普遍的,例如,对一些企业提供rds服务中的、1000个实例的10000个表进行分析得知,有25%以上的表的稀疏度都是小于5%的;可见在实际应用中,稀疏表是非常普遍的。参见图1,图1是本说明书一个实施例提供的一种统计信息的示意图。该图1中展示有稀疏表中的数据对应的稀疏度,以及数据在不同范围的占比。
[0041]
而针对该稀疏表,可以预见一般的均匀采样方法有很低的采样效率,特别是当表中id不是均匀分布在范围1~1000000,而是集中在某个区域的情况下,很多sql语句都会返回空,进而浪费了采样代价(比如采样时间、计算资源等)。
[0042]
基于此,本说明书提供的数据采样方法,提出一种基于主动采样的关系型数据库稀疏表统计信息构造方法,在接收针对目标数据表的数据采样请求的情况下,根据数据采样请求中携带的目标索引位置,利用预测模型获得该目标索引位置对应的目标预测采样概率,其中该预测模型基于样本对训练得到,该样本对包括样本索引位置以及样本索引位置对应的样本预测采样概率。
[0043]
然后基于目标预测采样概率,对目标索引位置处的待采样数据进行采样,从而获得目标数据,从而显著的提高采样效率,使用更少的采样代价得到更高的采样精度。该方法通过执行sql来采样数据库中的记录来构造统计信息,适用于所有关系型数据库。并且该方法同样适用于需要数据库统计信息的调优工具。
[0044]
具体的,在本说明书中,提供了一种数据采样方法,本说明书同时涉及一种数据采样装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,在下面的实施例中逐一进行详细说明。
[0045]
图2示出了根据本说明书一个实施例提供的一种数据采样方法的应用场景示意图,参见图2可知,本说明书提供的数据采样方法可以应用于数据库204,该数据库204与客户端202连通。基于此,当客户端202需要对数据库中的数据表进行采样的情况下,能够向该数据库204发送针对数据库204中的目标数据表的数据采样请求,该目标数据表可以是数据库204中存储的、能够被执行采样操作的表。
[0046]
该数据库204在接收到客户端发送的数据采样指令的情况下,首先从自身存储的一个或多个数据表中,确定该数据采样指令所针对的数据表,也即是需要执行采样操作的表。该确定数据表的方式可以根据实际应用场景进行设置,本说明书对此不作具体限定。例如,该数据采样请求中可以携带有目标数据表的标识信息,该数据库204能够基于该标识信息确定需要执行采样操作的目标数据表。在实际应用中,该目标数据表可以为稀疏表。
[0047]
而数据库204确定需要进行采样的稀疏表之后,对于稀疏表t来说,假设稀疏表t有n行,而稀疏表t的索引列的取值范围是[1,m],n<<m。m可以为任意一个数值,本说明书对此补货具体限定,对于任意的索引位置n∈[1,m],如果有一个函数p(n)可以告知数据库204在位置n有数据记录的概率,那么该数据库204可以使用这个概率分别来进行比均分采样更高效的采样。因此,该数据库204中配置有预先训练的预测模型,该预测模型是基于样本对训练获得的,该样本对包含样本索引位置以及该样本索引位置对应的样本预测采样概率。
[0048]
基于此,该数据库204获取该数据采样请求携带索引位置n,并利用该预测模型对该索引位置n的采样概率进行预测,获得索引位置n对应的预测采样概率也即是,将索引位置n输入至预测模型,获得该索引位置n对应的预测采样概率
[0049]
之后该数据库204基于该预测采样概率对该稀疏表t中的索引位置n处的待采样数据进行采样,获得目标数据。从而提高了针对稀疏表的采样效率,避免了均分采样对稀疏表的采样效率较低的问题。
[0050]
后续,数据库204将该目标数据返回值客户端202,以使该客户端202能够基于采样获得的目标数据,构建该稀疏表t的统计信息。或者,该数据库204也可以基于目标数据构建该稀疏表t的统计信息,并将该统计信息发送至客户端202。
[0051]
图3示出了根据本说明书一个实施例提供的一种数据采样方法的流程图,具体包括以下步骤。
[0052]
步骤302:接收针对目标数据表的数据采样请求,其中,所述数据采样请求中携带有目标索引位置。
[0053]
其中,该目标数据表可以理解为存储的数据库中,且需要数据库执行数据采样操作的表,该目标数据表可以为稀疏表;该数据库可以为任意一种数据库,本说明书对此不作具体限定,例如,该数据库可以为关系型数据库。
[0054]
其中,该目标索引位置可以理解为该目标数据表的索引列对应的索引范围(即值域范围)中,任意的数值,例如,目标数据表的索引列中的值域范围为1~1000000,那么,该目标索引位置可以为[1,1000000]中的一个或多个数值。
[0055]
基于此,该数据库能够接收到针对该目标数据表的数据采样请求,该数据采样请求中同时还携带有目标索引位置。
[0056]
在本说明书提供的实施例中,在利用预测模型获得目标索引位置对应的目标预测采样概率之前,还需要基于样本对,对该预测模型进行训练,从而实现基于预先训练的预测模型对目标索引位置对应的目标预测采样概率进行预测,从而进一步提升数据采样效率的目标。具体的,所述根据所述目标索引位置,利用预测模型获得所述目标索引位置对应的目标预测采样概率之前,还包括:
[0057]
确定样本数据表的索引范围,并基于所述索引范围确定样本索引位置,以及所述样本索引位置对应的预测采样概率;
[0058]
将所述样本索引位置作为训练样本,将所述样本索引位置对应的预测采样概率,作为所述训练样本对应的样本标签;
[0059]
基于所述训练样本以及对应的样本标签构建样本对,并根据所述样本对,对所述待训练预测模型进行训练,获得训练完成的预测模型。
[0060]
该样本数据表可以理解为数据库中存储的、用于对预测模型进行训练的数据表。在实际应用中,该样本数据表可以与目标数据表不同。
[0061]
而在本说明书提供的一实施例中,在执行数据采样过程中,该数据库分配给一个数据采样任务的采样资源是有限定的。该数据采样任务可以理解为在接收到数据采样请求之后,响应于该数据采样请求执行针对目标数据表的采样操作的任务。而该采样资源可以理解为执行该数据采样所需要的采样预算、或采样代价等。例如,数据库分配给一个数据采样任务的采样总时间、数据库响应时间、分配给一个数据采样任务的sql语句使用数量等等。
[0062]
基于此,考虑在采样预算有限的情况下,为了提高在有限的采样预算情况下,该预测模型的预测效果,并且,也为了提高基于预测模型获得的预测采样概率,在对目标数据表进行采样的效率,可以将目标数据表作为样本数据表,并基于该目标数据表对该预测模型进行训练。也即是说,该样本数据表可以为目标数据表,或者该样本数据表可以是该目标数据表的子集;其中,目标数据表的子集可以理解为包含目标数据表中记录的部分数据记录的表。
[0063]
该样本数据表的索引范围可以理解为该样本数据表的索引列对应的值域范围,例如,该索引范围可以为1~1000000。
[0064]
该样本索引位置对应的预测采样概率可以理解为表征在样本索引位置处能够采样的数据的概率。该预测采样概率可以为[0,1]区间内的任意数值。
[0065]
具体地,该数据库对预测模型进行训练的过程中,确定该样本数据表的索引范围,并从该索引范围中确定样本索引位置,并且基于该索引范围确定该样本索引位置对应的预测采样概率。
[0066]
之后,将样本索引位置作为训练样本,将样本索引位置对应的预测采样概率,作为训练样本对应的样本标签;基于训练样本以及对应的样本标签构建样本对,并根据样本对训练待训练预测模型,直至达到训练停止条件,从而获得训练完成的预测模型。其中,该训练停止条件可以根据实际应用场景进行设置,例如,执行完特定数量的迭代训练、模型达到收敛等等,从而便于后续基于该预测模型准确的确定出目标索引位置对应的目标预测采样概率,进一步提高数据采样的准确度和效率。
[0067]
进一步的,所述基于所述索引范围确定样本索引位置,以及所述样本索引位置对应的预测采样概率,包括:
[0068]
基于所述索引范围确定样本索引位置,以及所述样本索引位置对应的采样范围,并基于所述采样范围确定所述样本索引位置对应的样本采样数据;
[0069]
基于所述样本采样数据的属性信息以及所述采样范围,确定所述样本索引位置对应的预测采样概率。
[0070]
其中,该样本索引位置对应的采样范围可以理解为索引范围中该样本索引位置的周边范围,例如,该索引范围为1~1000000,样本索引位置为500,该样本索引位置对应的采样范围可以为[400,600]。
[0071]
样本采样数据的属性信息可以理解为该样本采样数据的数量信息,基于此,基于所述样本采样数据的属性信息以及所述采样范围,确定所述样本索引位置对应的预测采样概率,可以理解为,将样本采样数据的数量信息与采样范围相除,并将相除运算的结果作为样本索引位置对应的预测采样概率。
[0072]
具体的,该数据库在对预测模型进行训练的过程中,首先从索引范围中确定样本索引位置,以及该样本索引位置对应的采样范围,并基于采样范围确定样本索引位置对应的样本采样数据;之后基于该样本采样数据的属性信息以及采样范围,确定样本索引位置对应的预测采样概率。
[0073]
进一步的,在本说明书提供的实施例中,所述基于所述索引范围中确定样本索引位置,以及所述样本索引位置对应的采样范围,并基于所述采样范围确定所述样本索引位置对应的样本采样数据,包括:
[0074]
确定所述样本数据表对应的预设均匀采样规则,并基于所述预设均匀采样规则,从所述样本数据表中选择样本索引位置;
[0075]
确定所述样本索引位置对应的预设范围参数,并基于所述预设范围参数,从所述索引范围中为所述样本索引位置确定对应的样本采样范围;
[0076]
从所述样本数据表中获取所述样本采样范围对应的待采样样本数据,作为所述样本索引位置对应的样本采样数据。
[0077]
其中,该预设范围参数可以理解为从索引范围中为样本索引位置确定对应的采样范围的参数。
[0078]
下面以数据采样方法在构建关系数据库统计信息场景下的应用为例,对基于索引范围中确定样本索引位置以及采样范围确定预测采样概率做进一步说明。
[0079]
在实际应用中,在对稀疏表进行采样之前,需要对预测模型进行训练,该训练步骤可以是整个构建统计信息的初始步骤,具体包括:数据库从分配给数据采样任务的采样预算中,划分一部分采样预算(比如10%)来进行均匀采样以获取初始数据,进行均匀采样的过程如上实施例所述,也即是,给定一个数据库实例中的某个稀疏表t,该稀疏表t的索引列中的值域范围为1~1000000。假设每次采样的采样范围是“/”,我们可以随机在[1,m]中选择一个数n,其中,该m等于1000000。然后使用以下sql语句来获取表中的元素。
[0080]
select*from t where id between
n-//2 andn+//2;
[0081]
其中,上式中的2可以理解为预测范围参数。本说明书提供的数据采样方法中,是通过使用样本索引位置对应的采样范围内的、其他位置上的记录数据,来估计位置有数据记录的概率,假如上述sql返回了m个记录,则使用下式来定义该样本索引位置对应的预测采样概率。
[0082][0083]
在初始阶段,通过随机选择一系列采样位置n,计算相应的p(n)并记录下来,直到初始采样预算用完,从而结束初始阶段中的数据采样。
[0084]
之后,数据库将位置n作为样本,基于预测采样概率p(n)作为标签构建样本对,并基于样本对高斯过程回归模型进行训练,直至模型达到停止条件,从而获得训练完成的高斯过程回归模型。
[0085]
步骤304:根据所述目标索引位置,利用预测模型获得所述目标索引位置对应的目标预测采样概率。
[0086]
其中,所述预测模型基于样本对训练得到,所述样本对包括样本索引位置以及所述样本索引位置对应的样本预测采样概率;
[0087]
具体的,该数据库将目标索引位置输入至训练完成的预测模型中,获得该目标索引位置对应的目标预测概率。
[0088]
该预测模型可以理解为能够预测出该目标索引位置对应的目标预测采样概率的模型,在实际应用中,该预测模型能够为任意一种能够实现为索引位置预测对应的采样概率的模型,本说明书对此不作具体限定,例如,该预测模型可以为高斯过程回归模型。
[0089]
目标预测采样概率可以理解为表征在目标索引位置处能够采样的数据的概率。该目标预测采样概率可以为[0,1]区间内的任意数值。
[0090]
进一步的,在本说明书提供的实施例中,该数据库分配给一个数据采样任务的采样资源是有限的;在采样预算有限的情况下,一方面需要更多的采样数据来构造统计信息,一方面我们需要注重预测采样概率的准确度。因此,数据库会存在一个参数来控制采样预算的比例分配,比如,可以使用10%的采样预算来做贝叶斯优化以提高预测模型准确度,使用90%的采样用来采样数据,以构造统计信息,从而在有限的采样预算下,实现在提升模型准确度的同时,完成统计信息的构建,具体的,所述根据所述目标索引位置,利用预测模型获得所述目标索引位置对应的目标预测采样概率,包括:
[0091]
确定所述数据采样请求对应的数据采样资源;
[0092]
确定针对所述数据采样请求的预设处理规则,以及所述预设处理规则对应的处理参数;
[0093]
在确定所述数据采样资源不为空,且所述处理参数满足预设处理规则的情况下,将所述目标索引位置输入预测模型,获得所述目标索引位置对应的目标预测采样概率。
[0094]
其中,该预设处理规则可以理解为上述使用10%的采样预算来做贝叶斯优化以提高预测模型准确度,使用90%的采样用来采样数据以构造统计信息的规则,该处理参数可以理解为控制采样预算的比例分配的参数,该处理参数可以为[0,1]区间内的随机数值。该随机数值有10%的概率分布在[0,0.1]区间内,有90%的概率分布在(0.1,1]区间内。
[0095]
数据采样资源可以理解为采样预算。
[0096]
处理参数满足预设处理条件可以理解为在处理参数大于预设阈值(如0.1)的情况下,确定该处理参数满足预设处理条件。
[0097]
沿用上例,数据库会判断当前具有采样预算,且该处理参数大于预设阈值(如0.1)的情况下,若是,则将索引位置n输入预测模型,获得目标索引位置n对应的目标预测采样概率。
[0098]
需要说明的是,数据库会使用已经记录的n和p(n)来训练一个高斯过程回归模型,该模型可以用来估计所有位置的概率,记为同时,需要注意的是,在模型进行优化的过程中,由于每一次采样,只添加了一个新的n和p(n),所以高斯过程回归模型不用在每一步采样后都更新,可以周期性的更新高斯过程模型,比如每隔32或64次采样后对模型进行更新,这样可以减少高斯过程训练的代价。选择高斯过程回归模型,因为它不但可以估计函数值,还可以估计相应的方差(不确定性),这对于之后要用到的贝叶斯优化至关重要。
[0099]
步骤306:基于所述目标预测采样概率,对所述目标索引位置处的待采样数据进行采样,获得目标数据。
[0100]
在本说明书提供的实施例中,所述基于所述目标预测采样概率,对所述目标索引位置处的待采样数据进行采样,获得目标数据,包括:
[0101]
确定所述目标索引位置对应的初始采样范围,并基于所述目标预测采样概率,对所述初始采样范围进行调整,获得目标采样范围;
[0102]
从所述目标数据表中获取所述目标采样范围对应的待采样数据,作为所述目标索引位置对应的目标数据。
[0103]
其中,该目标索引位置对应的初始采样范围和目标采样范围可以参见上述解释,在此不过的赘述。
[0104]
在实际应用中,对于稀疏表,已知一个概率分布函数可以借助得到更高效的采样。当数据库知道某个区域有更大的概率采样到数据时,不但可以在那个区域实施更多的采样,还可以动态的调整采样范围。对于稀疏表来说,当越小,越有可能采样不到数据,但是当越大时,同一个采样范围内的数据就不是独立同分布的了,这会显著降低随后要构造的统计信息的精度。当获得知道可以在根据动态的调整采样范围。
[0105]
具体的,数据库在确定目标索引位置对应的目标预测采样概率之后,能够确定该目标索引位置对应的初始采样范围,并基于所述目标预测采样概率,对所述初始采样范围进行扩大或缩小处理调整,获得目标采样范围。
[0106]
从该目标数据表的索引范围中确定该目标采样范围,并获取该目标采样范围对应的待采样数据,作为目标索引位置对应的目标数据。
[0107]
沿用上例,具体使用以下公式调整采样范围。
[0108][0109]
当时,用来进行采样,当时,用1/β大约来采样。其中,β为一个预设的参数,实际数据中发现β=8对稀疏表是一个稳定的选择。
[0110]
在本说明提供的一实施例中,已知我们可以使用归一化的概率来进行采样。但是这需要针对所有的n都计算出由于m往往很大,一次计算可能就用完了所有的采样预算。于是本说明书提供的数据采样方法中,提出使用accept-reject方法来进行采样。具体的,所述基于所述目标预测采样概率,对所述目标索引位置处的待采样数据进行采样,获得目标数据,包括:
[0111]
基于至少两个目标索引位置对应的目标预测采样概率,从所述至少两个目标索引位置中确定被选中的目标索引位置;
[0112]
对所述被选中的目标索引位置处的待采样数据进行采样,获得目标数据。
[0113]
具体的,对于基于至少两个目标索引位置,在确定每个目标索引位置对应的目标预测采样概率之后,基于该目标预测采样概率从至少两个目标索引位置中确定出被选中的目标索引位置;之后确定被选中的目标索引位置对应的采样范围(例如,例如上述初始采样范围或目标采样范围),并从目标数据表中获取采样范围对应的待采样数据,作为被选中的目标索引位置对应的目标数据。
[0114]
沿用上例,对于基于每个索引位置n,在确定对应的之后,基于该通过accept-reject方法从索引位置n中确定出被选中的索引位置n;之后确定被选中的目标索引位置n对应的采样范围,并从稀疏表中获取采样范围对应的待采样数据,作为被选中的索引位置n的采样数据。
[0115]
进一步的,所述基于至少两个目标索引位置对应的目标预测采样概率,从所述至少两个目标索引位置中确定被选中的目标索引位置,包括:
[0116]
确定针对至少两个目标索引位置的预设选取规则,以及所述预设选取规则对应的预设选取阈值;
[0117]
确定针对所述至少两个目标索引位置的预设采样概率;
[0118]
根据所述目标预测采样概率以及所述预设采样概率,计算每个目标索引位置对应的选取参数;
[0119]
从所述选取参数中确定满足所述预设选取阈值的目标选取参数,并将所述目标选取参数对应的所述目标索引位置确定为被选取的目标索引位置。
[0120]
在实际应用中,当采用accept-reject方法来进行采样的过程中,首先会随机选择一个点n(即索引位置),计算对应的(可以通过上述预测模型计算获得),然后生成一个随机数z∈[0,1],如果则accept(接受)这次采样并执行针对位置n的采样,否则就reject(拒绝)这次采样,并且reject这一过程会一直持续,直到有一个accept的采样。其中v
t
是p(n)的最大值。
[0121]
其中,该预设选取规则可以理解为accept-reject方法,预设选取阈值可以理解为随机数z∈[0,1],预设采样概率可以理解为v
t
,选取参数可以理解为的计算结果。选取参数满足预设选取阈值可以理解为该选取参数大于等于预设选取阈值。
[0122]
在本说明书提供的一实施例中在采样预算有限的情况下,可以使用10%的采样预算来做贝叶斯优化以提高预测模型准确度。具体包括:
[0123]
本说明书提供的数据采样方法,所述接收针对目标数据表的数据采样请求之后,还包括:
[0124]
基于所述目标数据表为所述预测模型确定对应的随机索引位置;
[0125]
根据所述随机索引位置,利用预测模型获得所述随机索引位置对应的初始预测采样概率,其中,所述预测模型基于样本对训练得到,所述样本对包括样本索引位置以及所述样本索引位置对应的样本预测采样概率;
[0126]
基于所述初始预测采样概率,对所述目标数据表中所述随机索引位置处的待采样数据进行采样,获得模型优化数据;
[0127]
基于所述模型优化数据对所述预测模型进行优化,获得优化后的预测模型。
[0128]
其中,模型优化请求可以理解为对模型的执行贝叶斯优化的请求。模型优化数据可以理解为基于随机索引位置从目标数据表中采样获得的记录数据。随机索引位置可以理解为基于目标数据表的索引范围随机确定的索引位置,该随机索引位置可以基于贝叶斯优化确定。
[0129]
在实际应用中,本说明书提供的数据采样方法,使用一个贝叶斯优化的变体,通过假设高斯过程回归模型对每一个n的估计均值和方差为μn和σn,则随机采样比如1000个n,然后分别采样μn+σn最大的点(即索引位置)和σn。其中,μn+σn最大的点可以理解为,μn以及σn都分别为最大的索引位置,而确定该索引位置的操作就是贝叶斯优化,为了寻找p(n)的最大值v
t
,后者σn是为了提高高斯过程回归模型的预测精度。
[0130]
具体的,数据库基于目标数据表的索引范围,随机为预测模型确定对应的随机索引位置,该随机索引位置位于该索引范围内;将随机索引位置输入预测模型中,获得随机索引位置对应的初始预测采样概率;基于初始预测采样概率,对目标数据表中的随机索引位置处的待采样数据进行采样,获得模型优化数据;然后基于该模型优化数据对预测模型进行优化,获得优化后的预测模型。
[0131]
进一步的,所述基于所述目标数据表为所述预测模型确定对应的随机索引位置,包括:
[0132]
确定所述数据采样请求对应的数据采样资源;
[0133]
确定针对所述数据采样请求的预设处理规则,以及所述预设处理规则对应的处理参数;
[0134]
在确定所述数据采样资源不为空,且所述处理参数不满足预设处理规则的情况下,基于所述目标数据表的索引范围,为所述预测模型确定对应的随机索引位置。
[0135]
其中,处理参数不满足预设处理条件可以理解为在处理参数小于等于预设阈值(如0.1)的情况下,确定该处理参数不满足预设处理条件。
[0136]
沿用上例,数据库会判断该处理参数小于等于预设阈值(如0.1)的情况下,若是,
则基于目标数据表的索引范围,随机为预测模型确定对应的随机索引位置。
[0137]
在本说明书提供的一实施例中,所述基于所述初始预测采样概率从所述随机索引位置中确定目标随机索引位置,并对所述目标随机索引位置处的待采样数据进行采样,获得模型优化数据,包括:
[0138]
确定至少两个随机索引位置中,每个随机索引位置对应的初始预测采样概率和初始概率预测参数,其中,所述初始概率预测参数为利用所述预测模型获得;
[0139]
基于所述初始预测采样概率以及所述初始概率预测参数,从所述至少两个随机索引位置中确定目标随机索引位置;
[0140]
确定所述目标随机索引位置对应的随机采样范围,从所述目标数据表中获取所述随机采样范围对应的待采样数据,作为模型优化数据。
[0141]
其中,初始概率预测参数可以理解为预测模型输出的方差,目标随机索引位置可以理解为随机索引位置中μn以及σn都分别为最大的索引位置。
[0142]
沿用上例,数据库将多个随机索引位置输入值高斯过程回归模型中,获得该随机索引位置对应的μn以及σn,从多个随机索引位置中,确定μn以及σn都分别为最大的随机索引位置,并确定该随机索引位置对应的采样范围,从稀疏表中确定该采样范围,并获取该采样范围对应的记录数据,将该记录数据作为对高斯过程回归模型进行优化过程中所需要的数据,从而实现后续对预测模型的优化,提高预测模型的准确度。
[0143]
在本说明书提供的实施例中,所述基于所述模型优化数据对所述预测模型进行优化,获得优化后的预测模型,包括:
[0144]
基于所述模型优化数据确定所述随机索引位置对应的实际采样概率;
[0145]
基于所述实际采样概率以及所述初始预测采样概率,对所述随机索引位置对应的初始概率预测参数进行调整,获得目标概率预测参数;
[0146]
基于所述目标概率预测参数对所述预先训练的预测模型进行优化,获得优化后的预测模型。
[0147]
沿用上例,数据库在基于随机索引位置获取到采样数据之后,基于该采样数据确定该随机索引位置对应的实际采样概率,基于该实际采样概率以及预测模型进行预测获得的预测采样概率,对该预测模型的方差参数进行调整,基于调整后的方差对高斯过程回归模型进行更新优化,从而获得优化后的高斯过程回归模型,从而提高了预测模型的预测准确率。
[0148]
在本说明书提供的数据处理方法中,在获得目标数据之后,能够基于该目标数据构建统计信息,具体的,所述基于所述目标预测采样概率,对所述目标索引位置处的待采样数据进行采样,获得目标数据之后,还包括:
[0149]
基于所述目标数据构建所述目标数据表对应的统计信息。
[0150]
沿用上例,在通过目标索引位置对目标数据表进行采样,获得目标数据之后,将该目标数据构建为直方图。
[0151]
本说明书提供的数据采样方法,在接收针对目标数据表的数据采样请求的情况下,利用预测模型为数据采样请求中携带的目标索引位置,确定对应的目标预测采样概率,并基于该目标预测采样概率对目标数据表中的待采样数据进行采样,从而显著的提高采样效率以及采样准确性。
[0152]
下述结合附图4,以本说明书提供的数据采样方法在基于主动采样构建关系数据库的统计信息场景下的应用为例,对所述数据采样方法进行进一步说明。其中,图4示出了本说明书一个实施例提供的一种数据采样方法的处理过程流程图,在实际应用中,对于一个稀疏表来说,假设稀疏表t有n行,而稀疏表t的索引列的取值范围是[1,m],n<<m。对于任意的索引位置n∈[1,m],如果有一个函数p(n)可以告知数据库在位置n有数据记录的概率,那么该数据库可以使用这个概率分别来进行比均分采样更高效的采样。为实现这一不好走,首先,定义了p(n),然后使用高斯过程回归模型来估计并且使用accept-reject方法来达到高效的采样。这期间通过使用了一种贝叶斯优化的变种,来不断提高对估计的准确度以及搜索的最大值,使得accept-reject方法可以逼近较优采样。同时,还提出了一个种自适应采样范围调整方法来进一步提高采样效率。最后,由于根据实际需求,会对大的区域进行更多的采样,而这带来了采样偏差,因此,本方案提出在构造统计信息的过程中需要使用inverseprobability weighting来纠正采样的偏差。具体包括以下步骤。
[0153]
步骤402:初始执行均匀采样,并记录对应的p(n)。
[0154]
具体的,在对稀疏表进行采样之前,需要对高斯过程回归模型进行训练,该训练步骤可以是整个构建统计信息的初始步骤,具体包括:数据库从分配给数据采样任务的采样预算中,划分一部分采样预算(比如10%)来进行均匀采样以获取初始数据,进行均匀采样的过程如上实施例所述,也即是,给定一个数据库实例中的某个稀疏表t,该稀疏表t的索引列中的值域范围为1~1000000。假设每次采样的采样范围是“/”,我们可以随机在[1,m]中选择一个数n,其中,该m等于1000000。然后使用以下sql语句来获取表中的元素。
[0155]
select*from t where id between
n-//2 and n
+//2;
[0156]
其中,上式中的“2”可以理解为调整采样范围的参数。本说明书提供的数据采样方法中,是通过使用样本索引位置对应的采样范围内的、其他位置上的记录数据,来估计位置n有数据记录的概率,假如上述sql返回了m个记录,则使用下式来定义该样本索引位置对应的预测采样概率。
[0157][0158]
在初始阶段,通过随机选择一系列采样位置n,计算相应的p(n)并记录下来,直到初始采样预算用完,从而结束初始阶段中的数据采样。
[0159]
步骤404:判断是否具有采样预算,若是,执行步骤406,若否,执行步骤420。
[0160]
在实际应用中,分配给每次数据采样任务的采样预算都是有限的,因此,在执行主动采样的过程中,需要判断是否还具有采样预算,若是,则确定当前还有采样预算剩余,从而执行步骤406,继续使用主动采样,;若否,则确定采样预算使用完毕,从而执行步骤420,结束采样。
[0161]
步骤406:训练高斯过程回归模型。
[0162]
具体的,将初始阶段记录下的采样位置n作为样本数据,将采样位置n对应的p(n)作为样本标签,基于样本数据和样本标签对高斯过程回归模型进行训练,直至高斯过程回归模型达到训练停止条件。
[0163]
而训练后的高斯过程回归模型,可以用来估计所有位置的概率,记为同时,需要注意的是,在模型进行优化的过程中,由于每一次采样,只添加了一个新的n和p(n),所
以高斯过程回归模型不用在每一步采样后都更新,可以周期性的更新高斯过程模型,比如每隔32或64次采样后对模型进行更新,这样可以减少高斯过程训练的代价。
[0164]
并且,本说明书提供的数据采样方法,选择高斯过程回归模型,是因为该模型不但可以估计函数值,还可以估计相应的方差(不确定性),这对于之后要用到的贝叶斯优化至关重要。
[0165]
步骤408:判断是否使用贝叶斯优化,若是,则执行步骤410,若否,则执行步骤412。
[0166]
具体的,该数据库分配给一个数据采样任务的采样资源是有限的;而在采样预算有限的情况下,一方面需要更多的采样数据来构造统计信息,一方面我们需要注重预测采样概率的准确度。
[0167]
因此,数据库会存在一个参数来控制采样预算的比例分配,比如,可以使用10%的采样预算来做贝叶斯优化以提高预测模型准确度,使用90%的采样用来采样数据,以构造统计信息,从而在有限的采样预算下,实现在提升模型准确度的同时,完成统计信息的构建。
[0168]
基于此,判断是否使用贝叶斯优化的方式可以为:
[0169]
1、确定控制采样预算的比例分配的随机参数。
[0170]
该随机参数可以为[0,1]区间内的随机数值,其中,该随机参数有10%的概率分布在[0,0.1]区间内,有90%的概率分布在(0.1,1]区间内。
[0171]
2、数据库在判断该随机参数大于预设阈值(0.1)的情况下,执行主动采样的步骤,也即是步骤412。
[0172]
或者,数据库在判断该随机参数小于等于预设阈值(0.1)的情况下,执行贝叶斯优化的步骤,也即是步骤410。
[0173]
步骤410:采样估计方差和估计值最大的点,记录对应的p(n)。
[0174]
具体的,本说明书提供的数据采样方法,使用一个贝叶斯优化的变体,通过假设高斯过程回归模型对每一个n的估计均值和方差为μn和σn,其中,该估计均值μn可以理解为上述预测采样概率
[0175]
之后,随机采样比如1000个n,然后分别采样μn+σn最大的点(即索引位置)和σn。其中,μn+σn最大的点可以理解为,μn以及σn都分别为最大的索引位置;而确定该索引位置的操作就是贝叶斯优化,该贝叶斯优化为了寻找p(n)的最大值v
t
,后者σn是为了提高高斯过程回归模型的预测精度。
[0176]
具体执行贝叶斯优化的方式为:
[0177]
数据库将多个随机获取的随机索引位置n输入值高斯过程回归模型中,获得该随机索引位置对应的μn以及σn。
[0178]
然后从多个随机索引位置中,确定μn以及σn都分别为最大的随机索引位置max。
[0179]
在执行贝叶斯优化之后,首先,确定该随机索引位置max对应的采样范围,从稀疏表中获取该采样范围对应的记录数据。
[0180]
其次,基于该记录数据确定该随机索引位置max对应的实际采样概率,基于该实际采样概率和估计均值μn对σn进行调整。
[0181]
最后,基于调整后的σn对高斯过程回归模型进行调参,从而实现对该高斯过程回归模型的更新优化。
[0182]
步骤412:动态调整采样范围。
[0183]
具体的,对于稀疏表,已知一个概率分布函数可以借助得到更高效的采样。当数据库知道某个区域有更大的概率采样到数据时,不但可以在那个区域实施更多的采样,还可以动态的调整采样范围。
[0184]
对于稀疏表来说,当越小,越有可能采样不到数据,但是当越大时,同一个采样范围内的数据就不是独立同分布的了,这会显著降低随后要构造的统计信息的精度。当获得知道可以在根据动态的调整每个索引位置n对应的采样范围。
[0185]
具体使用以下公式调整采样范围。
[0186][0187]
当时,用来进行采样,当时,用1/β大约来采样。其中,β为一个预设的参数,实际数据中发现β=8对稀疏表是一个稳定的选择。
[0188]
步骤414:使用accept-reject方法采样。
[0189]
在实际应用中,确定后,可以使用归一化的概率来进行采样。但是这需要针对所有的n都计算出由于m往往很大,一次计算可能就用完了所有的采样预算。于是本说明书提供的数据采样方法中,提出使用accept-reject方法来进行采样。
[0190]
具体使用accept-reject方法来进行采样的方式为:
[0191]
当采用accept-reject方法来进行采样的过程中,首先,会随机选择一个点n(即索引位置),计算对应的(可以通过上述高斯过程回归模型计算获得),然后生成一个随机数z∈[0,1]。
[0192]
如果则accept(接受)这次采样并执行针对位置n的采样,否则就reject(拒绝)这次采样,并且reject这一过程会一直持续,直到有一个accept的采样。其中v
t
是p(n)的最大值。
[0193]
步骤416:记录采样数据和采样概率。
[0194]
具体的,在最终采样了范围则需要记录所有返回的数据,和对应的采样概率只有这一步骤采样的数据会用于构建统计信息。
[0195]
步骤418:第一次采样结束并计算采样代价。
[0196]
具体的,当一次采样结束后,数据库会计算采样代价,并执行步骤404,判断是否还有采样预算。
[0197]
步骤420:采样结束,并构造统计信息。
[0198]
具体的,当采样预算用完后,数据库使用采样的数据构建目标列的统计信息,这里需要使用inverse probablity weighting(逆概率加权法)来纠正采样中的偏移。比如每一个被采样到的数据在计算直方图时,不会被记录为1次,而是记录为次
[0199]
基于上述步骤,给定一个数据库表,以及该数据库表中对应的索引列和需要构建统计信息的列,以及针对该数据库表进行采样时所需要的采样预算(如采样总时间或数据
库响应时间)等。本说明书提供的数据采样方法,能够在有限的采样预算内,对数据库执行sql采样,从而获取目标列的统计信息,如直方图。
[0200]
并且,在实际应用中对本说明书提供的数据采样方法进行验证得知,相比均匀采样可以使用30%~50%的采样预算已得到相同的统计信息精度。
[0201]
本说明书提供的数据采样方法,提出了一种基于贝叶斯优化的主动采样方法用于稀疏表统计信息构建。通过使用了accept-reject sampling,贝叶斯优化,inverse probablity weighting和自适应采样范围调整等技术,使得数据库可以在有限的采样代价下,采样更多的数据来构造统计信息。并且理论上保证了本说明书提供的数据采样方法针对统计信息的构建可以得到无偏估计,进而和均匀采样相比,用更少的采样代价得到更高的采样精度,显著提高了传统的均匀采样的采样效率。
[0202]
并且,需要说明的是,本说明书提供的数据采样方法,是在数据库内核外使用sql构造表的统计信息,适用于所有的关系性数据库。本说明提供的数据采样方法,还存在一种替代方案可以在数据库内核里实现统计信息模块。但该方案需要针对不同的开源数据库不同的版本都实现相应的模块,并且如果用户使用的话,必须升级到相应的版本才可以,不具有普适性。
[0203]
与上述方法实施例相对应,本说明书还提供了数据采样装置实施例,图5示出了本说明书一个实施例提供的一种数据采样装置的结构示意图。如图5所示,该装置包括:
[0204]
接收模块502,被配置为接收针对目标数据表的数据采样请求,其中,所述数据采样请求中携带有目标索引位置;
[0205]
预测模块504,被配置为根据所述目标索引位置,利用预测模型获得所述目标索引位置对应的目标预测采样概率,其中,所述预测模型基于样本对训练得到,所述样本对包括样本索引位置以及所述样本索引位置对应的样本预测采样概率;
[0206]
采样模块506,被配置为基于所述目标预测采样概率,对所述目标索引位置处的待采样数据进行采样,获得目标数据。
[0207]
可选地,所述数据采样装置,还包括模型训练模块,被配置为:
[0208]
确定样本数据表的索引范围,并基于所述索引范围确定样本索引位置,以及所述样本索引位置对应的预测采样概率;
[0209]
将所述样本索引位置作为训练样本,将所述样本索引位置对应的预测采样概率,作为所述训练样本对应的样本标签;
[0210]
基于所述训练样本以及对应的样本标签构建样本对,并根据所述样本对,对所述待训练预测模型进行训练,获得训练完成的预测模型。
[0211]
可选地,所述模型训练模块,还被配置为:
[0212]
基于所述索引范围确定样本索引位置,以及所述样本索引位置对应的采样范围,并基于所述采样范围确定所述样本索引位置对应的样本采样数据;
[0213]
基于所述样本采样数据的属性信息以及所述采样范围,确定所述样本索引位置对应的预测采样概率。
[0214]
可选地,所述模型训练模块,还被配置为:
[0215]
确定所述样本数据表对应的预设均匀采样规则,并基于所述预设均匀采样规则,从所述样本数据表中选择样本索引位置;
[0216]
确定所述样本索引位置对应的预设范围参数,并基于所述预设范围参数,从所述索引范围中为所述样本索引位置确定对应的样本采样范围;
[0217]
从所述样本数据表中获取所述样本采样范围对应的待采样样本数据,作为所述样本索引位置对应的样本采样数据。
[0218]
可选地,所述预测模块504,还被配置为:
[0219]
确定所述数据采样请求对应的数据采样资源;
[0220]
确定针对所述数据采样请求的预设处理规则,以及所述预设处理规则对应的处理参数;
[0221]
在确定所述数据采样资源不为空,且所述处理参数满足预设处理规则的情况下,将所述目标索引位置输入预测模型,获得所述目标索引位置对应的目标预测采样概率。
[0222]
可选地,所述采样模块506,还被配置为:
[0223]
确定所述目标索引位置对应的初始采样范围,并基于所述目标预测采样概率,对所述初始采样范围进行调整,获得目标采样范围;
[0224]
从所述目标数据表中获取所述目标采样范围对应的待采样数据,作为所述目标索引位置对应的目标数据。
[0225]
可选地,所述采样模块506,还被配置为:
[0226]
基于至少两个目标索引位置对应的目标预测采样概率,从所述至少两个目标索引位置中确定被选中的目标索引位置;
[0227]
对所述被选中的目标索引位置处的待采样数据进行采样,获得目标数据。
[0228]
可选地,所述采样模块506,还被配置为:
[0229]
确定针对至少两个目标索引位置的预设选取规则,以及所述预设选取规则对应的预设选取阈值;
[0230]
确定针对所述至少两个目标索引位置的预设采样概率;
[0231]
根据所述目标预测采样概率以及所述预设采样概率,计算每个目标索引位置对应的选取参数;
[0232]
从所述选取参数中确定满足所述预设选取阈值的目标选取参数,并将所述目标选取参数对应的所述目标索引位置确定为被选取的目标索引位置。
[0233]
可选地,所述数据采样装置,还包括模型优化模块,被配置为:
[0234]
基于所述目标数据表为所述预测模型确定对应的随机索引位置;
[0235]
根据所述随机索引位置,利用预测模型获得所述随机索引位置对应的初始预测采样概率,其中,所述预测模型基于样本对训练得到,所述样本对包括样本索引位置以及所述样本索引位置对应的样本预测采样概率;
[0236]
基于所述初始预测采样概率从所述随机索引位置中确定目标随机索引位置,并对所述目标随机索引位置处的待采样数据进行采样,获得模型优化数据;
[0237]
基于所述模型优化数据对所述预测模型进行优化,获得优化后的预测模型。
[0238]
可选地,所述模型优化模块,还被配置为:
[0239]
确定所述数据采样请求对应的数据采样资源;
[0240]
确定针对所述数据采样请求的预设处理规则,以及所述预设处理规则对应的处理参数;
[0241]
在确定所述数据采样资源不为空,且所述处理参数不满足预设处理规则的情况下,基于所述目标数据表的索引范围,为所述预测模型确定对应的随机索引位置。
[0242]
可选地,所述样本数据表为所述目标数据表,或者所述目标数据表的子集。
[0243]
可选地,所述数据采样装置,还包括统计信息构建模块,被配置为:
[0244]
基于所述目标数据构建所述目标数据表对应的统计信息。
[0245]
上述为本实施例的一种数据采样装置的示意性方案。需要说明的是,该数据采样装置的技术方案与上述的数据采样方法的技术方案属于同一构思,数据采样装置的技术方案未详细描述的细节内容,均可以参见上述数据采样方法的技术方案的描述。
[0246]
图6示出了根据本说明书一个实施例提供的一种计算设备600的结构框图。该计算设备600的部件包括但不限于存储器610和处理器620。处理器620与存储器610通过总线630相连接,数据库650用于保存数据。
[0247]
计算设备600还包括接入设备640,接入设备640使得计算设备600能够经由一个或多个网络660通信。这些网络的示例包括公用交换电话网(pstn)、局域网(lan)、广域网(wan)、个域网(pan)或诸如因特网的通信网络的组合。接入设备640可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic))中的一个或多个,诸如ieee802.11无线局域网(wlan)无线接口、全球微波互联接入(wi-max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc)接口,等等。
[0248]
在本说明书的一个实施例中,计算设备600的上述部件以及图6中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图6所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
[0249]
计算设备600可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备600还可以是移动式或静止式的服务器。
[0250]
其中,处理器620用于执行如下计算机可执行指令,该计算机可执行指令被处理器620执行时实现上述数据采样方法的步骤。
[0251]
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据采样方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据采样方法的技术方案的描述。
[0252]
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据采样方法的步骤。
[0253]
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据采样方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据采样方法的技术方案的描述。
[0254]
本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据采样方法的步骤。
[0255]
上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序
的技术方案与上述的数据采样方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述数据采样方法的技术方案的描述。
[0256]
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0257]
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0258]
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
[0259]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
[0260]
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所述技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
技术特征:1.一种数据采样方法,包括:接收针对目标数据表的数据采样请求,其中,所述数据采样请求中携带有目标索引位置;根据所述目标索引位置,利用预测模型获得所述目标索引位置对应的目标预测采样概率,其中,所述预测模型基于样本对训练得到,所述样本对包括样本索引位置以及所述样本索引位置对应的样本预测采样概率;基于所述目标预测采样概率,对所述目标索引位置处的待采样数据进行采样,获得目标数据。2.根据权利要求1所述的数据采样方法,所述根据所述目标索引位置,利用预测模型获得所述目标索引位置对应的目标预测采样概率之前,还包括:确定样本数据表的索引范围,并基于所述索引范围确定样本索引位置,以及所述样本索引位置对应的预测采样概率;将所述样本索引位置作为训练样本,将所述样本索引位置对应的预测采样概率,作为所述训练样本对应的样本标签;基于所述训练样本以及对应的样本标签构建样本对,并根据所述样本对,对所述待训练预测模型进行训练,获得训练完成的预测模型。3.根据权利要求2所述的数据采样方法,所述基于所述索引范围确定样本索引位置,以及所述样本索引位置对应的预测采样概率,包括:基于所述索引范围确定样本索引位置,以及所述样本索引位置对应的采样范围,并基于所述采样范围确定所述样本索引位置对应的样本采样数据;基于所述样本采样数据的属性信息以及所述采样范围,确定所述样本索引位置对应的预测采样概率。4.根据权利要求3所述的数据采样方法,所述基于所述索引范围中确定样本索引位置,以及所述样本索引位置对应的采样范围,并基于所述采样范围确定所述样本索引位置对应的样本采样数据,包括:确定所述样本数据表对应的预设均匀采样规则,并基于所述预设均匀采样规则,从所述样本数据表中选择样本索引位置;确定所述样本索引位置对应的预设范围参数,并基于所述预设范围参数,从所述索引范围中为所述样本索引位置确定对应的样本采样范围;从所述样本数据表中获取所述样本采样范围对应的待采样样本数据,作为所述样本索引位置对应的样本采样数据。5.根据权利要求1所述的数据采样方法,所述根据所述目标索引位置,利用预测模型获得所述目标索引位置对应的目标预测采样概率,包括:确定所述数据采样请求对应的数据采样资源;确定针对所述数据采样请求的预设处理规则,以及所述预设处理规则对应的处理参数;在确定所述数据采样资源不为空,且所述处理参数满足预设处理规则的情况下,将所述目标索引位置输入预测模型,获得所述目标索引位置对应的目标预测采样概率。6.根据权利要求1所述的数据采样方法,所述基于所述目标预测采样概率,对所述目标
索引位置处的待采样数据进行采样,获得目标数据,包括:确定所述目标索引位置对应的初始采样范围,并基于所述目标预测采样概率,对所述初始采样范围进行调整,获得目标采样范围;从所述目标数据表中获取所述目标采样范围对应的待采样数据,作为所述目标索引位置对应的目标数据。7.根据权利要求1所述的数据采样方法,所述基于所述目标预测采样概率,对所述目标索引位置处的待采样数据进行采样,获得目标数据,包括:基于至少两个目标索引位置对应的目标预测采样概率,从所述至少两个目标索引位置中确定被选中的目标索引位置;对所述被选中的目标索引位置处的待采样数据进行采样,获得目标数据。8.根据权利要求7所述的数据采样方法,所述基于至少两个目标索引位置对应的目标预测采样概率,从所述至少两个目标索引位置中确定被选中的目标索引位置,包括:确定针对至少两个目标索引位置的预设选取规则,以及所述预设选取规则对应的预设选取阈值;确定针对所述至少两个目标索引位置的预设采样概率;根据所述目标预测采样概率以及所述预设采样概率,计算每个目标索引位置对应的选取参数;从所述选取参数中确定满足所述预设选取阈值的目标选取参数,并将所述目标选取参数对应的所述目标索引位置确定为被选取的目标索引位置。9.根据权利要求1所述的数据采样方法,还包括:基于所述目标数据表为所述预测模型确定对应的随机索引位置;根据所述随机索引位置,利用预测模型获得所述随机索引位置对应的初始预测采样概率,其中,所述预测模型基于样本对训练得到,所述样本对包括样本索引位置以及所述样本索引位置对应的样本预测采样概率;基于所述初始预测采样概率从所述随机索引位置中确定目标随机索引位置,并对所述目标随机索引位置处的待采样数据进行采样,获得模型优化数据;基于所述模型优化数据对所述预测模型进行优化,获得优化后的预测模型。10.根据权利要求9所述的数据采样方法,所述基于所述目标数据表为所述预测模型确定对应的随机索引位置,包括:确定所述数据采样请求对应的数据采样资源;确定针对所述数据采样请求的预设处理规则,以及所述预设处理规则对应的处理参数;在确定所述数据采样资源不为空,且所述处理参数不满足预设处理规则的情况下,基于所述目标数据表的索引范围,为所述预测模型确定对应的随机索引位置。11.根据权利要求2所述的数据采样方法,所述样本数据表为所述目标数据表,或者所述目标数据表的子集。12.根据权利要求1所述的数据采样方法,所述基于所述目标预测采样概率,对所述目标索引位置处的待采样数据进行采样,获得目标数据之后,还包括:基于所述目标数据构建所述目标数据表对应的统计信息。
13.一种计算设备,包括:存储器和处理器;所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至12任意一项所述数据采样方法的步骤。14.一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至12任意一项所述数据采样方法的步骤。
技术总结本说明书实施例提供数据采样方法,其中所述数据采样方法包括:接收针对目标数据表的数据采样请求,其中,所述数据采样请求中携带有目标索引位置;根据所述目标索引位置,利用预测模型获得所述目标索引位置对应的目标预测采样概率,其中,所述预测模型基于样本对训练得到,所述样本对包括样本索引位置以及所述样本索引位置对应的样本预测采样概率;基于所述目标预测采样概率,对所述目标索引位置处的待采样数据进行采样,获得目标数据,从而显著的提高采样效率以及采样准确性。提高采样效率以及采样准确性。提高采样效率以及采样准确性。
技术研发人员:何晓 谭剑 吴斌 李飞飞 张新平 梁高中
受保护的技术使用者:阿里云计算有限公司
技术研发日:2022.06.20
技术公布日:2022/11/1