一种用户特征数据的更新方法和装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种用户特征数据的更新方法和装置。
背景技术
随着互联网技术的飞速发展,使用互联网的用户越来越多。在用户使用互联网的过程中,互联网可以积累海量的用户数据,基于这些用户数据可以分析得到用户特征,例如,用户的属性(性别、姓名、年龄等)、用户的消费行为、用户所在的地理位置等。在确定用户特征后,针对不同的互联网业务,可以根据业务需求,确定满足业务需求的用户特征,并将满足业务需求的用户特征应用到线上数据库中,以便为互联网业务提供服务。
通常,互联网每天都可以积累大量的用户数据,基于用户数据可以重新确定用户特征,并对线上数据库中的用户特征进行更新。然而,在实际应用中,由于用户的数量比较多,因此,在对线上数据库中的用户特征进行更新时,所需的时间比较长,更新效率比较低。
发明内容
本申请实施例提供一种用户特征数据的更新方法和装置,用于解决在基于用户数据重新确定用户特征后,在基于重新确定的用户特征对线上数据库中的用户特征进行更新时,更新效率比较低的问题。
为解决上述技术问题,本申请实施例是这样实现的:
第一方面,提出一种用户特征数据的更新方法,包括:
获取第一数据表中的标识字段值以及与不同的标识字段值对应的指示字段值,所述第一数据表用于存储第一时刻之前用户的特征数据,所述第一数据表中包括指示字段、用户标识对应的标识字段以及用户特征对应的特征字段,所述指示字段值基于不同的标识字段值对应的特征字段值确定得到;
获取第二数据表中的标识字段值以及与不同的标识字段值对应的指示字段值,所述第二数据表与所述第一数据表相对应,用于存储第二时刻之前用户的特征数据,所述第二时刻晚于所述第一时刻,所述第二数据表中包括所述指示字段、所述标识字段以及所述特征字段,所述第二数据表中的指示字段值与所述第一数据表中的指示字段值采用相同的算法得到;
确定所述第一数据表以及所述第二数据表中,对应的指示字段值不同的至少一个目标标识字段值;
将所述第二数据表中与所述至少一个目标标识字段值对应的记录更新到目标数据库中。
第二方面,提出一种用户特征数据的更新装置,包括:
第一获取单元,获取第一数据表中的标识字段值以及与不同的标识字段值对应的指示字段值,所述第一数据表用于存储第一时刻之前用户的特征数据,所述第一数据表中包括指示字段、用户标识对应的标识字段以及用户特征对应的特征字段,所述指示字段值基于不同的标识字段值对应的特征字段值确定得到;
第二获取单元,获取第二数据表中的标识字段值以及与不同的标识字段值对应的指示字段值,所述第二数据表与所述第一数据表相对应,用于存储第二时刻之前用户的特征数据,所述第二时刻晚于所述第一时刻,所述第二数据表中包括所述指示字段、所述标识字段以及所述特征字段,所述第二数据表中的指示字段值与所述第一数据表中的指示字段值采用相同的算法得到;
确定单元,确定所述第一数据表以及所述第二数据表中,对应的指示字段值不同的至少一个目标标识字段值;
更新单元,将所述第二数据表中与所述至少一个目标标识字段值对应的记录更新到目标数据库中。
第三方面,提出一种电子设备,该电子设备包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,该可执行指令在被执行时使该处理器执行以下操作:
获取第一数据表中的标识字段值以及与不同的标识字段值对应的指示字段值,所述第一数据表用于存储第一时刻之前用户的特征数据,所述第一数据表中包括指示字段、用户标识对应的标识字段以及用户特征对应的特征字段,所述指示字段值基于不同的标识字段值对应的特征字段值确定得到;
获取第二数据表中的标识字段值以及与不同的标识字段值对应的指示字段值,所述第二数据表与所述第一数据表相对应,用于存储第二时刻之前用户的特征数据,所述第二时刻晚于所述第一时刻,所述第二数据表中包括所述指示字段、所述标识字段以及所述特征字段,所述第二数据表中的指示字段值与所述第一数据表中的指示字段值采用相同的算法得到;
确定所述第一数据表以及所述第二数据表中,对应的指示字段值不同的至少一个目标标识字段值;
将所述第二数据表中与所述至少一个目标标识字段值对应的记录更新到目标数据库中。
第四方面,提出一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下方法:
获取第一数据表中的标识字段值以及与不同的标识字段值对应的指示字段值,所述第一数据表用于存储第一时刻之前用户的特征数据,所述第一数据表中包括指示字段、用户标识对应的标识字段以及用户特征对应的特征字段,所述指示字段值基于不同的标识字段值对应的特征字段值确定得到;
获取第二数据表中的标识字段值以及与不同的标识字段值对应的指示字段值,所述第二数据表与所述第一数据表相对应,用于存储第二时刻之前用户的特征数据,所述第二时刻晚于所述第一时刻,所述第二数据表中包括所述指示字段、所述标识字段以及所述特征字段,所述第二数据表中的指示字段值与所述第一数据表中的指示字段值采用相同的算法得到;
确定所述第一数据表以及所述第二数据表中,对应的指示字段值不同的至少一个目标标识字段值;
将所述第二数据表中与所述至少一个目标标识字段值对应的记录更新到目标数据库中。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
本申请实施例提供的技术方案,由数据表存储用户的特征数据,通过在数据表中添加指示字段,在重新确定用户特征并得到新数据表后,可以基于两个数据表中指示字段的值,确定新数据表中哪些用户的特征数据发生了变化,并将这些用户在新数据表中的记录更新到目标数据库中,实现对目标数据库中用户特征数据的更新。这样,在基于重新确定的用户特征数据对目标数据库中的用户特征数据进行更新时,由于可以基于两个数据表中指示字段的值识别哪些用户的特征数据发生了变化,进而基于增量更新的方式对目标数据库中用户特征数据进行更新,因此,可以减少更新时间,提高更新效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请的一个实施例用户特征数据的更新方法的流程示意图;
图2是本申请的一个实施例用户特征数据的更新方法的流程示意图;
图3是本申请的一个实施例用户特征数据的更新方法的场景示意图;
图4是本申请的一个实施例电子设备的结构示意图;
图5是本申请的一个实施例用户特征数据的更新装置的结构示意图。
具体实施方式
用户在使用互联网的过程中,可以产生大量的用户数据,这些用户数据来源于不同的互联网业务。通常,数据仓库可以存储用户在互联网中产生的用户数据,通过对这些用户数据进行离线分析,可以确定用户的用户特征,例如,用户的属性(性别、姓名、年龄等)、用户的消费行为等。其中,确定用户特征也可以理解为为用户建立用户画像,给用户贴上标签,不同的标签可以代表不同的用户特征。
在确定用户的用户特征后,可以基于用户特征为互联网中不同的线上业务提供服务。具体地,针对某个业务,可以基于业务对用户特征的需求,从已确定的用户特征中提取业务所需的用户特征,基于业务所需的用户特征,可以建立标签数据宽表(以下可以简称数据表),在数据表中,可以按照用户标识存储不同用户的特征数据。
在建立不同业务的数据表后,可以将不同业务的数据表发送给线上数据库,线上数据库在存储这些数据表后,可以基于这些数据表,为不同的线上业务提供服务。
例如,业务A所需的(主要关注的)用户特征是用户的消费水平和信用等级(实际上业务所需的用户特征远大于两个,这里仅以两个用户特征为例进行说明),那么,可以基于消费水平和信用等级这两个用户特征,建立业务的数据表,在数据表中,可以按照不同用户的用户标识存储用户针对消费水平和信用等级的特征数据。在建立数据表后,可以将数据表应用到线上数据库,这样,线上数据库可以基于数据表为业务A提供服务,例如,圈定业务A的目标人群,实现精准营销等。
在实际应用中,用户每天都可以在互联网中产生大量的用户数据,数据仓库可以基于用户每天产生的用户数据,重新确定用户的用户特征,基于重新确定的用户特征,可以重新建立不同业务的数据表。其中,重新确定的数据表的结构可以与原数据表相同,不同的是,新数据表中存储的用户特征数据发生了变化。
数据仓库在重新建立不同业务的数据表后,需要将新数据表应用到线上数据库中,以便更新线上数据库中不同业务的数据表,进而为不同业务提供更好地服务。
现有技术中,在对线上数据库中的用户特征数据进行更新时,主要采用两种方法,一种是全量更新,另一种是增量更新。具体地,全量更新可以理解为将用户的特征数据全部更新到线上数据库中,即将数据表中的记录一条一条地更新到线上数据库的数据表中。然而,由于需要将用户的特征数据全部更新到线上数据库中,因此,当用户的数量比较多时,所需的更新时间比较长,导致更新效率比较低。
增量更新可以理解为仅将发生变化的用户特征数据更新到线上数据库中。通常,在进行增量更新时,可以将新数据表中的记录(一条记录可以代表一个用户的特征数据)与原数据表中的记录一一对比,确定哪些用户的特征数据发生了变化,进而将发生变化的用户特征数据更新到线上数据库的数据表中。相较于全量更新的方式而言,由于增量更新仅将发生变化的用户特征数据更新到线上数据库中,因此,可以在一定程度上减少更新所需的时间,提高更新效率。然而,由于数据表中存储的用户特征数据通常比较多,因此,在将新数据表中的记录与原数据表中的记录进行一一比对进而确定哪些用户特征数据发生变化时,花费的时间比较长,导致更新的效率比较低。
由此可见,现有技术中,在基于重新确定的用户特征对线上数据库中的用户特征进行更新时,更新时间比较长,效率比较低。
为了解决上述问题,本申请实施例提供一种用户特征数据的更新方法和装置,通过在数据表中增加指示字段,在重新确定用户特征并得到新数据表后,可以基于两个数据表中指示字段的值,快速识别新数据表中哪些用户的特征数据发生了变化,并将特征数据发生变化的用户在新数据表中的记录更新到目标数据库中,实现对目标数据库中用户特征数据的更新。
这样,一方面,由于采用的是增量更新的方式,因此,可以减少更新所需的时间,提高更新效率;另一方面,由于在数据表中添加了指示字段,通过指示字段的值可以快速识别哪些用户的特征数据发生了变化,无需将新数据表与原数据表中的记录进行一一对比,因此,可以在增量更新的基础上,进一步减少更新所需的时间,提高更新效率。
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1是本申请的一个实施例用户特征数据的更新方法的流程示意图。所述方法如下所述。
本申请实施例的执行主体可以是数据库,所述数据库可以是数据仓库,所述数据仓库具有存储海量(PB、TB甚至更高量级)的用户数据、提供高效的计算资源、支撑海量数据分析和挖掘等多种数据需求的功能。
S102:获取第一数据表中的标识字段值以及与不同的标识字段值对应的指示字段值。
所述第一数据表可以用于存储第一时刻之前用户的特征数据。其中,所述第一时刻并不特指具体的某个时间,可以用于与后续记载的第二时刻进行对比,用来说明所述第一数据表中存储的特征数据为对用户的特征数据进行更新前,用户的特征数据。
所述第一数据表中可以包括指示字段、与用户标识对应的标识字段以及与用户特征对应的特征字段。所述用户标识可以是用户在互联网中的用户标识,例如,用户在某个应用中注册时使用的用户名,用户的电话号码,身份证号码等。所述用户特征可以是用户的属性(性别、姓名、年龄等)、用户的消费行为、用户所在的地理位置、用户的资产情况、用户的信用等级等,这里不做具体限定。
所述标识字段值可以代表用户的用户标识,每个标识字段值不互相同,其中,一个标识字段值可以唯一标识第一数据表中的一条记录,一条记录可以代表用户的特征数据,具体可以包含多个特征字段值,即一个标识字段值可以对应多个特征字段值,用来表征一个用户的特征数据。
所述指示字段值可以用于表征用户的特征数据是否发生变化,具体可以基于不同的标识字段值对应的特征字段值确定得到。其中,所述指示字段值可以包含多个,一个标识字段值可以对应一个指示字段值,针对一个指示字段值而言,已知其对应的标识字段值后,该指示字段值可以基于该标识字段值对应的多个特征字段值确定得到。
本申请实施例中,若用户的特征数据发生了变化,则该用户在第一数据表中对应的一条记录也会发生变化,一条记录发生变化,意味着该条记录包含的多个特征字段值会发生变化,相应地,基于该多个特征字段值确定得到的指示字段值也会发生变化;反之,若用户的特征数据没有发生变化,则该用户在第一数据表中对应一条记录、该条记录包含的多个特征字段值以及该多个特征字段值确定得到的指示字段值都不会发生变化。
为了便于理解第一数据表的结构,请参见表1。
表1是本申请的一个实施例第一数据表的示意图,在表1中,第一数据表可以包含指示字段、标识字段、特征字段1至特征字段N,标识字段对应用户标识,一个特征字段可以对应一个用户特征。
在表1中,标识字段值可以包含m个,指示字段值也可以包含m个,针对其中一个标识字段值1而言,标识字段值1可以唯一标识特征字段值11至1n组成的一条记录,标识字段值1也可以对应一个指示字段X1,其中,指示字段值X1可以由标识字段值1对应的特征字段值11至1n确定得到。
表1
标识字段 |
特征字段1 |
特征字段2 |
…… |
特征字段N |
指示字段 |
1 |
11 |
12 |
…… |
1n |
X1 |
2 |
|
|
|
|
X2 |
…… |
|
|
|
|
…… |
…… |
|
|
|
|
…… |
m |
|
|
|
|
Xm |
在S102中,在获取第一数据表中的标识字段值以及与不同的标识字段值对应的指示字段值之前,需要建立第一数据表,并针对第一数据表中每个标识字段值,确定得到与不同的标识字段值对应的指示字段值。
本申请实施例,建立所述第一数据表,可以包括:
基于用户数据,确定用户的特征数据;
基于业务对用户特征的需求,从所述用户的特征数据中选择满足所述业务的目标用户的特征数据;
基于满足所述业务的目标用户的特征数据,建立所述第一数据表,所述第一数据表中包括指示字段、与用户标识对应的标识字段以及与用户特征对应的特征字段。
所述用户数据可以是用户在互联网中产生的用户数据,互联网中产生的用户数据可以来源于不同的互联网业务,这些用户数据可以存储在数据仓库中。数据仓库在存储这些用户数据后,可以对这些用户数据进行离线分析,得到不同用户的用户特征,即确定得到不同用户的特征数据。
例如,可以按照用户基本属性信息、消费行为信息、资产状况信息、地理位置信息、信用风险信息等,对用户数据进行归类,确定不同用户的基本属性特征(性别、姓名、年龄等)、消费行为特征、资产状况特征、地理位置特征、信用等级特征等。
在得到不同用户的特征数据后,可以将用户的特征数据应用到具体的业务场景中。具体地,可以基于业务对用户特征的需求,从用户的特征数据中选择满足业务需求的目标用户的特征数据。其中,不同业务对用户特征的需求不同,满足业务需求的目标用户也不同,相应地,满足不同业务的目标用户的特征数据也不同。
在确定满足业务需求的目标用户的特征数据后,可以基于这些特征数据建立第一数据表。所述第一数据表中可以包括指示字段、与用户标识对应的标识字段以及与用户特征对应的特征字段。其中,针对不同的业务,可以确定得到不同的第一数据表。
在建立第一数据表后,可以根据目标用户的特征数据,确定第一数据表中的标识字段值以及特征字段值,其中,不同的标识字段值可以代表不同用户的用户标识,每个标识字段值可以对应多个特征字段值,一个标识字段值可以唯一标识一条记录,一条记录可以代表一个用户的特征数据,一条记录中包含多个特征字段值。
在确定标识字段值以及特征字段值后,可以进一步确定与不同的标识字段值对应的指示字段值。其中,一个标识字段值可以对应一个指示字段值。
本申请实施例在确定与不同的标识字段对应的指示字段值时,可以包括:
确定所述第一数据表中与不同的标识字段值对应的特征字段值;
针对其中一个标识字段值对应的特征字段值,执行以下操作:
根据所述标识字段值对应的特征字段值,确定与所述标识字段值对应的指示字段值。
具体地,首先,可以确定第一数据表中与不同的标识字段值对应的多个特征字段值;然后,可以基于不同标识字段值对应的特征字段值,确定得到与不同标识字段值对应的指示字段值。
以其中一个标识字段值对应的特征字段值为例,在确定与该标识字段值对应的指示字段值时,可以采用以下至少一种方法:
第一种方法:
首先,可以按照设定顺序将标识字段值对应的特征字段值依次拼接,得到第一字段,其中,所述设定顺序可以是特征字段值在第一数据表中从左往右的顺序,也可以是从右往左的顺序等。
其次,将第一字段作为与标识字段值对应的指示字段值。
例如,第一数据表中包含100个特征字段,那么,可以将这100特征字段的值从左往右(或从右往左)依次拼接,得到包含100个特征字段值的第一字段,该第一字段即为指示字段值。
第二种方法:
首先,可以基于上述第一种方法记载的内容得到第一字段。
其次,采用预设算法对第一字段进行处理,得到具有固定长度的第二字段。
通常,第一数据表中特征字段的个数比较多,将特征字段值拼接得到的第一字段的长度比较长,因此,为了减少第一字段的长度,便于后续将不同数据表中的指示字段值进行比较,在得到第一字段后,可以将第一字段转化为具有固定长度的第二字段,其中,第二字段的长度小于第一字段的长度。
所述预设算法可以是MD5算法,也可以是sha-1、RIPEMD、Haval等,还可以是其他能够得到固定长度字符串的算法,这里不做具体限定。
最后,将具有固定长度的第二字段作为标识指示字段对应的指示字段值。
在基于上述记载的任一种或多种方法确定得到一个标识字段值对应的指示字段值后,可以基于相同的方法确定得到第一数据表中不同标识字段值对应的指示字段值。
需要说明的是,在实际应用中,在确定得到与不同标识字段值对应的指示字段值时,可以采用上述第一种方法,也可以采用上述第二种方法,但需要注意的是,在同一个数据表中,需要使用相同的方法确定得到不同标识字段值对应的指示字段值。考虑到所述第一字段的长度较长,为了便于后续将不同数据表中的指示字段值进行比较,可以优先选择上述第二种方法确定得到与不同标识字段值对应的指示字段值。
本申请实施例在建立第一数据表,并得到第一数据表中的标识字段值以及与不同标识字段值对应的指示字段值后,在对目标数据库中的用户特征进行更新时,可以获取第一数据表中不同的标识字段值以及与不同标识字段值对应的指示字段值。
在获取到第一数据表中不同的标识字段值以及与不同标识字段值对应的指示字段值后,可以执行S104。
S104:获取第二数据表中的标识字段值以及与不同的标识字段值对应的指示字段值。
所述第二数据表可以用于存储第二时刻之前用户的特征数据,所述第二时刻晚于所述第一时刻。其中,所述第二时刻也不特指具体的某个时间,所述第二时刻可以用于与前述记载的所述第一时刻进行对比,用来说明所述第二数据表中存储的特征数据为对用户的特征数据进行更新后,用户的特征数据。
优选地,所述第二时刻可以比所述第一时刻晚一天,也就是说,可以以一天为周期,更新用户的特征数据,更新前的用户特征数据存储在第一数据表中,更新后的用户特征数据存储在第二数据表中。其中,所述第一数据表与所述第二数据表可以存放在数据库的不同分区中,所述数据库可以是所述数据仓库,也可以是其他数据库。
应理解,在其他应用场景下,所述第二时刻也可以比所述第一时刻晚两天、三天或者其他时间等,具体可以根据实际情况确定,这里不做具体限定。
所述第二数据表可以与所述第一数据表相对应,这里的相对应可以理解为所述第二数据表存储的特征数据是对所述第一数据表中的特征数据进行更新后的特征数据,且,所述第二数据表的结构与所述第一数据表相同,也可以包括指示字段、与用户标识对应的标识字段以及与用户特征对应的特征字段。其中,第二数据表中指示字段值与第一数据表中指示字段值通过相同的算法确定得到。
所述第二数据表的结构可以参见上述S102中对第一数据表的结构的相关记载,这里不再重复描述。
需要说明的是,针对同一用户而言,该用户在第一数据表中对应的标识字段值与其在第二数据表中对应的标识字段值相同。
本申请实施例中,在获取所述第二数据表中的标识字段值以及与不同标识字段值对应的指示字段值之前,也需要建立第二数据表,并得到第二数据表中不同的标识字段值以及与不同标识字段值对应的指示字段值。
在建立所述第二数据表时,可以对原有的用户数据以及第一时刻至第二时刻之间产生的用户数据进行离线分析,基于分析结果重新确定用户的用户特征,并基于重新确定的用户特征,建立所述第二数据表。
在基于重新确定的用户特征,建立所述第二数据表时,可以针对不同业务对用户特征的需求建立不同业务对应的第二数据表,具体实现方式可以参见上述S102中记载的建立所述第一数据表的相关内容,这里不再重复说明。
在建立所述第二数据表后,可以进一步确定所述第二数据表中的标识字段值以及与不同标识字段值对应的指示字段值,具体实现方式也可以参见上述S102中记载的确定所述第一数据表中的标识字段值以及与不同标识字段值对应的指示字段值的相关内容,这里也不再重复描述。
需要说明的是,为了便于后续将第二数据表中的指示字段值与第一数据表中的指示字段值进行比较,所述第二数据表中的指示字段值与所述第一数据表中的指示字段值需要采用相同的算法得到。
例如,第一数据表中将多个特征字段值拼接得到的第一字段作为指示字段值,那么,第二数据表中也将多个特征字段值拼接得到的第一字段作为指示字段值;第一数据表中将第一字段处理后得到的具有固定长度的第二字段作为指示字段值,那么,第二数据表中将第一字段处理后得到的具有固定长度的第二字段作为指示字段值。
本申请实施例在建立第二数据表,并得到第二数据表中标识字段值以及与不同标识字段值对应的指示字段值后,在对目标数据库中的用户特征进行更新时,可以获取第二数据表中不同的标识字段值以及与不同标识字段值对应的指示字段值。
在获取第二数据表中不同的标识字段值以及与不同标识字段值对应的指示字段值后,可以执行S106。
S106:确定所述第一数据表以及所述第二数据表中,对应的指示字段值不同的至少一个目标标识字段值。
在S106中,可以基于第一数据表中的指示字段值与第二数据表中的指示字段值,确定对应的指示字段值不同的至少一个目标标识字段值,其中,所述目标标识字段值对应的用户即为特征数据发生变化的用户。
在确定第一数据表以及第二数据表中,对应的指示字段值不同的至少一个目标标识字段值时,可以包括:
针对所述第二数据表中每个标识字段值,执行以下操作:
确定所述标识字段值在所述第二数据表中对应的第一指示字段值,以及所述所述标识字段值在所述第一数据表中对应的第二指示字段值;
当所述第一指示字段值与所述第二指示字段值不同时,将所述标识字段值确定为所述目标标识字段值。
具体地,可以基于第二数据表中的标识字段值,将第二数据表中的指示字段值与第一数据表中的指示字段值进行比较。
以第二数据表中的一个标识字段值为例,首先,可以确定该标识字段值在第一数据表中对应的指示字段值,以及该标识字段值在第二数据表中对应的指示字段值,这里为了便于区分,可以分别使用第一指示字段值和第一指示字段值,表示第一数据表中的指示字段值和第二数据表中的指示字段值。
其次,可以将第一指示字段值与第二指示字段值进行比较,由于指示字段值可以用于表征用户的特征数据是否发生了变化,因此,如果第一指示字段值与第二指示字段值不同,则可以说明,该标识字段值对应的用户的特征数据发生了变化,此时,可以将该标识字段值确定为目标标识字段值;如果第一指示字段值与第二指示字段值相同,则可以说明,该标识字段值对应的用户的特征数据发生了变化,该标识字段值不为目标标识字段值。
这样,通过将第二数据表中每个标识字段值在第二数据表中对应的第二指示字段值,与其在第一数据表中对应的第一指示字段值进行比较,可以确定得到至少一个目标标识字段值。
需要说明的是,在实际应用中,当第二数据表中增加了新的标识字段值时,针对这些新的标识字段值,第一数据表中没有对应的指示字段值,这种情况可以说明,第二数据表相较于第一数据表增加了新的用户的特征数据,此时,可以视为这些新的标识字段值为目标标识字段值。
例如,第二数据表中包含标识字段值n,而第一数据表中不包含标识字段值n,那么,可以认为标识字段值n对应的用户的特征数据为新增加的特征数据,此时,可以将标识字段值n作为目标标识字段值。
在基于上述记载的方法,确定所述第一数据表以及所述第二数据表中,对应的指示字段值不同的至少一个目标标识字段值后,可以执行S108。
S108:将所述第二数据表中与所述至少一个目标标识字段值对应的记录更新到目标数据库中。
在S108中,在确定至少一个目标标识字段值后,可以确定所述至少一个目标标识字段值在第二数据表中对应的至少一条记录,并将这些记录更新到目标数据库中。
所述目标数据库中可以存储有所述第一数据表,将至少一个目标标识字段值对应的记录更新到目标数据库后,目标数据库可以得到所述第二数据表,从而实现对目标数据库中用户特征数据的更新。
在本申请的一个实施例中,将所述第二数据表中与所述至少一个目标标识字段值对应的记录更新到目标数据库中,可以包括:
根据所述第二数据表中与所述至少一个目标标识字段值对应的记录,生成离线数据表;
将所述离线数据表发送给目标数据库,以便所述目标数据库根据所述离线数据表对用户的特征数据进行更新。
在本实施例中,在确定至少一个目标标识字段值在第二数据库中对应的至少一条记录后,可以不直接将这些记录更新到目标数据库,而是基于这些记录生成一个离线数据表,并将离线数据表发送给目标数据库。其中,在所述离线数据表中,可以按照用户标识存储这些记录。
目标数据库在接收到离线数据表后,可以基于离线数据表执行更新操作,即基于离线数据表,对已存储的所述第一数据表中的特征数据进行更新,得到所述第二数据表,从而实现用户特征数据的更新。
本申请的一个实施例中,所述目标数据库可以是线上数据库,所述线上数据库可以用于为互联网中的线上业务提供服务,所述线上数据库在基于所述离线数据表完成用户特征数据的更新,并得到所述第二数据表后,可以基于所述第二数据表为相应的线上业务提供服务。
本申请实施例提供的技术方案,由数据表存储用户的特征数据,通过在数据表中添加指示字段,在重新确定用户特征并得到新数据表后,可以基于两个数据表中指示字段的值,确定新数据表中哪些用户的特征数据发生了变化,并将这些用户在新数据表中的记录更新到目标数据库中,实现对目标数据库中用户特征数据的更新。这样,在基于重新确定的用户特征对目标数据库中的用户特征数据进行更新时,由于可以基于两个数据表中指示字段的值识别哪些用户的特征数据发生了变化,进而基于增量更新的方式对目标数据库中用户特征数据进行更新,因此,可以减少更新时间,提高更新效率。
为了便于理解整个技术方案,可以参见图2和图3。
图2是本申请的一个实施例用户特征数据的更新方法的流程示意图。图2所示的更新方法与图1所示的更新方法属于相同的发明构思,所述方法的执行主体可以是数据仓库,所述方法如下所述。
S201:基于用户数据,确定用户的特征数据。
用户在互联网中可以产生海量的用户数据,这些用户数据可以来自于不同的互联网业务,数据仓库可以存储这些用户数据,并通过对这些用户数据进行离线分析,可以确定得到不同用户的特征数据。
S202:根据业务对用户特征的需求,建立第一数据表。
本申请实施例可以基于不同的业务,建立不同的第一数据表,这里以建立一个业务对应的第一数据表为例进行说明。
在建立第一数据表时,可以基于业务对用户特征的需求,从不同用户的特征数据中选择满足业务的目标用户的特征数据,进而建立得到业务对应的第一数据表。
第一数据表中可以包括指示字段、与用户标识对应的标识字段以及与用户特征对应的特征字段,对第一数据表具体结构的描述可以参见图1所示实施例中S102记载的相关内容,这里不再重复说明。
在建立第一数据表后,可以将第一数据表存储在数据仓库的第一分区中。
S203:将所述第一数据表发送到目标数据库中。
所述目标数据库可以是用于对不同业务提供服务的线上数据库,在将第一数据表更新到目标数据库后,目标数据库可以存储所述第一数据表。
S204:根据更新后的用户数据,重新确定用户的特征数据。
所述更新后的用户数据可以理解为原有的用户数据与设定时间内新产生的用户数据的总和。所述设定时间可以是一天,也可以是两天、三天等,优选地,所述设定时间可以是一天。
也就是说,在S201中确定用户的特征数据后,在间隔设定时间后,可以基于设定时间内产生的新的用户数据以及原有的用户数据,重新确定不同用户的特征数据。
S205:根据业务对用户特征的需求,建立第二数据表。
第二数据表与所述第一数据表相对应,也可以包括指示字段、与用户标识对应的标识字段以及与用户特征对应的特征字段,对第二数据表具体结构的描述可以参见图1所示实施例中S102记载的相关内容,这里不再重复说明。
建立第二数据表的具体实现方式可以参见图1所示实施例中S104记载的相关内容,这里页不再重复说明。
在建立第二数据表后,可以将第二数据表存储在数据仓库的第二分区中,所述第二分区与所述第一分区属于数据仓库的不同分区。
S206:获取所述第一数据表中的标识字段值以及与不同的标识字段值对应的指示字段值。
S207:获取所述第二数据表中的标识字段值以及与不同的标识字段值对应的指示字段值。
S208:确定所述第一数据表以及所述第二数据表中,对应的指示字段值不同的至少一个目标标识字段值。
S209:确定所述至少一个目标标识字段值在所述第二数据表中对应的至少一条记录。
上述S206至S209的具体实现方式可以参见图1所示实施例中记载的相关内容,这里不再重复描述。
S210:根据所述至少一条记录,生成离线数据表。
S211:将所述离线数据表发送给目标数据库,以便所述目标数据库更新用户的特征数据。
目标数据库可以基于离线数据表,更新已存储的所述第一数据表,得到所述第二数据表。当目标数据库为线上数据库时,目标数据库可以基于所述第二数据表为线上业务提供服务,例如,可以圈定目标人群,实现精准营销等。
图3为本申请的一个实施例用户特征数据的更新方法的场景示意图。图3所示的更新方法的具体应用场景可以是数据仓库基于ODPS(Open Data Processing Service)平台对用户进行分析得到用户的特征数据,并将用户的特征数据应用到线上数据库,线上数据库可以对不同的线上业务提供服务。
图3中,数据仓库可以存储海量的用户数据,这些用户数据可以来源于不同的不同的互联网业务,数据仓库可以基于ODPS平台对这些用户数据进行离线处理,得到用户的特征数据,即图3所示的用户的特征数据1。其中,用户的特征数据可以表征用户的基本属性、消费行为、资产状况、地理位置、信用风险等。
在得到用户的特征数据后,可以基于不同的业务建立不同的第一数据表。图3以建立业务A对应的第一数据表为例,第一数据表中除了包含用户标识对应的标识字段以及用户特征对应的特征字段外,还可以包括指示字段,一个标识字段值可以对应一个指示字段值。
在建立第一数据表后,可以将第一数据表存储在数据仓库的第一分区。同时,可以将第一数据表回流到线上数据库。
当互联网中产生新的用户数据时,数据仓库可以存储新的用户数据,基于新的用户数据以及原有的用户数据重新确定用户的特征数据,即图3所示的用户的特征数据2。图3中,数据仓库可以以一天为更新周期,重新确定用户的特征数据。
在重新确定用户的特征数据后,可以基于重新建立业务A对应的第二数据表。第二数据表的结构与第一数据表的结构相同,不同的是,第二数据表中存储的是更新后的用户特征数据。
在建立第二数据表后,可以将第二数据表存储在数据仓库的第二分区,第二分区与第一分区属于不同的分区。
在将线上数据库中的第一数据表更新为第二数据表时,可以基于数据仓库中第一数据表的指示字段值以及第二数据表的指示字段值,确定第一数据表中哪些用户的特征数据发生了变化,以及第二数据表相较于第一数据表新增加的用户的特征数据。基于这些变化的特征数据以及新增加的特征数据可以生成离线数据表。
数据仓库可以将离线数据表回流到线上数据库,线上数据库根据离线数据表对已存储第一数据表进行更新,得到第二数据表。这样,线上数据库可以基于第二数据表为业务A提供服务。
图2和图3所示的实施例中,由于在存储用户特征数据的数据表中添加了指示字段,因此,在基于重新确定的用户特征数据对目标数据库(线上数据库)中的用户特征数据进行更新时,可以基于两个数据表中指示字段的值识别哪些用户的特征数据发生了变化,并基于增量更新的方式对目标数据库中用户特征数据进行更新,这样,一方面,由于采用的是增量更新的方式,因此,可以减少更新所需的时间,提高更新效率;另一方面,由于在数据表中添加了指示字段,通过指示字段的值可以快速识别哪些用户的特征数据发生了变化,无需将新数据表与原数据表中的记录进行一一对比,因此,可以在增量更新的基础上,进一步减少更新所需的时间,提高更新效率。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
图4是本申请的一个实施例电子设备的结构示意图。请参考图4,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成用户特征数据的更新装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
获取第一数据表中的标识字段值以及与不同的标识字段值对应的指示字段值,所述第一数据表用于存储第一时刻之前用户的特征数据,所述第一数据表中包括指示字段、用户标识对应的标识字段以及用户特征对应的特征字段,所述指示字段值基于不同的标识字段值对应的特征字段值确定得到;
获取第二数据表中的标识字段值以及与不同的标识字段值对应的指示字段值,所述第二数据表与所述第一数据表相对应,用于存储第二时刻之前用户的特征数据,所述第二时刻晚于所述第一时刻,所述第二数据表中包括所述指示字段、所述标识字段以及所述特征字段,所述第二数据表中的指示字段值与所述第一数据表中的指示字段值采用相同的算法得到;
确定所述第一数据表以及所述第二数据表中,对应的指示字段值不同的至少一个目标标识字段值;
将所述第二数据表中与所述至少一个目标标识字段值对应的记录更新到目标数据库中。
上述如本申请图4所示实施例揭示的用户特征数据的更新装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central ProcessingUnit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图1的方法,并实现用户特征数据的更新装置在图1所示实施例中的功能,本申请实施例在此不再赘述。
当然,除了软件实现方式之外,本申请的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1所示实施例的方法,并具体用于执行以下操作:
获取第一数据表中的标识字段值以及与不同的标识字段值对应的指示字段值,所述第一数据表用于存储第一时刻之前用户的特征数据,所述第一数据表中包括指示字段、用户标识对应的标识字段以及用户特征对应的特征字段,所述指示字段值基于不同的标识字段值对应的特征字段值确定得到;
获取第二数据表中的标识字段值以及与不同的标识字段值对应的指示字段值,所述第二数据表与所述第一数据表相对应,用于存储第二时刻之前用户的特征数据,所述第二时刻晚于所述第一时刻,所述第二数据表中包括所述指示字段、所述标识字段以及所述特征字段,所述第二数据表中的指示字段值与所述第一数据表中的指示字段值采用相同的算法得到;
确定所述第一数据表以及所述第二数据表中,对应的指示字段值不同的至少一个目标标识字段值;
将所述第二数据表中与所述至少一个目标标识字段值对应的记录更新到目标数据库中。
图5是本申请的一个实施例用户特征数据的更新装置50的结构示意图。请参考图5,在一种软件实施方式中,所述用户特征数据的更新装置50可包括:第一获取单元51、第二获取单元52、确定单元53以及更新单元54,其中:
第一获取单元51,获取第一数据表中的标识字段值以及与不同的标识字段值对应的指示字段值,所述第一数据表用于存储第一时刻之前用户的特征数据,所述第一数据表中包括指示字段、用户标识对应的标识字段以及用户特征对应的特征字段,所述指示字段值基于不同的标识字段值对应的特征字段值确定得到;
第二获取单元52,获取第二数据表中的标识字段值以及与不同的标识字段值对应的指示字段值,所述第二数据表与所述第一数据表相对应,用于存储第二时刻之前用户的特征数据,所述第二时刻晚于所述第一时刻,所述第二数据表中包括所述指示字段、所述标识字段以及所述特征字段,所述第二数据表中的指示字段值与所述第一数据表中的指示字段值采用相同的算法得到;
确定单元53,确定所述第一数据表以及所述第二数据表中,对应的指示字段值不同的至少一个目标标识字段值;
更新单元54,将所述第二数据表中与所述至少一个目标标识字段值对应的记录更新到目标数据库中。
可选地,所述更新装置50还可以包括处理单元55,其中:
所述处理单元55,在所述第一获取单元51获取第一数据表中与不同的标识字段值对应的指示字段值之前,确定所述第一数据表中与不同的标识字段值对应的特征字段值;
针对其中一个标识字段值对应的特征字段值,执行以下操作:
根据所述标识字段值对应的特征字段值,确定与所述标识字段值对应的指示字段值。
可选地,所述处理单元55,根据与所述标识字段值对应的特征字段值,确定与所述标识字段值对应的指示字段值,包括以下至少一种:
按照设定顺序将所述标识字段值对应的特征字段值拼接,得到第一字段;将所述第一字段确定为与所述标识字段值对应的指示字段值;
按照设定顺序将所述标识字段值对应的特征字段值拼接,得到第一字段;采用预设算法对所述第一字段进行处理,得到具有固定长度的第二字段;将所述第二字段确定为与所述标识字段值对应的指示字段值。
可选地,所述更新装置50还可以包括建立单元56,其中:
所述建立单元56,在所述第一获取单元51获取第一数据表中的标识字段值以及与不同的标识字段值对应的指示字段值之前,建立所述第一数据表;
其中,所述建立单元56,建立所述第一数据表,包括:
基于用户数据,确定用户的特征数据;
基于业务对用户特征的需求,从所述用户的特征数据中选择满足所述业务的目标用户的特征数据;
基于满足所述业务的目标用户的特征数据,建立所述第一数据表,所述第一数据表中包括指示字段、与用户标识对应的标识字段以及与用户特征对应的特征字段。
可选地,所述第一数据表以及所述第二数据表位于数据库的不同分区,所述第二时刻比所述第一时刻晚一天。
可选地,所述确定单元53,确定所述第一数据表以及所述第二数据表中,对应的指示字段值不同的至少一个目标标识字段值,包括:
针对所述第二数据表中每个标识字段值,执行以下操作:
确定所述标识字段值在所述第一数据表中对应的第一指示字段值,以及所述所述标识字段值在所述第二数据表中对应的第二指示字段值;
当所述第一指示字段值与所述第二指示字段值不同时,将所述标识字段值确定为所述目标标识字段值。
可选地,所述更新单元54,将所述第二数据表中与所述至少一个目标标识字段值对应的记录更新到目标数据库中,包括:
根据所述第二数据表中与所述至少一个目标标识字段值对应的记录,生成离线数据表;
将所述离线数据表发送给目标数据库,以便所述目标数据库根据所述离线数据表对用户的特征数据进行更新。
本申请实施例提供的用户特征数据的更新装置50还可执行图1至图3中的方法,并实现用户特征数据的更新装置在图1至图3所示实施例的功能,本申请实施例在此不再赘述。
总之,以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。