数据处理方法及数据处理装置与流程

文档序号:11582900阅读:178来源:国知局
数据处理方法及数据处理装置与流程

本发明属于数据处理领域,尤其涉及一种数据处理方法及数据处理装置。



背景技术:

随着大数据时代的来临,各类型的数据呈井喷式增长,这为数据分析行业带来了前所未有的机遇和挑战。其中以广告行业为例,海量号码提取,即如何利用海量数据来选择目标用户群,并将广告信息推送至目标用户群对应的联系号码(也称为),已成为热门研究方向之一。

关于海量号码提取,目前主要的解决方案是采用分布式框架来实现。常见的比如hadoop(大数据框架)和spark(大数据框架),通过结构化查询语言(structuredquerylanguage,sql)或映射规约(mapreduce,mr)来实现。

然而,由于hadoop和spark自身的设计问题,在处理海量数据时,具有执行速度较慢的弊端。



技术实现要素:

本发明的目的在于提供一种数据处理方法及数据处理装置,旨在提高海量号码提取时的处理速度。

为解决上述技术问题,本发明实施例提供以下技术方案:

一种数据处理方法,包括:

接收数据包提取指令,所述数据包提取指令中包括至少两组用户标签、和所述用户标签之间的关系操作;

根据每一用户标签从数据列表中筛选出对应的标签文件,所述标签文件包括所述用户标签对应的用户号码;

将所述标签文件中的用户号码分成多个号码段;以及

根据所述关系操作,对同一号码段中的用户号码进行操作,以生成命中数据包。

为解决上述技术问题,本发明实施例还提供以下技术方案:

一种数据处理装置,包括:

接收模块,用于接收数据包提取指令,所述数据包提取指令中包括至少两组用户标签、和所述用户标签之间的关系操作;

标签模块,用于根据每一用户标签从数据列表中筛选出对应的标签文件,所述标签文件包括所述用户标签对应的用户号码;

索引模块,用于将所述标签文件中的用户号码分成多个号码段;以及

关系模块,用于根据所述关系操作,对同一号码段中的用户号码进行操作,以生成命中数据包。

本发明实施例,首先接收数据包提取指令,其中包括至少两组用户标签、和用户标签之间的关系操作;然后根据每一用户标签生成对应的标签文件,其中包括用户标签对应的用户号码;再将所述标签文件中的用户号码分成多个号码段;最后对同一号码段中的用户号码执行所述关系操作,以生成命中数据包。即,本发明通过对标签文件建立索引文件,并对索引文件进行关系操作,进而降低操作的时间复杂度,并支持多线程或多进程共同执行,更进一步加快处理速度。

附图说明

下面结合附图,通过对本发明的具体实施方式详细描述,将使本发明的技术方案及其它有益效果显而易见。

图1是本发明实施例提供的数据处理方法及处理装置的工作原理示意图;

图2是本发明实施例提供的数据处理方法的流程示意图;

图3为本发明实施例提供的数据处理方法的另一流程示意图;

图4是本发明实施例提供的建立索引文件的步骤细化示意图;

图5是本发明实施例提供的索引文件示意图;

图6是本发明实施例提供的数据处理装置的结构示意图;

图7是本发明实施例提供的数据处理装置的另一结构示意图;

图8是本发明实施例提供的数据处理方法及处理装置的具体应用示例图;

图9是本发明实施例提供的服务器的结构示意图。

具体实施方式

请参照图式,其中相同的组件符号代表相同的组件,本发明的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本发明具体实施例,其不应被视为限制本发明未在此详述的其它具体实施例。

在以下的说明中,本发明的具体实施例将参考由一部或多部计算机所执行的步骤及符号来说明,除非另有述明。因此,这些步骤及操作将有数次提到由计算机执行,本文所指的计算机执行包括了由代表了以一结构化型式中的数据的电子信号的计算机处理单元的操作。此操作转换该数据或将其维持在该计算机的内存系统中的位置处,其可重新配置或另外以本领域技术人员所熟知的方式来改变该计算机的运作。该数据所维持的数据结构为该内存的实体位置,其具有由该数据格式所定义的特定特性。但是,本发明原理以上述文字来说明,其并不代表为一种限制,本领域技术人员将可了解到以下所述的多种步骤及操作亦可实施在硬件当中。

