数据单元快速分段的方法、系统、设备及存储介质与流程

文档序号:13282262阅读:282来源:国知局
数据单元快速分段的方法、系统、设备及存储介质与流程

本发明涉及数据管理领域,具体地说,涉及数据单元快速分段的方法、系统、设备及存储介质。



背景技术:

目前携程用户有超过8亿的注册用户,在做征信模型时,需要计算个体用户在整体用户中的水平,如个体用户在大住宿、大交通、度假等领域消费金额排名、订单数量排名;个体用户信用打分在总体打分人群中的排名。这部分信息无论是对外指标解读还是模型变量构建都有非常重要的作用,由于涉及了个体与整体的比较,数据量小可以进行全局排序,当数据量巨大,进行hadoop时(由apache基金会所开发的分布式系统基础架构)很容易出现oom问题(outofmemory,内存溢出),导致全局排序失败。要得到精确的排序需要大量资源,实现成本很高,操作性差。尤其是在小型服务器上对海量数据单元进行排序、定位、分段等操作时,内存和cpu经常会超负荷而造成宕机,严重影响实际整个系统的运行。

并且,在目前的基于大数据的用户画像、送信推送等方案中,更可能会使用到多个维度的属性参数的排序、比较等等,更加看中得到结果的速度要快,结果的精度可以其次,这样才能进行更负责的大数据运作。

因此,本发明提供了一种数据单元快速分段的方法、系统、设备及存储介质。



技术实现要素:

针对现有技术中的问题,本发明的目的在于提供数据单元快速分段的方法、系统、设备及存储介质,避免了对每个数据单元进行精确排序,从而大大减少了运算量,避免了数据溢出的问题,同时加快了运算速度。

本发明的实施例提供一种数据单元快速分段的方法,用于将待分段的数据单元中的表示属性参数的目标字段在海量数据单元中进行快速分段,包括以下步骤:

s101、将海量数据单元随机分割为多个数据小组,每个所述数据单元包括表述不同属性参数的多个字段;

s102、随机挑选每个数据小组中的多个数据单元;

s103、分别获得每个数据小组中被选中的所述多个数据单元与所述目标字段表示相同属性参数的字段的平均值,并将所述平均值作为所述数据小组的目标字段参考值;

s104、根据所述目标字段参考值的大小对所有所述数据小组进行排序;

s105、根据预设的数据分段方向和分段比例关系,结合排序结果,对所述数据小组进行数据分段;

s106、将相邻的两个数据分段的两个相邻接的所述数据小组的目标字段参考值的平均值作为数据分段的分割点;以及

s107、当待分段的数据单元的位于字段的数值位于相邻的两个所述数据分段的分割点之间,则所述待分段的数据单元的目标字段归属于所述两个数据分段的分割点之间的数据分段之中。

优选地,每个数据小组包含的数据单元的数量相等。

优选地,所述步骤s102中,所述被挑选的数据单元占所述每个数据小组中数据单元的10%至40%。

优选地,所述被挑选的数据单元占所述每个数据小组中数据单元的20%至30%。

优选地,所述步骤s105中,所述数据分段方向是自大到小,所述数据分段比例关系是25%、25%、25%、25%,则按照排序的顺序,对所述数据小组进行数据分段,第一数据分段占据目标字段参考值自大到小排序中的最前的25%的位次的所述数据小组;

第二数据分段占据目标字段参考值自大到小排序中位于26%至50%的位次的所述数据小组;

第三数据分段占据目标字段参考值自大到小排序中位于51%至75%的位次的所述数据小组;以及

第四数据分段占据目标字段参考值自大到小排序中最后的25%的位次的所述数据小组。

优选地,所述步骤s105中,所述数据分段方向是自大到小,所述数据分段比例关系是5%、10%、20%、40%、25,则按照排序的顺序,对所述数据小组进行数据分段,第一数据分段占据目标字段参考值自大到小排序中的最前的5%的位次的所述数据小组;

第二数据分段占据目标字段参考值自大到小排序中位于6%至15%的位次的所述数据小组;

