一种数据处理方法、系统、存储介质及电子设备与流程

文档序号:33250532发布日期:2023-02-18 01:32阅读:39来源:国知局
一种数据处理方法、系统、存储介质及电子设备与流程

1.本发明涉及位图处理技术领域,更具体地说,涉及一种数据处理方法、系统、存储介质及电子设备。


背景技术:

2.人群位图的构建通常用于在用户画像系统中。在用户画像系统中,用户通过不同标签之间的组合(如性别,民族等)生成一个筛选条件,并根据该筛选条件获取数据库中符合该条件的用户集合。
3.目前,用户画像系统的标签生成主要由大数据平台完成,而人群生成则是由支持位图计算的外部数据库完成。由于标签系统有大量的业务方(使用方)的自定义标签,自定义标签不同于系统内部的标签只存在于大数据平台中,自定义标签是根据业务方使用的技术不同散落在业务方的存储中,如mongodb、hbase、mysql等数据库,或者是业务方的大数据平台。而上述这些数据库很难与位图计算的外部异构数据库进行直接的交互。
4.自定义的标签很难融入到上述的数据流中参与人群位图计算,使得自定义的标签很难与用户画像系统的内置标签进行组合筛选,只能通过内置标签生成人群位图,从而限制了生成人群位图的方式。
5.因此,现有生成人群位图方式的局限性高。


技术实现要素:

6.有鉴于此,本发明公开了一种数据处理方法、系统、存储介质及电子设备,实现降低生成人群位图方式的局限性的目的。
7.为了实现上述目的,其公开的技术方案如下:
8.本发明第一方面公开了一种数据处理方法,所述方法包括:
9.对获取到的原始数据进行转换,得到内置标签数据,所述原始数据由数据仓库中的表构成,所述内置标签数据由所述原始数据转换成包含用户属性的表构成;
10.采用类mapreduce模型的计算框架,对所述内置标签数据和获取到的用户自定义的外置标签数据进行标签位图处理操作,得到人群位图。优选通过预设的sql语言和预设的类mapreduce模型的计算框架进行上述操作。
11.优选的,所述对获取到的原始数据进行转换,得到内置标签数据,包括:
12.通过预设转换脚本,对获取到的原始数据进行转换,得到内置标签数据。
13.优选的,获取用户自定义的外置标签数据的过程,包括:
14.通过预设计算框架,获取用户自定义的外置标签数据。
15.优选的,采用类mapreduce模型的计算框架,对所述内置标签数据和获取到的用户自定义的外置标签数据进行标签位图处理操作,得到人群位图,包括:
16.对类mapreduce模型的计算框架创建第一类扩展和第二类扩展;
17.通过预设的sql语言和所述第一类扩展,对所述内置标签数据和获取到的用户自
定义的外置标签数据进行位图构建,得到待处理位图;
18.通过预设的sql语言和所述第二类扩展,对所述待处理位图进行位运算,得到人群位图。
19.本发明第二方面公开了一种数据处理系统,所述系统包括:
20.转换单元,用于对获取到的原始数据进行转换,得到内置标签数据,所述原始数据由数据仓库中的表构成,所述内置标签数据由所述原始数据转换成包含用户属性的表构成;
21.处理单元,用于采用类mapreduce模型的计算框架,对所述内置标签数据和获取到的用户自定义的外置标签数据进行标签位图处理操作,得到人群位图。
22.优选的,所述转换单元,具体用于:
23.通过预设转换脚本,对获取到的原始数据进行转换,得到内置标签数据。
24.优选的,所述获取用户自定义的外置标签数据的过程的所述处理单元,具体用于:
25.通过预设计算框架,获取用户自定义的外置标签数据。
26.优选的,所述处理单元,包括:
27.创建模块,用于对类mapreduce模型的计算框架创建第一类扩展和第二类扩展;
28.构建模块,用于通过预设的sql语言和所述第一类扩展,对所述内置标签数据和获取到的用户自定义的外置标签数据进行位图构建,得到待处理位图;
29.计算模块,用于通过预设的sql语言和所述第二类扩展,对所述待处理位图进行位运算,得到人群位图。
30.本发明第三方面公开了一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行如第一方面任意一项所述的数据处理方法。
31.本发明第四方面公开了一种电子设备,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行如第一方面任意一项所述的数据处理方法。
32.经由上述技术方案可知,对获取到的原始数据进行转换,得到内置标签,原始数据由数据仓库中的表构成,内置标签由数据集市中包含用户属性的表构成,获取用户自定义的外置标签,采用类mapreduce模型的计算框架,对内置标签和外置标签进行标签位图构建与计算,得到人群位图。通过上述方案,基于预设计算框架读取外置标签(外部异构数据源)后,读取外置标签数据,即外部异构数据源后,通过扩展类mapreduce模型的计算框架使其支持位图构建与计算,并通过sql语言与扩展后的类mapreduce模型的计算框架进行整合,使位图构建与计算的过程中可通过sql语言进行调用,从而使得外部异构数据源参与到人群位图构建的过程中,降低生成人群位图方式的局限性。
附图说明
33.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
34.图1为本发明实施例公开的一种数据处理方法的流程示意图;
35.图2为本发明实施例公开的mapreduce计算模型的结构示意图;
36.图3为本发明实施例公开的得到人群位图的流程示意图;
37.图4为本发明实施例公开的一种数据处理系统的结构示意图;
38.图5为本发明实施例公开的一种电子设备的结构示意图。
具体实施方式
39.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
40.在本技术中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
41.由背景技术可知,现有生成人群位图方式的局限性高。
42.为了解决该问题,本发明实施例公开了种数据处理方法、系统、存储介质及电子设备,读取外置标签数据,即外部异构数据源后,通过扩展类mapreduce模型的计算框架使其支持位图构建与计算,通过sql语言与扩展后的类mapreduce模型的计算框架进行整合,使位图构建与计算的过程中可通过sql语言调用,使得外部异构数据源参与到人群位图构建的过程中,降低生成人群位图方式的局限性。具体实现方式通过下述实施例具体进行说明。
43.本方案进行人群位图处理所涉及的用户信息均提前获取用户授权,数据处理均符合相关法律法规要求。
44.参考图1所示,为本发明实施例公开的一种数据处理方法的流程示意图,该数据处理方法主要包括如下步骤:
45.步骤s101:对获取到的原始数据进行转换,得到内置标签数据,原始数据由数据仓库中的表构成,内置标签数据由原始数据转换成包含用户属性的表构成。
46.在步骤s101中,通过预设转换脚本,对获取到的原始数据进行转换,得到内置标签数据,内置标签数据即为用户画像系统的系统标签数据。
47.内置标签数据存储于数据集市中。
48.预设转换脚本可以是(java script objectnotation,json)脚本,也可以是其他转换脚本,预设转换脚本的确定由技术人员根据实际情况进行选取,本发明不做具体限定。
49.内置标签构建的过程都存在大数据平台中,而这类大数据平台大多基于hadoop进行搭建,hadoop也支持多种计算框架,如flink、mapreduce、spark等等。这类计算框架大多支持对于市面上的数据存储进行直接读取,并且如果没有直接读取方案,还可以通过自定义source适配任意数据源,在这个基础上,让这类大数据框架支持位图计算就可以使得外部异构数据源参与到人群位图构建的过程中,降低生成人群位图的局限性。
50.用户属性可以是用户性别、用户年龄等等。
51.目前,flink、spark等计算框架支持直接读取的数据源包括hbase、elasticsearch、mongodb、mysql、redis、postgresql、clickhouse、cassandra、tidb等数据库,并且涵盖了nosql、newsql以及传统关系型数据库。
52.数据仓库是一个集成的面向主题的数据集合,设计的目的是支持dss(决策支持系统)的功能,在数据仓库里,每个数据单元都和特定的时间相关。数据仓库包括原子级别的数据和轻度汇总的数据。数据仓库是面向主题的、集成的、不可更新的(稳定性)、随时间不断变化(不同时间)的数据集合。
53.数据集市中数据的结构通常被描述为星型结构或雪花结构。一个星型结构包含两个基本部分,一个事实表和各种支持维表。
54.步骤s102:获取用户自定义的外置标签数据。
55.在步骤s102中,通过预设计算框架,获取用户自定义的外置标签数据。
56.其中,外置标签数据通常存在与用户指定的其他存储,如关系型或者非关系型数据库中。
57.预设计算框架可以是flink、mapreduce、spark等等,具体预设计算框架的确定由技术人员根据实际情况进行设置,本发明不做具体限定。
58.外置标签数据用于标识外部异构数据源。
59.为了方便理解外置标签数据,这里举例进行说明:
60.例如,外置标签数据代码如下:
61.selectbuildbitmap(user_id)rbm
62.fromexternal_user_basic_info where age="20-30"
63.其中,age='20-30'这个标签属于外部异构数据源,即外置标签数据。
64.步骤s101和步骤s102可以是并行处理。
65.步骤s103:采用类mapreduce模型的计算框架,对内置标签数据和获取到的用户自定义的外置标签数据进行标签位图处理操作,得到人群位图。
66.在步骤s103中,通过扩展后的类mapreduce模型的计算框架,对内置标签数据和获取到的用户自定义的外置标签数据进行位图构建和位图位运算,得到人群位图。优选通过预设的sql语言和类mapreduce模型的计算框架进行上述操作。
67.类mapreduce模型的计算框架是一个基于集群的高性能并行计算平台(clusterinfrastructure)。它允许用市场上普通的商用服务器构成一个包含数十、数百至数千个节点的分布和并行计算集群;是一个并行计算与运行软件框架(software framework)。它提供了一个庞大但设计精良的并行计算软件框架,能自动完成计算任务的并行化处理,自动划分计算数据和计算任务,在集群节点上自动分配和执行任务以及收集计算结果,将数据分布存储、数据通信、容错处理等并行计算涉及到的很多系统底层的复杂细节交由系统负责处理,大大减少了软件开发人员的负担;是一个并行程序设计模型与方法(programming model&methodology)。它借助于函数式程序设计语言lisp的设计思想,提供了一种简便的并行程序设计方法,用map和reduce两个函数编程实现基本的并行计算任务,提供了抽象的操作和并行编程接口,以简单方便地完成大规模数据的编程和计算处理。
68.通过扩展后的类mapreduce计算框架,使之具有位图构建和计算的功能,可以从本地数据仓库与外部数据源中直接获取数据进行位图计算,数据仓库和外部数据源中的数据
都是标签数据集,标签值的映射的集合(表)。
69.类mapreduce计算框架的扩展包括第一类扩展和第二类扩展。
70.第一类扩展用于对内置标签数据和获取到的用户自定义的外置标签数据进行位图构建,得到待处理位图。
71.第二类扩展用于对待处理位图进行位运算,得到人群位图,其中,第二类扩展共有and(且)、or(或)、xor(异或)、andnot(非)四种类型计算类型。
72.具体的,采用类mapreduce模型的计算框架,对内置标签数据和获取到的用户自定义的外置标签数据进行位图构建和位图位运算,得到人群位图的过程如下:
73.首先,对类mapreduce模型的计算框架创建第一类扩展和第二类扩展;然后,通过预设的sql语言和第一类扩展,对内置标签数据和获取到的用户自定义的外置标签数据进行位图构建,得到待处理位图;最后,通过预设的sql语言和第二类扩展,对待处理位图进行位运算,得到人群位图。
74.为了方便理解人群位图的优势,这里举例进行说明:
75.假设在有10亿用户,每一位用户的唯一编号为int型(4byte,共32bit),那么光是保存这些用户id就需要3.72g内存(4*1000000000/1024/1024/1024),如果是40亿,则需要16g内存,在进行标签组合筛选时,会给应用带来非常大的计算压力,所在在多标签组合筛选的场景,一般会选取bitmap这种数据结构来储存标签,并通过位图计算生成人群。在程序中,我们能访问的最小单位是位(bit),位只能保存0或者1,用位来表示某个用户是否命中该标签,则10亿人群只需要120m左右,就体积来说有32倍的差距。通过位图计算生成人群由于容量存储容量小,此外位图计算直接采用的是位运算,位运算是计算机非常底层的操作,可以减少不必要的计算消耗,综上采用位图表示人群可以从输入以及运算消耗这两方面减少运算压力,大幅提高运算效率,与常规的计算方法相比,计算效率有极大幅提升。
76.参考图2所示,为类mapreduce模型的计算框架的结构示意图。
77.map task可以看成是单行处理,reduce task可以认为是对map task的结果做聚合处理。类mapreduce模型的计算框架都预留了类似于map和reduce接口,供开发人员实现自己的逻辑。
78.第一类扩展:
79.在maptask中,对于单行来说,需要实现输入一个int型数字,结果返回为一个字节数组(bitmap),用于保存这个数字所代表的位信息。伪代码如下:
80.func map(x:int):
81.returnarraybytes(x)
82.在reducetask中,需要将多个字节数组先转换为bitmap数据结构,并通过bitmap数据结构的合并功能进行合并,得到的最后结果为1个bitmap,如果需要得到保存构建好的待处理的位图,则需要将待处理的位图序列化至文件系统,伪代码如下:
83.func reduce(x:arraybytes,y:arraybytes):
84.bm_x=bitmap(x)
85.bm_y=bitmap(y)
86.returnbm_x.merge(bm_y)
87.第二类扩展:
88.在进行位图计算的时候,要将做计算的位图插入到某一列中,即每一行一个位图,所以在map阶段无需做额外的操作。
89.funcmap(x:bitmap):
90.returnbitmap(x)
91.在reduce阶段,进行位图计算。
92.funcreduce(x:bitmap,y:bitmap):
93.returnx.compute(y)
94.这里compute代表一个位图与另一个位图进行位运算,共有and(且)、or(或)、xor(异或)、andnot(非)四种类型。
95.在针对不同计算引擎实现上述接口后,需要与各自sql的方式进行整合,这样就能通过以sql的方式实现计算过程的调用。整合的方式有两种:
96.与计算框架集成,这种方式需要修改计算引擎的源代码文件,新增这两类函数,并通过函数注册器进行注册。这种方式让用户不用每次在使用时进行注册,而直接作为原生函数进行使用。
97.用户在使用时需对第一类扩展和第二类扩展进行定义与注册。
98.注册的方式包括两种,一种是在每个脚本的开头注册一次以后,该脚本范围内就不需要再次注册;第二种是如果直接在引擎中注册一次,相当于修改引擎源码,后续所有的使用均不需要注册。
99.注册完成后,就可以通过预设的sql语言进行位图的构建和计算,也就是人群生成的过程。代码如下:
100.selectbm_andnot(t2.rbm)from(
101.selectbm_or(t1.rbm)rbm from(
102.selectbm_and(t0.rbm)rbm from(
103.selectbuildbitmap(user_id)rbm
104.fromuser_basic_info where sex="男"
105.union all
106.selectbuildbitmap(user_id)rbm
107.fromexternal_user_basic_info where age="20-30"
108.)t0
109.union all
110.selectbuildbitmap(user_id)rbm
111.fromuser_basic_info whereborn_address="北京"
112.)t1
113.union all
114.selectbuildbitmap(user_id)rbm
115.fromuser_basic_info wheredgree="硕士"
116.)t2
117.这个sql表示的是性别为男且(and)年龄在20-30岁之间或者(or)出生地为北京,这些人中再去掉(andnot)硕士学历后的人群,其中buildbitmap表示位图构建函数,bm_
andnot、bm_and、bm_or表示了compute函数的三种类型(还有一种bm_xor)。从sql中可以看到,age='20-30'这个标签属于外部异构数据源(external_user_basic_info),即,外置标签,内置标签可为sex、address等。
118.对于没有直接支持的数据源,可以通过自定义的方式扩展此类mapreduce模型的计算框架的数据源模块,从而达到适配数据源的目的。
119.为了方便理解生成人群位图的过程,这里举例进行说明:
120.例如,一类人的共性,如年龄大于30岁、学历为硕士、第一次下单时间为最近七天,年龄大于30岁、学历为硕士、第一次下单时间为最近七天,即为外置标签,可以用运算符对外置标签进行组合,如或、且、非等,从而生成人群。如年龄大于30岁,且学历为硕士,并去掉第一次下单时间为最近七天,得到人群位图。
121.本发明实施例中,基于预设计算框架读取外置标签数据,即外部异构数据源后,通过自定义方式扩展类mapreduce模型的计算框架使其支持位图构建与计算,并通过sql语言与扩展后的类mapreduce模型的计算框架进行整合,使位图构建与计算的过程中可通过sql语言进行调用,从而使得外部异构数据源参与到人群位图构建的过程中,降低生成人群位图方式的局限性。
122.参考图3所示,为上述步骤s103中涉及到采用类mapreduce模型的计算框架,对内置标签数据和获取到的用户自定义的外置标签数据进行位图处理操作,得到人群位图,主要包括如下步骤:
123.步骤s301:对类mapreduce模型的计算框架创建第一类扩展和第二类扩展。
124.步骤s302:通过预设的sql语言和第一类扩展,对内置标签数据和获取到的用户自定义的外置标签数据进行位图构建,得到待处理位图。
125.步骤s303:通过预设的sql语言和第二类扩展,对待处理位图进行位运算,得到人群位图。
126.步骤s301-步骤s303的执行原理与上述步骤s103的执行原理一致,可参考,此处不再进行赘述。
127.本发明实施例中,通过预设的sql语言和第一类扩展,对内置标签数据和外置标签数据进行位图构建,得到待处理位图,通过预设的sql语言和第二类扩展,对待处理位图进行位图计算,得到人群位图,使位图构建与计算的过程中可以通过预设的sql语言进行调用,使得外部异构数据源参与到人群位图构建的过程中,降低生成人群位图方式的局限性。
128.基于上述实施例图1公开的一种数据处理方法,本发明实施例还对应公开了一种数据处理系统的结构示意图,如图4所示,该数据处理系统包括转换单元401和处理单元402。
129.转换单元401,用于对获取到的原始数据进行转换,得到内置标签数据,原始数据由数据仓库中的表构成,内置标签数据由原始数据转换成包含用户属性的表构成。
130.其中,通过预设转换脚本,对获取到的原始数据进行转换,得到内置标签数据,内置标签数据即为用户画像系统的系统标签。
131.处理单元402,用于采用类mapreduce模型的计算框架,对内置标签数据和获取到的用户自定义的外置标签数据进行标签位图处理操作,得到人群位图。
132.其中,通过扩展后的类mapreduce模型的计算框架,对内置标签数据和获取到的用
户自定义的外置标签数据进行位图构建和位图位运算,得到人群位图。优选通过预设的sql语言和类mapreduce模型的计算框架进行上述操作。
133.进一步的,转换单元401,具体用于通过预设转换脚本,对获取到的原始数据进行转换,得到内置标签数据。
134.进一步的,获取用户自定义的外置标签数据的过程的处理单元402,具体用于通过预设计算框架,获取用户自定义的外置标签数据。
135.进一步的,处理单元402包括构建模块和计算模块。
136.创建模块,用于对类mapreduce模型的计算框架创建第一类扩展和第二类扩展。
137.构建模块,用于通过预设的sql语言和第一类扩展,对内置标签数据和获取到的用户自定义的外置标签数据进行位图构建,得到待处理位图。
138.计算模块,用于通过预设的sql语言和第二类扩展,对待处理位图进行位图计算,得到人群位图。
139.其中,对待处理位图进行位运算,共有and(且)、or(或)、xor(异或)、andnot(非)四种类型计算类型。
140.本发明实施例中,基于预设计算框架读取外置标签数据,即外部异构数据源后,通过自定义的方式扩展类mapreduce模型的计算框架,使其支持位图构建与计算,并通过预设的sql语言与扩展后的类mapreduce模型的计算框架进行整合,使位图构建与计算的过程中可以通过预设的sql语言进行调用,从而使得外部异构数据源参与到人群位图构建的过程中,降低生成人群位图方式的局限性。
141.本发明实施例还提供了一种存储介质,存储介质包括存储的指令,其中,在指令运行时控制所述存储介质所在的设备执行上述数据处理方法。
142.本发明实施例还提供了一种电子设备,其结构示意图如图5所示,具体包括存储器501,以及一个或者一个以上的指令502,其中一个或者一个以上指令502存储于存储器501中,且经配置以由一个或者一个以上处理器503执行所述一个或者一个以上指令502进行以下操作:
143.对获取到的原始数据进行转换,得到内置标签数据,原始数据由数据仓库中的表构成,内置标签数据由原始数据转换成包含用户属性的表构成;
144.采用类mapreduce模型的计算框架,对内置标签数据和获取到的用户自定义的外置标签数据进行位图处理操作,得到人群位图。
145.上述各个实施例的具体实施过程及其衍生方式,均在本发明的保护范围之内。
146.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
147.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元
及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
148.对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
149.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1