本文所使用的术语「模块」、「单元」可看做为在该运算系统上执行的软件对象。本文所述的不同组件、模块、引擎及服务可看做为在该运算系统上的实施对象。而本文所述的装置及方法优选的以软件的方式进行实施,当然也可在硬件上进行实施,均在本发明保护范围之内。

参见图1,图1为本发明实施例所提供的数据处理方法及数据处理装置的工作原理示意图。

所述数据处理方法及数据处理装置,应用于服务器中。所述服务器包括:一个或者一个以上处理核心的处理器、一个或一个以上计算机可读存储介质的存储器、射频(radiofrequency,rf)电路、短距离无线传输(wifi)模块、电源、输入单元、以及显示单元等部件。本领域技术人员可以理解,上述服务器结构并不构成对服务器的限定,可以包括比上述更多或更少的部件,或者组合某些部件,或者不同的部件布置。所述服务器用于执行如下指令:

首先,获取产品或服务的数据需求11。

所述数据需求,是由产品或服务的特性所决定的,比如护肤品a,具有保湿功效,但无美白功效;再如网络游戏b,画面精美,且每局耗时短。

然后,根据数据需求11生成用户画像12。

用户画像12一般是隐含在数据需求11中的,此处进行梳理。比如,所述护肤品a在推广时,其目标客户通常是20-25岁之间的女性,收入较低,较少参加户外运动或较少接触电脑。再如,所述网络游戏b在推广时,其目标客户通常是25-35岁之间的男性,收入偏高,无车,利用上下班的碎片时间开局。

再将用户画像12转换成数据包提取指令13。其转换过程如下:

(1)从数据库14的数据列表141中获取用户属性;

用户属性,包括但不限于:年龄(0-19岁、20-25岁、26-35岁、36-50岁、51-100岁、未知);性别(男、女、未知);收入区间(高、中、低,此处的高中低可根据国家统计局的基准数据而比对而成);兴趣爱好(户外、室内,也可以根据数据需求进行调整,比如,危险、安全);以及职业类型、婚否、是否有小孩、学历等。

(2)将用户画像12与用户属性进行匹配,以生成数据包提取指令13。

所述数据包提取指令13中包括至少两组用户标签131、和所述用户标签之间的关系操作132。所述关系操作132包括但不限于:交集∩、并集∪、和/或补集c。

以护肤品a为例,其用户画像12为:20-25岁之间的女性,收入较低,较少参加户外运动或较少接触电脑。则对应的数据包提取指令为:年龄:20-25岁,性别:女,收入区间:低,兴趣爱好:户外,职业类型:非文职。且,以上用户标签之间的关系皆为并集。

接着,从数据库14中根据所述数据包提取指令13,匹配生成对应的命中数据包15。

具体而言,包括:接收数据包提取指令13,所述数据包提取指令13中包括至少两组用户标签131、和所述用户标签131之间的关系操作132;根据每一用户标签131从数据库14的数据列表141中筛选出对应的用户号码143,并由所述用户号码143和用户标签131构成对应的的标签文件142;将所述标签文件142中的用户号码143分成多个号码段,并根据每个号码段的起始位置为每一标签文件建立索引文件144;根据所述关系操作132,对同一号码段的各索引文件144进行操作,以生成命中数据包15。

最后,将产品或服务的信息推广至所述命名数据包15中的用户号码。

本发明的如下实施例,主要从数据库14中根据所述数据包提取指令13,匹配生成对应的命中数据包15的步骤进行描述,来展示命中数据包15的快速生成方法。其中,所述命中数据包中的用户号码,包括但不限于:手机号、即时通讯软件的号码(如qq号码、微信号码等)、电子邮箱号、视频网站的注册号等。

请参阅图2,图2是本发明实施例提供的数据处理方法的流程示意图。所述数据处理方法可以包括:

在步骤s201中,接收数据包提取指令,所述数据包提取指令中包括至少两组用户标签、和所述用户标签之间的关系操作。

