一种用于大数据随机抽样的方法和系统的制作方法_2

文档序号:8905285阅读:来源:国知局
的样本数量(即需要抽样1000个样本),计算出一个随机数(第一随机数)(如步骤S402)。具体计算方法可以是:先用100万除以1000 (即需要抽样1000个样本),得到1000,然后随机产生一个小于等于1000的整数,假设随机产生的随机数是56 (即第一随机数为56)。在计算出该第一随机数后,然后通过数据库的范围查询(根据主键的范围查询),把随机到的第6个组的数据进行逐一扫描(步骤S403),每扫一条样本数据出来,再随机产生另一个小于等于1000(100万除以1000(即需要抽样1000个样本)得到的)的整数(第二随机数)(步骤S404),如果第二随机数等于之前生成的第一随机数(即56)(步骤S405中是),则抽取该样本数据记录(步骤S406)。以此类推,直到抽样出所有数据记录(步骤S407)。
[0038]以上所描述的根据本公开的实施例的数据库中的随机抽样方法中的分组步骤和随机抽样步骤都可以通过HBase的协处理器来完成。协处理器是被放到HBase的服务器端的一段程序,其在服务器端接收客户端的调用。程序中的处理逻辑可以完全按照需求来实现。上述随机抽样方法可以实现为处于HBase的服务器端的程序,其完成扫描和抽样的过程,然后将结果返回给客户端。通过这种方式,可以减少服务器端和客户端之间的网络交互量。
[0039]本领域技术人员应当理解,以上实施例中的数据库不限于HBase,而可以是本领域中的其他任意数据库。以上实施例中的数据库中的随机抽样方法中的随机抽样步骤不限于以上结合图4所描述的对特定组内的随机抽样方法,而可以是本领域常用的任意随机抽样方法。以上实施例中的计算一个随机数(第一随机数)的计算方法不限于以上所描述的计算方法,而可以是本领域常用的产生小于等于多个记录的数量除以要抽取的记录的数量的任意方法。
[0040]图5是示出了根据本公开的实施例的一种用于数据库中的随机抽样系统。随机抽样系统501包括分组装置502和随机抽取装置503。分组装置502被配置为:将多个记录分为多个组。随机抽取装置503被配置为:随机抽取多个组中的一个组,并在所随机抽取的一个组中,随机抽取要抽取数量的记录。
[0041 ] 在一个实施例中,多个组中的每一个组内记录的数量是相等的。
[0042]在一个实施例中,分组装置502还被配置为:为多个组中的每一个组中的特定记录创建索引。
[0043]在一个实施例中,特定记录是多个组中的每一个组中的第一个记录。
[0044]在一个实施例中,创建索引包括将索引存放在数据库。
[0045]在一个实施例中,创建索引的周期是根据任务执行的周期确定的。
[0046]在一个实施例中,随机抽取装置被配置为:基于要抽取的记录的数量,产生第一随机数;对所随机抽取的一个或多个组中的数据进行逐一扫描;对于每一个所扫描的数据,基于要抽取的记录的数量,产生第二随机数;如果第一随机数等于第二随机数,则抽取记录。
[0047]在一个实施例中,基于要抽取的记录的数量产生第一随机数还基于多个记录的数量;基于要抽取的记录的数量产生第二随机数还基于多个记录的数量。
[0048]在一个实施例中,基于要抽取的记录的数量和多个记录的数量产生第一随机数是随机产生小于等于多个记录的数量除以要抽取的记录的数量的第一随机数;基于要抽取的记录的数量和多个记录的数量产生第二随机数是随机产生小于等于多个记录的数量除以要抽取的记录的数量的第二随机数。
[0049]通过本公开的各种实施例,能达到不用每次都扫描全部样本数据,而只有创建索引的时候需要全部扫描一次。创建索引可以根据需要按周期执行。以后每次随机抽样都是某个组中进行,这样提高了响应速度,并且随机到各个组的概率是相等的。然后根据需要抽取的样本数量,通过随机函数匹配的方法来进行随机抽取,这种抽取方法使每个样本被抽样的概率也是相等的,从而实现大数据样本调查中的样本抽样的随机性。
[0050]根据本发明的第三方面,提供了一种计算机可读存储介质,计算机可读存储介质包括由处理器执行的指令,指令被处理器执行以使处理器实现根据第一方面中的方法。
[0051]已经描述了本公开的多个实施例。然而,将理解的是,在不脱离本公开的精神和范围的前提下,可以作出多种修改。因此,其他实施例落入所附权利要求的范围中。
[0052]类似地,尽管以特定顺序在附图中描述操作,这不应当被理解为要求以所示特定顺序或以连续的顺序执行这些操作,或执行所有操作,以实现期望的结果。在特定情况下,多任务和并行处理可以是有益的。此外,上述实现中的多个系统组件的分离不应被理解为在所有实现中都需要这种分离,并且应当理解的是,所描述的程序组件和系统通常可以集成到单个软件产品中或封装到多个软件产品中。
[0053]此外,在不脱离本公开的范围的前提下,在多种实现中描述和阐述为分立或分离的技术、系统、子系统和方法可以与其他系统、模块、技术或方法合并或集成。示出为或讨论为相互耦合的或相互直接耦合或通信的其他项目可以通过某一接口、设备或中间组件(电子地、机械地或以其他方式)间接耦合或通信。本领域技术人员可确定改变、替换和变更的其他示例,并可以在不脱离本文公开的精神和范围的前提下,作出改变、替换和变更的其他示例。
[0054]尽管以上详细描述已经示出、描述并指出应用于多种实现的本公开的基本新颖特征,但是将理解的是,本领域技术人员可以在不脱离本公开的意图的前提下,在系统的形式和细节中作出多种省略、替换和改变。此外,方法步骤在权利要求中出现的顺序并不暗示方法步骤的顺序。
【主权项】
1.一种数据库中的随机抽样方法,所述方法包括以下步骤: 步骤a:将多个记录分为多个组; 步骤b:随机抽取所述多个组中的一个或多个组;以及 步骤c:在所随机抽取的所述一个或多个组中,随机抽取要抽取数量的记录。2.根据权利要求1所述的方法,其中,所述多个组中的每一个组内记录的数量是相等的。3.根据权利要求1或2所述的方法,其中,步骤a还包括:为所述多个组中的每一个组中的特定记录创建索引。4.根据权利要求3所述的方法,其中,所述特定记录是所述多个组中的每一个组中的第一个记录。5.根据权利要求3所述的方法,其中,创建索引包括将所述索引存放在数据库。6.根据权利要求3所述的方法,其中,创建所述索引的周期是根据任务执行的周期确定的。7.根据权利要求1所述的方法,其中,步骤c还包括:基于要抽取的记录的数量,产生第一随机数;对所随机抽取的所述一个或多个组中的数据进行逐一扫描;对于每一个所扫描的数据,基于要抽取的记录的数量,产生第二随机数;如果所述第一随机数等于所述第二随机数,则抽取所述记录。8.根据权利要求7所述的方法,其中,基于要抽取的记录的数量产生第一随机数还基于所述多个记录的数量;基于要抽取的记录的数量产生第二随机数还基于所述多个记录的数量。9.根据权利要求8所述的方法,其中,基于所述要抽取的记录的数量和所述多个记录的数量产生第一随机数是随机产生小于等于所述多个记录的数量除以要抽取的记录的数量的第一随机数;基于所述要抽取的记录的数量和所述多个记录的数量产生第二随机数是随机产生小于等于所述多个记录的数量除以要抽取的记录的数量的第二随机数。10.一种用于数据库中的随机抽样系统,所述系统包括: 分组装置,被配置为:将多个记录分为多个组; 随机抽取装置,被配置为:随机抽取所述多个组中的一个或多个组,并在所随机抽取的所述一个或多个组中,随机抽取要抽取数量的记录。11.根据权利要求10所述的系统,其中,所述多个组中的每一个组内记录的数量是相等的O12.根据权利要求10或11所述的系统,其中,所述分组装置还被配置为:为所述多个组中的每一个组中的特定记录创建索引。13.根据权利要求12所述的系统,其中,所述特定记录是所述多个组中的每一个组中的第一个记录。14.根据权利要求12所述的系统,其中,创建索引包括将所述索引存放在数据库。15.根据权利要求12所述的系统,其中,创建所述索引的周期是根据任务执行的周期确定的。16.根据权利要求10所述的系统,其中,所述随机抽取装置被配置为:基于要抽取的记录的数量,产生第一随机数;对所随机抽取的所述一个或多个组中的数据进行逐一扫描;对于每一个所扫描的数据,基于要抽取的记录的数量,产生第二随机数;如果所述第一随机数等于所述第二随机数,则抽取所述记录。17.根据权利要求16所述的系统,其中,基于要抽取的记录的数量产生第一随机数还基于所述多个记录的数量;基于要抽取的记录的数量产生第二随机数还基于所述多个记录的数量。18.根据权利要求17所述的系统,其中,基于所述要抽取的记录的数量和所述多个记录的数量产生第一随机数是随机产生小于等于所述多个记录的数量除以要抽取的记录的数量的第一随机数;基于所述要抽取的记录的数量和所述多个记录的数量产生第二随机数是随机产生小于等于所述多个记录的数量除以要抽取的记录的数量的第二随机数。19.一种计算机可读存储介质,所述计算机可读存储介质包括由处理器执行的指令,所述指令被处理器执行以使所述处理器实现根据权利要求1?9中任一项所述的方法。
【专利摘要】本申请提供了一种数据库中的随机抽样方法,该方法包括以下步骤:将多个记录分为多个组;随机抽取该多个组中的一个或多个组;以及在所随机抽取的该一个或多个组中,随机抽取要抽取数量的记录。此外,本申请还提供了一种用于数据库中的随机抽样系统和计算机可读存储介质。
【IPC分类】G06F17/30
【公开号】CN104881475
【申请号】CN201510294368
【发明人】唐平, 梁竹, 肖丹, 王威
【申请人】北京京东尚科信息技术有限公司, 北京京东世纪贸易有限公司
【公开日】2015年9月2日
【申请日】2015年6月2日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1