第三数据分段占据目标字段参考值自大到小排序中位于16%至35%的位次的所述数据小组;

第四数据分段占据目标字段参考值自大到小排序中位于36%至75%的位次的所述数据小组;

第五数据分段占据目标字段参考值自大到小排序中最后的25%的位次的所述数据小组。

优选地,所述步骤s106替换为根据预设的数据分段的比例关系,结合排序结果,将相邻的两个数据分段的两个邻接的所述数据小组的目标字段参考值中的任意一个作为数据分段的分割点。

优选地,所述属性参数是用户的年龄、年收入、访问网站次数、历史下单次数、学历参考值、预定酒店次数、预订旅游行程次数、预订机票次数、预定游轮次数、网购月消费金额中的一种。

优选地,每个所述数据分段预存有至少一对应的推送信息;

所述步骤s107之后还包括步骤s108,向所述待分段的数据单元的用户推送其所属数据分段的推送信息。

本发明的实施例还提供一种数据单元快速分段的系统,用于实现上述的数据单元快速分段的方法,所述数据单元快速分段的系统包括:

分割建组模块,将海量数据单元随机分割为多个数据小组,每个所述数据单元包括表述不同属性参数的多个字段;

数据单元挑选模块,随机挑选每个数据小组中的多个数据单元;

目标字段参考值获得模块,分别获得每个数据小组中被选中的所述多个数据单元与所述目标字段表示相同属性参数的字段的平均值,并将所述平均值作为所述数据小组的目标字段参考值;

小组排序模块,根据所述目标字段参考值的大小对所有所述数据小组进行排序;

小组分段模块,根据预设的数据分段方向和分段比例关系,结合排序结果,对所述数据小组进行数据分段;

数据分段的分割点获得模块,将相邻的两个数据分段的两个相邻接的所述数据小组的目标字段参考值的平均值作为数据分段的分割点;以及

数据单元分段模块,当待分段的数据单元的位于字段的数值位于相邻的两个所述数据分段的分割点之间,则所述待分段的数据单元的目标字段归属于所述两个数据分段的分割点之间的数据分段之中。

本发明的实施例还提供一种数据单元快速分段的设备,包括:

处理器;

存储器,其中存储有所述处理器的可执行指令;

其中,所述处理器配置为经由执行所述可执行指令来执行上述数据单元快速分段的方法的步骤。

本发明的实施例还提供一种计算机可读存储介质,用于存储程序,所述程序被执行时实现上述数据单元快速分段的方法的步骤。

本发明的数据单元快速分段的方法、系统、设备及存储介质通过数据分组排序来获得数据分段的分割点,充分利用了数据常态分布的原理,忽略每个数据小组的准确性,而是通过同一方法操作海量的数据小组,来保证数据分段的准确性。同时,由于本发明中避免了对每个数据单元进行精确排序,从而大大减少了运算量,避免了数据溢出的问题,并且大大提高了运算速度,更符合大数据运作的运行要求。

本发明在海量数据上计算分位数的速度及精度均可控,分位数参数灵活可调节,便于实现自动化部署,该方法避免了大数据全局排序下的内存溢出问题,且实现了较准确的数据分段。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显。

图1是本发明的数据单元快速分段的方法的流程图;

图2是本发明的数据单元快速分段的系统的模块示意图;

图3是本发明的数据单元快速分段的设备的结构示意图;以及

图4是本发明一实施例的计算机可读存储介质的结构示意图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式。相反,提供这些实施方式使得本发明将全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的结构,因而将省略对它们的重复描述。

图1是本发明的数据单元快速分段的方法的流程图。如图1所示,本发明的实施例提供一种数据单元快速分段的方法,用于将待分段的数据单元中的表示属性参数的目标字段在海量数据单元中进行快速分段,包括以下步骤:

s101、将海量数据单元随机分割为多个数据小组,每个所述数据单元包括表述不同属性参数的多个字段,每个数据小组包含的数据单元的数量相等。所述属性参数是用户的年龄、年收入、访问网站次数、历史下单次数、学历参考值、预定酒店次数、预订旅游行程次数、预订机票次数、预定游轮次数、网购月消费金额中的一种。

s102、随机挑选每个数据小组中的多个数据单元。在一个优选实施例中,所述步骤s102中,所述被挑选的数据单元占所述每个数据小组中数据单元的10%至40%。显然,如果被挑选的数据单元占所述每个数据小组中数据单元越大,则精度越高、速度越慢;如果被挑选的数据单元占所述每个数据小组中数据单元越小,则精度越地、速度越快。为了兼顾速度和精度,所述被挑选的数据单元占所述每个数据小组中数据单元的20%至30%。

s103、分别获得每个数据小组中被选中的所述多个数据单元与所述目标字段表示相同属性参数的字段的平均值,并将所述平均值作为所述数据小组的目标字段参考值。

s104、根据所述目标字段参考值的大小对所有所述数据小组进行排序。

s105、根据预设的数据分段方向和分段比例关系,结合排序结果,对所述数据小组进行数据分段。在一个实施例中,所述步骤s105中,所述数据分段方向是自大到小,所述数据分段比例关系是25%、25%、25%、25%,则按照排序的顺序,对所述数据小组进行数据分段,第一数据分段占据目标字段参考值自大到小排序中的最前的25%的位次的所述数据小组。第二数据分段占据目标字段参考值自大到小排序中位于26%至50%的位次的所述数据小组。第三数据分段占据目标字段参考值自大到小排序中位于51%至75%的位次的所述数据小组。以及第四数据分段占据目标字段参考值自大到小排序中最后的25%的位次的所述数据小组,但不以此为限。在另一个实施例中,所述步骤s105中,所述数据分段方向是自大到小,所述数据分段比例关系是5%、10%、20%、40%、25,则按照排序的顺序,对所述数据小组进行数据分段,第一数据分段占据目标字段参考值自大到小排序中的最前的5%的位次的所述数据小组。第二数据分段占据目标字段参考值自大到小排序中位于6%至15%的位次的所述数据小组。第三数据分段占据目标字段参考值自大到小排序中位于16%至35%的位次的所述数据小组。第四数据分段占据目标字段参考值自大到小排序中位于36%至75%的位次的所述数据小组。第五数据分段占据目标字段参考值自大到小排序中最后的25%的位次的所述数据小组。本发明在海量数据上计算分位数的速度及精度均可控,分位数参数灵活可调节,便于实现自动化部署,该方法避免了大数据全局排序下的内存溢出问题,且实现了较准确的数据分段。

s106、将相邻的两个数据分段的两个相邻接的所述数据小组的目标字段参考值的平均值作为数据分段的分割点。在一个实施例中,所述步骤s106替换为根据预设的数据分段的比例关系,结合排序结果,将相邻的两个数据分段的两个邻接的所述数据小组的目标字段参考值中的任意一个作为数据分段的分割点,以便减少运算平均数的计算步骤,进一步提高速度。

s107、当待分段的数据单元的位于字段的数值位于相邻的两个所述数据分段的分割点之间,则所述待分段的数据单元的目标字段归属于所述两个数据分段的分割点之间的数据分段之中。每个所述数据分段预存有至少一对应的推送信息。

步骤s108,向所述待分段的数据单元的用户推送其所属数据分段的推送信息。

本发明的一种实施方式如下:

例如,为了调查用户的消费能力,需要在携程的数据库的9亿用户中,对用户在携程预订酒店次数进行分段。用户预订酒店次数各不相同,有些用户已经在携程预订酒店次数达到200次,有些可能3-5次,有一些可能是0次。现有技术的做法就是要把这9亿个数据从大到小进行排序之后,才能找到分位数然后进行数据分段,计算量极大,很多小型服务器根本难以操作和实现。