所述用户标签,是根据具体的用户属性生成的。比如,根据用户的性别属性,生成用户标签:性别男;再如,根据用户的年龄属性,生成用户标签:年龄20-25岁。所述关系操作,包括但不限于:交集、并集、和/或补集。

在步骤s202中,根据每一用户标签从数据列表中筛选出对应的标签文件,所述标签文件包括所述用户标签对应的用户号码。

请同时结合图1,在数据列表141中,对用户标签131所引导的用户号码143进行列存储(decompositionstoragemodel,dsm)。

请同时结合图5,预设列1对应的用户标签131为性别男,列2对应的用户标签131为年龄20-25岁,其中的用户号码143按一定的顺序进行排列,如升序或降序。可以理解的是,若所述用户号码143中出现英文字母、或拼音字母等,则可按照字母的顺序进行排序;若字母与数字混合出现,则预设字母与数字的优先级,比如:1a排在11前,诸如此类。

在步骤s203中,将所述标签文件中的用户号码分成多个号码段。

此外,还可以根据每个号码段的起始位置为每一标签文件建立索引文件。所示索引文件中记录每个号码段的起始位置,若某个号段不存在,则记录为空值null。

如图5所示,其中以列1与列2为例进行展示,其标签文件51为0-99,标签文件52为100-199,标签文件53为200-299,标签文件54为300-399,诸如此类。可以理解的是,所述索引文件144包括标签文件51-54和标签文件(比如列1、列2)的对应关系。

在步骤s204中,根据所述关系操作,对同一号码段的用户号码进行操作,以生成命中数据包。

根据所述关系操作,对所述统一号码段的用户号码进行操作,可以理解为,对统一号码段的各索引文件进行关系操作。所述关系操作,包括但不限于:交集、并集、和/或补集。此处,以并集为例,对图5中列1和列2进行并集操作。在0-99的号码段中,命中的号码包括:null;在100-199的号码段中,命中的号码包括:121,125;在200-299的号码段中,命中的号码包括:null;在300-399的号码段中,命中的号码包括:301,以此类推。

可以理解的是,对每个号码段的命中操作,一般由多线程或多进程同时进行更进一步加快处理速度。

本发明实施例的数据处理方法,通过对标签文件建立索引文件,并对索引文件进行关系操作,进而降低操作的时间复杂度,此时的时间复杂度为o(n),基本上等同于磁盘读取文件的速度,因而提高了海量号码提取时的处理速度。

请参阅图3,图3是本发明实施例提供的数据处理方法的另一流程示意图。所述数据处理方法可以包括:

在步骤s301中,对用户号码及其对应的用户标签进行存储,以生成数据列表。

具体而言,本步骤包括:

(1)处理器获取多个用户号码及其对应的用户标签,其中每一用户号码对应多个用户标签;比如,某一用户的用户号码是131-xxxx-4625,其用户标签为:年龄36-50岁,性别男,收入高,兴趣爱好为户外等。

(2)存储器通过所述用户标签对所述多个用户号码进行列存储,并按照所述用户号码的字符串进行排序,以生成数据列表。

其中,所述列存储是指将所有记录中相同字段的数据进行聚合存储。列存储的优点在于,每个字段的数据聚集存储,在查询时仅需读取少数几个字段,大大减少读取的数据量,可以更好的支持在线分析、数据挖掘等密集型应用。

在本步骤中,对用户标签所引导的用户号码进行列存储,并对涉及的用户号码进行升序或降序排列。具体可参照图5中的列1和列2。此外,若所述用户号码中出现英文字母、或拼音字母等,则可按照字母的顺序进行排序;若字母与数字混合出现,则预设字母与数字的优先级,比如:1a排在11前,{1a,1y,11},诸如此类。

以上,则完成了对数据列表的建立,进而存储在对应的数据库中。

在步骤s302中,获取数据需求,并将数据需求转换成数据包提取指令。

可以理解的是,所述数据需求,是基于待推广的产品或服务的特性而产生的。比如,待推广网络游戏b,其本身的特性是画面精美,每局耗时较短。而用户画像一般是隐含在数据需求中的。

本步骤具体包括:

(1)处理器根据数据需求生成用户画像。比如,画面精美会导致流量大,每局耗时短更适应于碎片时间多的人。因此,上述网络游戏b在推广时,其目标客户更倾向于:25-35岁之间的男性,收入偏高,无车,利用上下班的碎片时间开局。

可以理解的是,上述用户画像的过程仅为示例,除上述推导过程,还应包括抽样、验证等步骤。

(2)处理器将用户画像转换成数据包提取指令。此处,转换过程如下:

首先,从数据列表中获取用户属性,比如,年龄、性别、收入区间、兴趣爱好、职业类型、婚否、是否有小孩、学历等。

然后,将所述用户画像与所述用户属性进行匹配,以生成数据包提取指令。其中,所述数据包提取指令中包括用户标签和关系操作。所述关系操作包括但不限于交集、并集、和/或补集。

以待推广网络游戏b为例,其用户画像为:25-35岁之间的男性,收入较高,较少参加户外运动,多利用上下班的乘车时间通过手机玩网络游戏;对应的数据包提取指令为:年龄:25-35岁,性别:男,收入区间:高,兴趣爱好:室内,是否有车:否。且,以上用户标签之间的关系皆为并集。

在步骤s303中,接收数据包提取指令,其中所述数据包提取指令中包括至少两组用户标签、和所述用户标签之间的关系操作。

在步骤s304中,根据每一用户标签从数据列表中筛选出对应的用户号码,所述用户号码和所述用户标签构成标签文件。

在数据列表中,对用户标签所引导的用户号码进行列存储。如图5中的列1和列2所示,其中存储的相同字段为用户号码,并按一定的顺序进行排列,如升序或降序。若所述号码中出现英文字母、或拼音字母等,则可按照字母的顺序进行排序;若字母与数字混合出现,则预设字母与数字的优先级,比如:1a排在11前,诸如此类。

在步骤s305中,将所述标签文件中的用户号码分成多个号码段,并根据每个号码段的起始位置为每一标签文件建立索引文件。

请参阅图4,图4是本发明实施例提供的建立索引文件的步骤细化示意图。所述建立索引文件的步骤,具体包括:

在步骤s401中,对所述标签文件中的用户号码进行抽样,以生成抽样号码。

可以理解的是,此处一般为按照预设比例对用户号码进行随机抽样,比如,按照2%的比例从10,000个用户号中随机抽取200个作为抽样号码。

在步骤s402中,根据所述抽样号码的分布情况生成多个号码段,任一所述号码段中的抽样号码的数量在预设分布区间内。

具体而言,本步骤包括:

(1)将所述抽样号码平均分段,以生成平均号码段。比如,将上述200个抽样号码分成5段。

(2)统计所述平均号码段中各抽样号码的分布数量。此处,假设5个号码段的分布数量分别为:第一号码段的数量22,第二号码段的数量41,第三号码段的数量39,第四号码段的数量44,和第五号码段的数量54。

(3)判断任一平均号码段中的分布数量是否在预设分布区间内。以预设的分布区间为【35,45】为例,则第一号码段和第五号码段不在预设分布区间中。

(4)当所述分布数量在预设分布区间内时,采用所述平均号码段。可以理解的是,此处若平均号码段可以解决,则优先采用平均号码段,若平均号码无法解决,则按步骤(5)进行划分。

(5)当所述分布数量不在预设分布区间内时,根据抽样号码的分布情况进行调整,以生成多个实际号码段。仍以上述的5个号码段为例,先从第一号码段中选取符合预设分布区间的号码段,再依次类推,直至形成5个号码段。

如此,可通过分层抽样的方式,对号码的量级进行评估,进而生成适宜的号码段。可以理解的是,适宜的号码段所建立的索引文件,可以更好的支援多线程或多进程的数据读取,更高效的利用服务器自身的数据存储、数据读取、和数据计算的能力。

在步骤s403中,获取所述多个号码段的起始位置,并根据所述起始位置对所述标签文件中的用户号码进行分层,并根据分层结果建立所述标签文件对应的索引文件。

请参阅图5,所示本发明实施例提供的索引文件示意图。其中,所示索引文件144中记录每个号码段的起始位置,若某个号段不存在,则记录为空值null。以列1与列2为例,其对应的标签文件51为0-99,标签文件52为100-199,标签文件53为200-299,标签文件54为300-399,诸如此类。

在步骤s306中,根据所述关系操作,对同一号码段的各索引文件进行操作,以生成命中数据包。

具体而言,本步骤包括:

(1)获取所述关系操作,所述关系操作包括但不限于交集、并集、和/或补集。

(1.1)所述交集操作包括:输入需要的标签文件files,找出其中最小用户的文件min_file;并执行如下指令:

fori←0tomin_file的行数

do读取一行,找到最大号码(maxuser)的文件,其它文件依次按行顺序继续读取,直到当前号码大于或者等于maxuser;

如果所有文件都能找到maxuser,那么该用户命中,否则不命中。

(1.2)所述并集操作包括:输入需要的标签文件files,找出其中最大用户的文件max_file;并执行如下指令:

fori←0tomax_file的行数

do读取一行,找到最大号码(minuser)的文件,其它文件依次按行顺序继续读取,如果到当前号码小于maxuser,当前号码命中,否则不命中。

(1.3)所述补集操作包括:输入需要的标签文件files,包括:操作文件a和对比文件b;并执行如下指令:

fori←0toa的行数

do读取a文件一行user,b文件依次按行顺序继续读取,直到当前号码大于或者等于user。

如果有当前号码有一个等于user,当前号码不命中,否则命中。

(2)通过多线程或多进程,对同一号码段的各索引文件执行所述关系操作,以生成命中数据包。

如图5所示,以并集为例,对列1和列2进行并集操作。在0-100的号码段中,命中的号码段为:null;在100-199的号码段中,命中的号码包括:121,125;在200-299的号码段中,命中的号码包括:null;在300-399的号码段中,命中的号码包括:301;以此类推,最后生成的数据包中包括{121,125,301…}。

可以理解的是,在每个号码段中的命中操作,一般由多线程或多进程同时进行更进一步加快处理速度。

本发明实施例的数据处理方法,先通过分层抽样来确定号码量级,再基于号码量级过对标签文件建立索引文件,并对索引文件进行关系操作,进而降低操作的时间复杂度,此时的时间复杂度为o(n),基本上等同于磁盘读取文件的速度,因而提高了海量号码提取时的处理速度。

请参阅图6,所示为本发明实施例提供的数据处理装置的结构示意图。本发明所述数据处理装置600包括:接收模块61、标签模块62、索引模块63、和关系模块64。

接收模块61,用于接收数据包提取指令,所述数据包提取指令中包括至少两组用户标签、和所述用户标签之间的关系操作。

所述用户标签,是根据具体的用户属性生成的。比如,根据用户的性别属性,生成用户标签:性别男;再如,根据用户的年龄属性,生成用户标签:年龄20-25岁。所述关系操作包括但不限于:交集、并集、和/或补集。

标签模块62,连接于接收模块61,用于根据每一用户标签从数据列表中筛选出对应的标签文件,所述标签文件包括所述用户标签对应的用户号码。

可以理解的是,在数据列表中,对标签所引导的用户号码进行列存储。其中的用户号码按一定的顺序进行排列,如升序或降序。可以理解的是,若所述号码中出现英文字母、或拼音字母等,则可按照字母的顺序进行排序;若字母与数字混合出现,则预设字母与数字的优先级。

索引模块63,连接于标签模块62,用于将所述标签文件中的用户号码分成多个号码段。

此外,所述索引模块63还可以根据每个号码段的起始位置为每一标签文件建立索引文件。其中,所示索引文件中记录每个号码段的起始位置,若某个号段不存在,则记录为空值null。

关系模块64,连接于索引模块63,用于根据所述关系操作,对同一号码段的用户号码进行操作,以生成命中数据包。

根据所述关系操作,对所述统一号码段的用户号码进行操作,可以理解为,对统一号码段的各索引文件进行关系操作。所述关系操作,包括但不限于:交集、并集、和/或补集。可以理解的是,在每个号码段中的命中操作,一般由多线程或多进程同时进行更进一步加快处理速度。