本发明中,每个用户在携程数据库的数据作为一个数据单元,则有9亿个数据单元。将9亿用户的数据单元随机分割为一万个数据小组,则,每个数据小组中包括了9万个数据单元。每个所述数据单元包括表述不同属性参数的多个字段。所述属性参数是用户的年龄、年收入、访问网站次数、历史下单次数、学历参考值、预定酒店次数、预订旅游行程次数、预订机票次数、预定游轮次数、网购月消费金额中的一种。

随机在每个数据小组中挑选100个数据单元。仅挑选了100个数据单元所以后续的计算量会大大减小,极大地缩小了数据样本;而且又是随机挑选的,并对数据准确性的影响不大。

分别获得每个数据小组中被选中的所述多个数据单元与所述目标字段表示相同属性参数的字段的平均值,并将所述平均值作为所述数据小组的目标字段参考值。有一些小组的目标字段参考值(该小组内的随机100个数据单元在携程预订酒店次数的平均值)是2次,有一些小组的目标字段参考值是8次,有一些小组的目标字段参考值是4次等等。大致可以得到如下的字段【8,2,3,4,6,2,3,5,4,4,6……1,4,6】,不以此为限。

根据所述目标字段参考值的大小对所有所述数据小组进行排序。显然,会得到以下的排列【8,6,6,6,6,6,6……1,0】,不以此为限。

根据预设的数据分段方向和分段比例关系,结合排序结果,对所述数据小组进行数据分段;所述数据分段方向是自大到小,所述数据分段比例关系是5%、10%、20%、40%、25,则按照排序的顺序,对所述数据小组进行数据分段,第一数据分段占据目标字段参考值自大到小排序中的最前的5%的位次的所述数据小组。第二数据分段占据目标字段参考值自大到小排序中位于6%至15%的位次的所述数据小组。第三数据分段占据目标字段参考值自大到小排序中位于16%至35%的位次的所述数据小组。第四数据分段占据目标字段参考值自大到小排序中位于36%至75%的位次的所述数据小组。第五数据分段占据目标字段参考值自大到小排序中最后的25%的位次的所述数据小组。

将相邻的两个数据分段的两个相邻接的所述数据小组的目标字段参考值的平均值作为数据分段的分割点,

则在所述数据分段方向是自大到小的排序中0%-5%的第一数据分段与6%-15%的第二数据分段之间的数据分段的分割点是7.2次。

则在所述数据分段方向是自大到小的排序中6%-15%的第二数据分段与16%-35%的第三数据分段之间的数据分段的分割点是4.9次。

则在所述数据分段方向是自大到小的排序中16%-35%的第三数据分段与36%至75%的第四数据分段之间的数据分段的分割点是2.1次。

则在所述数据分段方向是自大到小的排序中36%至75%的第四数据分段与76%至100%的第五数据分段之间的数据分段的分割点是0.8次。

至此完成了对携程的数据库的9亿用户在携程预订酒店次数的数据分段。

当待分段的数据单元的位于字段的数值位于相邻的两个所述数据分段的分割点之间,则所述待分段的数据单元的目标字段归属于所述两个数据分段的分割点之间的数据分段之中。

例如,一个用户在携程预订酒店次数为3次,则他属于第三数据分段;另一个用户在携程预订酒店次数为0次,则他属于第五数据分段;另一个用户在携程预订酒店次数为12次,则他属于第一数据分段;另一个用户在携程预订酒店次数为7次,则他属于第四数据分段,不以此为限。后续可以根据用户所在的不同数据分段推送不同的酒店广告或是旅游产品广告,可以向第一数据分段中用户推送超五星级酒店的广告,向第二数据分段中用户推送五星级酒店的广告,向第三数据分段中用户推送四星级酒店的广告,向第四数据分段中用户推送三星级酒店的广告,不向第五数据分段中用户推送广告,以此更合理地控制广告投放效率,获得更好的效果。

本发明的数据单元快速分段的方法通过数据分组排序来获得数据分段的分割点,充分利用了数据常态分布的原理,忽略每个数据小组的准确性,而是通过同一方法操作海量的数据小组,来保证数据分段的准确性。同时,由于本发明中避免了对每个数据单元进行精确排序,从而大大减少了运算量,避免了数据溢出的问题,并且大大提高了运算速度,更符合大数据运作的运行要求。