本发明实施例的数据处理装置,通过对标签文件建立索引文件,并对所述索引文件进行关系操作,进而降低操作的时间复杂度,此时的时间复杂度为o(n),基本上等同于磁盘读取文件的速度,因而提高了海量号码提取时的处理速度。

请参阅图7,所示为本发明实施例提供的数据处理装置的另一结构示意图。本发明所述数据处理装置700包括:存储模块71、转换模块72、接收模块73、标签模块74、索引模块75、和关系模块76。

存储模块71,用于对用户号码及其对应的用户标签进行存储,以生成数据列表。其中,所述存储模块71,包括列单元711和排序单元712。

具体而言,所述列单元711,用于获取多个用户号码及其对应的用户标签,其中每一用户号码对应多个用户标签;比如,某一用户的用户号码是131-xxxx-4625,其用户标签为:年龄36-50岁,性别男,收入高,兴趣爱好为户外等。

所述排序单元712,用于通过所述用户标签对所述多个用户号码进行列存储,并按照所述用户号码的字符串进行排序,以生成数据列表。

其中,所述列存储是指将所有记录中相同字段的数据进行聚合存储。列存储的优点在于,每个字段的数据聚集存储,在查询时仅需读取少数几个字段,大大减少读取的数据量,可以更好的支持在线分析、数据挖掘等密集型应用。

在存储模块71中,对用户标签所引导的用户号码进行列存储,并对涉及的用户号码进行升序或降序排列。此外,若所述用户号码中出现英文字母、或拼音字母等,则可按照字母的顺序进行排序;若字母与数字混合出现,则预设字母与数字的优先级,比如:1a排在11前,{1a,1y,11},诸如此类。

以上,则完成了对数据列表的建立,进而存储在对应的数据库中。

转换模块72,用于获取数据需求,并将数据需求转换成数据包提取指令。其中,所述转换模块72包括画像单元721和指令单元722。

可以理解的是,所述数据需求是基于待推广的产品或服务的特性而产生的。而用户画像一般是隐含在数据需求中的。

所述画像单元721,用于根据数据需求生成用户画像。可以理解的是,上述用户画像的过程包括但不限于推导、抽样、和验证等步骤。

所述指令单元722,用于将用户画像转换成数据包提取指令。此处,转换过程如下:

首先,从数据列表中获取用户属性,比如,年龄、性别、收入区间、兴趣爱好、职业类型、婚否、是否有小孩、学历等。

然后,将所述用户画像与所述用户属性进行匹配,以生成数据包提取指令。其中,所述数据包提取指令中包括至少两组用户标签、和所述用户标签之间的关系操作。所述关系操作包括但不限于:交集、并集、和/或补集。

接收模块73,连接于转换模块72,用于接收数据包提取指令,所述数据包提取指令中包括至少两组用户标签、和所述用户标签之间的关系操作。

标签模块74,连接于接收模块73和存储模块71,用于根据每一用户标签从数据列表中筛选出对应的标签文件,所述标签文件包括所述用户标签对应的用户号码。

在数据列表中,对用户标签所引导的用户号码进行列存储,并按一定的顺序进行排列。若所述号码中出现英文字母、或拼音字母等,则可按照字母的顺序进行排序。若字母与数字混合出现,则预设字母与数字的优先级。

索引模块75,连接于标签模块74,用于将所述标签文件中的用户号码分成多个号码段,并根据每个号码段的起始位置为每一标签文件建立索引文件。其中,所述索引模块75包括:抽样单元751、平分单元752、统计单元753、判断单元754、平均单元755、分层单元756、和起始单元757。

具体而言,所述抽样单元751,用于对所述标签文件中的用户号码进行抽样,以生成抽样号码。可以理解的是,此处一般为按照预设比例对用户号码进行随机抽样,比如,按照2%的比例从10,000个用户号中随机抽取200个作为抽样号码。

所述平分单元752,连接于抽样单元751,将所述抽样号码平均分段,以生成平均号码段。其中,所述平分单元752包括:均分子单元1、统计子单元2、判断子单元3、平均子单元4、和实际子单元5。

具体而言,所述均分子单元1,用于将所述抽样号码平均分段,以生成平均号码段。比如,将上述200个抽样号码分成5段。

所述统计子单元2,用于统计所述平均号码段中各抽样号码的分布数量。此处,假设5个号码段的分布数量分别为:第一号码段的数量22,第二号码段的数量41,第三号码段的数量39,第四号码段的数量44,和第五号码段的数量54。

所述判断子单元3,用于判断任一平均号码段中分布数量是否在预设分布区间内。此处,以预设的分布区间为【35,45】为例,则第一号码段和第五号码段不在预设分布区间中。

所述平均子单元4,用于当所述分布数量在预设分布区间内时,采用所述平均号码段。

所述实际子单元5,用于当所述分布数量不在预设分布区间内时,根据抽样号码的分布情况进行调整,以生成多个实际号码段。仍以上述的5个号码段为例,先从第一号码段中选取符合预设分布区间的号码段,再依次类推,直至形成5个号码段。

如此,在平分单元752中可通过分层抽样的方式,对号码的量级进行评估,进而生成适宜的号码段。可以理解的是,适宜的号码段所建立的索引文件,可以更好的支援多线程或多进程的数据读取,更高效的利用服务器自身的数据存储、数据读取、和数据计算的能力。

所述统计单元753,连接于平分单元752,用于统计所述平均号码段中各抽样号码的分布数量。

所述判断单元754,连接于统计单元753,用于判断任一平均号码段中分布数量是否在预设分布区间内。

所述平均单元755,连接于用于当所述分布数量在预设分布区间内时,采用所述平均号码段。

所述分层单元756,还用于当所述分布数量不在预设分布区间内时,根据抽样号码的分布情况进行调整,以生成多个实际号码段。

其中,在平均单元755所提供的平均号码段中、和分层单元756所提供的实际号码段中,其抽样号码的数量皆在预设分布区间内。

起始单元757,连接于平均单元755和分层单元756,用于获取所述多个平均号码段或实际号码段的起始位置,并根据所述起始位置对所述标签文件中的用户号码进行分层,并根据分层结果建立所述标签文件对应的索引文件。

关系模块76,连接于索引模块75,用于根据所述关系操作,对同一号码段的各索引文件进行操作,以生成命中数据包。其中,所述关系模块76包括集合单元761和命中单元762。

具体而言,所述集合单元761,用于获取所述关系操作,所述关系操作包括:交集、并集、和/或补集。

所述命中单元762,用于通过多线程或多进程,对同一号码段的各索引文件执行所述关系操作,以生成命中数据包。

可以理解的是,在每个号码段中的命中操作,一般由多线程或多进程同时进行更进一步加快处理速度。

具体实施时,以上各个模块和/或单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。

本发明实施例的数据处理装置,先通过分层抽样来确定号码量级,再基于号码量级过对标签文件建立索引文件,并对索引文件进行关系操作,进而降低操作的时间复杂度,此时的时间复杂度为o(n),基本上等同于磁盘读取文件的速度,因而提高了海量号码提取时的处理速度。

根据上述实施例所描述的方法和装置,以下将举例作进一步详细说明。

请参阅图8,所示为本发明实施例提供的数据处理方法及处理装置的具体应用示例图。

其中以推广网络游戏为例,其数据需求81描述为:画面精美、每局耗时短。

用户画像82隐含在数据需求81中,进行梳理后生成:25-35岁的男性。

将用户画像82转换成数据包提取指令83,包括:两个用户标签831,分别为年龄男、年龄25-35岁;以及用户标签831之间的关系操作832,此处以交集∩为例。

数据库84中包括多个数据列表841。在数据列表841中,用户标签831和用户号码843以列的方式进行存储,以形成标签文件842,亦可理解为图5中的列1和列2。其中,所述用户号码,包括但不限于:手机号、即时通讯软件的号码(如qq号码、微信号码等)、电子邮箱号、视频网站的注册号等。

将标签文件842中的用户号码843分成多个号码段,并根据每个号码段的起始位置为每一标签文件建立索引文件844。其中所述号码段的生成可根据分层抽样进行,以确保每个号码段中的数量分布较为均价,继而通过多线程或多进程完成处理的时间最短。