图2是本发明的数据单元快速分段的系统的模块示意图。如图2所示,本发明的实施例还提供一种数据单元快速分段的系统,用于实现上述的数据单元快速分段的方法,所述数据单元快速分段的系统2包括:

分割建组模块21,将海量数据单元随机分割为多个数据小组,每个所述数据单元包括表述不同属性参数的多个字段。

数据单元挑选模块22,随机挑选每个数据小组中的多个数据单元。

目标字段参考值获得模块23,分别获得每个数据小组中被选中的所述多个数据单元与所述目标字段表示相同属性参数的字段的平均值,并将所述平均值作为所述数据小组的目标字段参考值。

小组排序模块24,根据所述目标字段参考值的大小对所有所述数据小组进行排序。

小组分段模块25,根据预设的数据分段方向和分段比例关系,结合排序结果,对所述数据小组进行数据分段。

数据分段的分割点获得模块26,将相邻的两个数据分段的两个相邻接的所述数据小组的目标字段参考值的平均值作为数据分段的分割点。以及

数据单元分段模块27,当待分段的数据单元的位于字段的数值位于相邻的两个所述数据分段的分割点之间,则所述待分段的数据单元的目标字段归属于所述两个数据分段的分割点之间的数据分段之中。

本发明的数据单元快速分段的系统通过数据分组排序来获得数据分段的分割点,充分利用了数据常态分布的原理,忽略每个数据小组的准确性,而是通过同一方法操作海量的数据小组,来保证数据分段的准确性。同时,由于本发明中避免了对每个数据单元进行精确排序,从而大大减少了运算量,避免了数据溢出的问题,并且大大提高了运算速度,更符合大数据运作的运行要求。

本发明实施例还提供一种数据单元快速分段的设备,包括处理器。存储器,其中存储有处理器的可执行指令。其中,处理器配置为经由执行可执行指令来执行的数据单元快速分段的方法的步骤。

如上,该实施例通过数据分组排序来获得数据分段的分割点,充分利用了数据常态分布的原理,忽略每个数据小组的准确性,而是通过同一方法操作海量的数据小组,来保证数据分段的准确性。同时,由于本发明中避免了对每个数据单元进行精确排序,从而大大减少了运算量,避免了数据溢出的问题,并且大大提高了运算速度,更符合大数据运作的运行要求。

所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“平台”。

图3是本发明的数据单元快速分段的设备的结构示意图。下面参照图3来描述根据本发明的这种实施方式的电子设备600。图3显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图3所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同平台组件(包括存储单元620和处理单元610)的总线630、显示单元640等。

其中,存储单元存储有程序代码,程序代码可以被处理单元610执行,使得处理单元610执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,处理单元610可以执行如图1中所示的步骤。

存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(rom)6203。

存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。

电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储平台等。

本发明实施例还提供一种计算机可读存储介质,用于存储程序,程序被执行时实现的数据单元快速分段的方法的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述电子处方流转处理方法部分中描述的根据本发明各种示例性实施方式的步骤。

如上所示,该实施例的计算机可读存储介质的程序在执行时,通过数据分组排序来获得数据分段的分割点,充分利用了数据常态分布的原理,忽略每个数据小组的准确性,而是通过同一方法操作海量的数据小组,来保证数据分段的准确性。同时,由于本发明中避免了对每个数据单元进行精确排序,从而大大减少了运算量,避免了数据溢出的问题,并且大大提高了运算速度,更符合大数据运作的运行要求。

图4是本发明的计算机可读存储介质的结构示意图。参考图4所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

综上,本发明的数据单元快速分段的方法、系统、设备及存储介质在海量数据上计算分位数的速度及精度均可控,分位数参数灵活可调节,便于实现自动化部署,该方法避免了大数据全局排序下的内存溢出问题,且实现了较准确的数据分段。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1