根据所述关系操作832,对同一号码段的各索引文件844进行操作,以生成命中数据包15。比如,在0-99的号码段中,命中的号码为9;在150-200的号码段中,命中的号码为172,其他号码段的命中号码为null。

最后,将产品或服务的信息推广至所述命名数据包85中的用户号码。故而提高了海量号码提取时的处理速度和信息推广的准确度。

相应的,本发明实施例还提供一种服务器,如图9所示,所述数据处理方法及数据处理装置,应用于服务器900中。所述服务器900包括:一个或者一个以上处理核心的处理器901、一个或一个以上计算机可读存储介质的存储器902、射频(radiofrequency,rf)电路903、短距离无线传输(wifi)模块904、电源905、输入单元906、以及显示单元907等部件。

本领域技术人员可以理解,上述结构并不构成对服务器900的限定,可以包括比上述更多或更少的部件、组合某些部件、或不同的部件布置。其中:

具体在本实施例中,在服务器900中,处理器901会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器902中,并由处理器901来运行存储在存储器902中的应用程序,从而实现各种功能,如下:接收数据包提取指令,所述数据包提取指令中包括至少两组用户标签、和所述用户标签之间的关系操作;根据每一用户标签从数据列表中筛选出对应的标签文件,所述标签文件包括所述用户标签对应的用户号码;将所述标签文件中的用户号码分成多个号码段,并根据每个号码段的起始位置为每一标签文件建立索引文件;根据所述关系操作,对同一号码段的各索引文件进行操作,以生成命中数据包。

优选的,所述处理器901还可以用于:对所述标签文件中的用户号码进行抽样,以生成抽样号码;根据所述抽样号码的分布情况生成多个号码段,任一所述号码段中的抽样号码的数量在预设分布区间内;获取所述多个号码段的起始位置,并根据所述起始位置对所述标签文件中的用户号码进行分层,并根据分层结果建立所述标签文件对应的索引文件。

优选的,所述处理器901还可以用于:将所述抽样号码平均分段,以生成平均号码段;统计所述平均号码段中各抽样号码的分布数量;判断任一平均号码段中分布数量是否在预设分布区间内;当所述分布数量在预设分布区间内时,采用所述平均号码段;当所述分布数量不在预设分布区间内时,根据抽样号码的分布情况进行调整,以生成多个实际号码段。

优选的,所述处理器901还可以用于:获取数据需求,并将所述数据需求转换成数据包提取指令。

优选的,所述处理器901还可以用于:获取所述关系操作,所述关系操作包括:交集、并集、和/或补集;通过多线程或多进程,对同一号码段的各索引文件执行所述关系操作,以生成命中数据包。

优选的,所述处理器901还可以用于:获取多个用户号码及其对应的用户标签,其中每一用户号码对应多个用户标签;通过所述用户标签对所述多个用户号码进行列存储,并按照所述用户号码的字符串进行排序,以生成数据列表。

由上述可知,本发明实施例的服务器,先通过分层抽样来确定号码量级,再基于号码量级过对标签文件建立索引文件,并对索引文件进行关系操作,进而降低操作的时间复杂度,此时的时间复杂度为o(n),基本上等同于磁盘读取文件的速度,因而提高了海量号码提取时的处理速度。

本发明实施例提供的所述服务器,与上文实施例中的数据处理方法、数据处理装置属于同一构思。

需要说明的是,对本发明所述数据处理方法而言,本领域普通技术人员可以理解实现本发明实施例中的全部或部分流程,是可以通过计算机程序来控制相关的硬件来完成,所述计算机程序可存储于一计算机可读取存储介质中,如存储在服务器的存储器中,并被该服务器内的至少一个处理器执行,在执行过程中可包括如所述信息分享方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储器(rom,readonlymemory)、随机存取记忆体(ram,randomaccessmemory)等。

对本发明实施例的所述数据处理装置而言,其各功能模块可以集成在一个处理芯片中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中,所述存储介质譬如为只读存储器,磁盘或光盘等。

以上对本发明实施例所提供的一种数据处理方法、数据处理装置及服务器进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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