CN113641697A - 人群生成方法、装置、电子设备和存储介质 - Google Patents
人群生成方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN113641697A CN113641697A CN202110932901.4A CN202110932901A CN113641697A CN 113641697 A CN113641697 A CN 113641697A CN 202110932901 A CN202110932901 A CN 202110932901A CN 113641697 A CN113641697 A CN 113641697A
- Authority
- CN
- China
- Prior art keywords
- bitmap
- label
- data
- tag
- crowd
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000012545 processing Methods 0.000 claims abstract description 56
- 238000004364 calculation method Methods 0.000 claims abstract description 38
- 230000002776 aggregation Effects 0.000 claims description 23
- 238000004220 aggregation Methods 0.000 claims description 23
- 238000010276 construction Methods 0.000 claims description 21
- 230000015654 memory Effects 0.000 claims description 21
- 238000003491 array Methods 0.000 claims description 7
- 238000004422 calculation algorithm Methods 0.000 claims description 4
- 239000000126 substance Substances 0.000 claims description 2
- 230000006870 function Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000008676 import Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000001914 filtration Methods 0.000 description 3
- 230000002688 persistence Effects 0.000 description 3
- 238000012216 screening Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001125 extrusion Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012821 model calculation Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000002747 voluntary effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种人群生成方法、装置、电子设备和存储介质,涉及数据处理领域。具体实现方案为:获取人群生成规则;其中,人群生成规则包括用于生成人群的至少一个标签信息和标签组合规则;根据每个标签信息,获取与每个标签信息对应的标签数据;通过预设的SQL语言和预设的类MapReduce模型,根据每个标签数据,生成与每个标签数据对应的标签位图;通过SQL语言和类MapReduce模型,根据标签组合规则对至少一个标签位图进行位运算操作,生成人群位图。本申请可以在大大缩短数据链路的同时也通过大数据平台的并行计算能力提升整个链路的计算负载。
Description
技术领域
本申请涉及数据处理领域,尤其涉及一种人群生成方法、装置、电子设备和存储介质。
背景技术
在移动互联网中,通常会对用户的基本特征和行为数据进行标签化处理,并将标签作为筛选人群的条件,从而计算出符合预期的人群,即生成人群包。例如,人群构建通常用于在用户画像系统中,通过不同标签之间的组合生成一个筛选条件,并根据该筛选条件获取数据库中符合该条件的用户集合。
发明内容
本申请提供了一种人群生成方法、装置、电子设备以及存储介质。
根据本申请的第一方面,提供了一种人群生成方法,包括:
确定人群生成规则;其中,所述人群生成规则包括用于生成人群的至少一个标签信息和标签组合规则;
根据每个所述标签信息,获取与每个所述标签信息对应的标签数据;
通过预设的SQL语言和预设的类MapReduce模型,根据每个所述标签数据,生成与每个所述标签数据对应的标签位图;
通过所述SQL语言和所述类MapReduce模型,根据所述标签组合规则对至少一个标签位图进行位运算操作,生成人群位图。
根据本申请的第二方面,提供了一种人群生成装置,包括:
第一获取模块,用于获取人群生成规则;其中,所述人群生成规则包括用于生成人群的至少一个标签信息和标签组合规则;
第二获取模块,用于根据每个所述标签信息,获取与每个所述标签信息对应的标签数据;
第一生成模块,用于通过预设的SQL语言和预设的类MapReduce模型,根据每个所述标签数据,生成与每个所述标签数据对应的标签位图;
第二生成模块,用于通过所述SQL语言和所述类MapReduce模型,根据所述标签组合规则对至少一个标签位图进行位运算操作,生成人群位图。
根据本申请的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述第一方面所述的人群生成方法。
根据本申请的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行前述第一方面所述的人群生成方法。
根据本申请的技术方案,将尽可能多地计算过程放在大数据平台中,尽可能减少数据导入和导出的过程,利用大数据平台分布式计算的能力进行位图的构建和计算,在大大缩短数据链路的同时也通过大数据平台的并行计算能力提升整个链路的计算负载。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是整数数据类型int和bit位的内存存储方式示例图;
图2是现有技术中人群生成方案中数据链路的示例图;
图3是本申请实施例所提供的一种人群生成方法的流程图;
图4是本申请实施例的计算调度的示例图;
图5是本申请实施例的人群位图存储和使用的示例图;
图6是本申请实施例的人群生成方案中数据链路的示例图;
图7是本申请实施例所提供的一种人群生成装置的结构框图;
图8是本申请实施例所提供的另一种人群生成装置的结构框图;
图9是用来实现本申请实施例的用以实现人群生成方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要说明的是,本申请实施例中所涉及的个人信息数据均已通过用户自愿授权,个人信息的获取、存储、处理和传输等均符合相关法律法规的要求。
首先对本申请所涉及的关键概念进行相应介绍。
位图:假设在有10亿用户,每一位用户的唯一编号为整数数据(int)类型(其中一个整数数据类型包括4Byte,共32bit),那么光是保存这些用户id就需要3.72G内存(即4*1000000000/1024/1024/1024)。如果是40亿用户,则需要16G内存,在进行标签组合筛选时,会给应用带来非常大的计算压力,所以在多标签组合筛选的场景,一般会选取位图(Bitmap)这种数据结构来储存标签,并通过位图计算生成人群。在程序中,能够访问的最小单位是位(bit),位只能保存0或者1,用位来表示某个用户是否命中该标签,则10亿人群只需要120M左右,就体积来说有32倍的差距。如图1所示,图1中(a)是用一个int(32bit)来保存一个数字,图1中(b)的每个bit都表示一个用户,图1中(b)也可以看成一个bit的数组,而数组的下标就可以用来区分用户。
位图除了在上述场景下对于数据存储有着非常大的优势,在多个位图进行且、或、非运算的时候,位图采用位运算,调用了计算机底层的能力,所以速度非常快,而位图的且、或、非运算也正好对应了组合标签的运算符。
相关技术中,生成人群的流程大致分为三步:标签生成;位图构建;根据标签组合规则对一个活多个位图进行位运算得到对应的人群。其中,如图2所示,第一步标签生成一般是在基于数据仓库之上数据集市中加工完成,如果数据量特别大,一般数据仓库和数据集市都基于围绕Hadoop生态圈搭建的大数据平台。由于海量数据的位图构建与计算比较特征,所以需要在第二步之前,将标签数据导入到原生支持位图计算的数据库中,进行构建和计算,并且得到最后的结果。
然而,由于需要将标签数据导入到支持位图构建和位图计算的数据中,这个过程受限于目前数据库的写入和数据集市的读取能力以及本身的数据规模,整个过程非常漫长,耗时占整个数据链路的60%以上,如果人群和标签数量在数千以上,整个过程会持续大半天甚至更长,直接大大拉低了人群生成的时效性,也降低了整个架构的扩展性。另外,需要在大数据平台之外部署额外的数据库集群,从而会提高成本。此外,在数据导入完成后,受限于数据库本身的并发能力,无法大规模并行计算,只能串行构建位图和位图计算,这也降低了整个数据链路的时效性。
为此,为了解决上述至少一个问题,本申请提供了一种人群生成方法、装置、电子设备和存储介质。下面参考附图描述本申请实施例的人群生成方法、装置、电子设备和存储介质。
图3是本申请实施例所提供的一种人群生成方法的流程图。需要说明的是,本申请实施例的人群生成方法可应用于大数据平台。也就是说,本申请实施例的人群生成方法的执行主体可为大数据平台。
还需要说明的是,本实施例方法可以由本申请实施例的人群生成装置来执行,该装置可以采用软件和/或硬件的方式实现,并可集成在大数据平台上。作为一种示例,该大数据平台可由服务器集群等电子设备来实现。
如图3所示,该人群生成方法可以至少包括以下步骤:
步骤301,获取人群生成规则;其中,人群生成规则包括用于生成人群的至少一个标签信息和标签组合规则。
可选地,预先设定有一个或多个人群生成规则,每个人群生成规则可包括用于生成该人群时所需要的标签信息和标签组合规则。这样,在需要生成某人群时,可获取对应人群生成规则,以便基于该人群生成规则进行对应人群位图的生成。
步骤302,根据每个标签信息,获取与每个标签信息对应的标签数据。
可选地,根据每个标签信息从数据仓库中获取原始数据,并对获取到的原始数据进行转换,得到与每个标签信息对应的标签数据。其中,在本申请实施例中,该标签数据可由原始数据转换成包含对应标签信息的表构成。
作为一种示例,以“人群生成规则为“性别为男且(and)年龄在20-30岁之间或者(or)出生地为北京”为例,可知该人群生成规则中包括的标签信息为标签1“性别为男”、标签2“年龄在20-30岁之间”、标签3“出生地为北京”,标签组合规则为“标签1and标签2or标签3”,在得到标签信息后,可根据该标签信息从数据仓库中获取原始数据,并对获取到的原始数据进行转换,得到与该标签信息对应的标签数据,例如该标签数据可以是由原始数据转换成包含该性别标签信息的表构成,如该标签数据可以是由包含性别标签的所有用户的表构成。
步骤303,通过预设的SQL语言和预设的类MapReduce模型,根据每个标签数据,生成与每个标签数据对应的标签位图。
在本申请一些实施例中,可通过预设的SQL语言和预设的类MapReduce模型的计算框架之中第一类扩展,对每个标签数据进行位图构建,得到与每个标签数据对应的标签位图。
在一种实现方式中,本申请实施例的大数据平台上预先设置类MapReduce模型的计算框架。在本申请实施例中,类MapReduce模型的计算框架中预留了类似于单行处理模块和聚合处理模块,通过单行处理模块和聚合处理模块实现位图的分布式构建和计算。
在本申请实施例中,类MapReduce模型的计算框架中还预先构建了第一类扩展和第二类扩展。其中,第一类扩展可用于负责标签位图的构建;第二类扩展用于负责位图计算,即位运算操作。
作为一种示例,针对每个标签数据,通过SQL语言和第一类扩展,基于类MapReduce模型的计算框架之中单行处理模块将标签数据转换成对应的多个字节数组,并基于类MapReduce模型的计算框架之中聚合处理模块,将每个字节数组转换成对应的位数据结构,得到待处理数据,并通过位图算法将待处理数据进行合并,得到标签数据对应的标签位图。例如,在得到标签数据后,可通过SQL语言和人群生成规则生成对应的可执行SQL语句,通过类MapReduce模型的计算框架来执行该SQL语句以实现标签位图的构建,也就是说,通过在类MapReduce模型的计算框架中构建了第一类扩展,并与SQL引擎进行整合,从而可以通过SQL语言和类MapReduce模型的计算框架即可实现标签位图的构建。
其中,在本申请实施例中,单行处理模块可以由Map接口或者其他具有单行处理功能的工具来实现单行处理,聚合处理模块可以由Reduce接口或者其他具有聚合处理功能的具体来实现聚合处理,对此本申请不做具体限定。其中,聚合处理模块可以对单行处理模块的处理结果做聚合处理。可选地,通过SQL语言和第一类扩展对标签数据进行位图构建时,可基于单行处理模块将标签数据转换成对应的字节数组,并基于聚合处理模块将多个字节数组转换成位图。其中,以单行处理模块由Map接口来实现的,聚合处理模块由Reduce接口来实现的为例,单行处理模块可具有多个Map Task(Map任务),聚合处理模块也可具有多个Reduce Task(Reduce任务)。在Map Task中,对于单行来说,需要实现输入一个int型数字,结果返回为一个字节数组,用于保存这个数字所代表的位信息。在Reduce Task中,将多个字节数组先转换为位图bitmap这种数据结构,并通过bitmap的合并功能进行合并,最后结果为1个位图。
步骤304,通过SQL语言和类MapReduce模型,根据标签组合规则对至少一个标签位图进行位运算操作,生成人群位图。
在本申请一些实施例中,可通过SQL语言和预设的类MapReduce模型的计算框架之中第二类扩展,根据标签组合规则对至少一个标签位图进行位运算操作,得到人群位图。
在本申请实施例中,可通过SQL语言和第二类扩展,基于类MapReduce模型的计算框架之中单行处理模块将至少一个标签位图分别插入至对应列中,并基于类MapReduce模型的计算框架之中聚合处理模块,根据标签组合规则对所有列中的至少一个标签位图进行位运算操作,得到人群位图。例如,在得到标签位置后,通过类MapReduce模型的计算框架来执行该SQL语句以实现标签位图的构建,也就是说,通过在类MapReduce模型的计算框架中构建了第二类扩展,并与SQL引擎进行整合,从而可以通过SQL语言和类MapReduce模型的计算框架即可实现标签位图的计算。
其中,在本申请实施例中,单行处理模块可以由Map接口或者其他具有单行处理功能的工具来实现单行处理,聚合处理模块可以由Reduce接口或者其他具有聚合处理功能的具体来实现聚合处理,对此本申请不做具体限定。其中,聚合处理模块可以对单行处理模块的处理结果做聚合处理。可选地,通过第二类扩展进行位图计算时,可基于单行处理模块将需要做计算的位图插入到某一列中,即每一行一个位图。在Reduce Task中,可根据标签组合规则对标签位图进行位运算操作,从而可以得到人群位图。
也就是说,在针对不同计算引擎实现单行处理模块和聚合处理模块后,需要与各自SQL引擎进行整合,这样就能通过以SQL的方式实现计算过程的调用。整合的方式有两种:第一种,与计算框架集成,这种方式需要修改计算引擎的源代码文件,新增这两类扩展(即第一类扩展和第二类扩展),并通过函数注册器进行注册。这种方式让使用者不用每次在使用时进行注册,而直接作为原生函数进行使用。第二种,在每次使用时对这两类扩展(即第一类扩展和第二类扩展)进行定义与注册。注册完成后,就可以通过SQL进行位图的构建和计算,也就是人群生成的过程。举例而言,以如下SQL语句为例:
selectbm_andnot(t2.rbm)from(
selectbm_or(t1.rbm)rbm from(
selectbm_and(t0.rbm)rbm from(
selectbuildbitmap(user_id)rbm
from user_basic_info where sex="男"
union all
selectbuildbitmap(user_id)rbm
fromuser_basic_info where age="20-30"
)t0
union all
selectbuildbitmap(user_id)rbm
from user_basic_info whereborn_address="北京"
)t1
union all
selectbuildbitmap(user_id)rbm
from user_basic_info wheredgree="硕士"
)t2
这个SQL表示的是性别为男且(and)年龄在20-30岁之间或者(or)出生地为北京,这些人中再去掉(andNot)硕士学历后的人群,其中buildbitmap表示位图构建函数(如上述第一类扩展),bm_andnot(位运算类型为非)、bm_and(位运算类型为且)、bm_or(位运算类型为或)表示了Compute函数(如上述第二类扩展)的三种类型(还有一种bm_xor(位运算类型为异或))。
其中,在获取待生成人群的生成规则后,可从该生成规则中获取标签信息和标签组合规则,其中标签信息可为:标签1(性别男)、标签2(年龄20-30之间)、标签3(出生地为北京)、标签4(学历为硕士);标签组合规则为:标签1and标签2or标签3andNot标签4。可根据标签信息获取对应的标签数据。通过SQL语言和类MapReduce模型的计算框架之中第一类扩展对标签信息进行位图构建,得到标签数据对应的标签位图。通过SQL语言和类MapReduce模型的计算框架之中第二类扩展,根据标签组合规则对至少一个标签位图进行位运算操作,以得到人群位图。
由此可见,本申请对大数据平台上的类MapReduce模型的计算框架进行了扩展后,人群可通过SQL作业就能生成,为了更进一步提升数据链路的时效性和集群资源利用,当用于生成的人群为多个(即需要生成多个人群)时,可采用异步的调度策略对多个人群的位图计算作业进行调度。因为不同标签作业完成的时间是不相同,而不同人群用到的标签组合也是不同的,这就导致每个人群可以开始计算的时间也是不同的(只要这个人群所用的标签作业完成后就可以开始计算),所以,如图4所示,当一个人群准备好计算时,就可以调度人群作业开始计算,而不用得到所有标签就绪才开始人群的计算,这样至少可以达到以下有益效果:对于单个人群来说,时效性进一步显著提升,尤其是对于那些标签完成较早的人群;对于集群资源利用更加合理,这是因为如果一次性提交所有人群计算作业,会造成集群资源挤压,影响其他部门的计算任务;能够保证大多数人群在某个阈值之前完成构建,对于这恶数据流更加灵活可控。
可以理解,人群是标签位图组合并计算生成的位图,按照位图的定义,容量为int数字最大值的位图是2^32bit,也就是512MB(即2^32/8/1024/1024),而人群数据又是经常会被读取和使用的,所以为了增加访问人群的速度,有必要将其缓存。在本申请实施例中,人群输出的地址为一个带有分层缓存的文件系统,该文件系统往往也存在于大数据平台中,甚至有可能与标签数据保存在同一个文件系统,文件系统与缓存的URL都进行了统一,所以人群计算写入的地址和应用读取的地址一样的,而文件系统与缓存之间的同步策略,由文件系统的缓存策略进行控制。
例如,如图5所示,人群写入的目标系统的地址为fs:/my_crwod/,当写入持久化层后,即返回成功,人群计算作业停止。持久化层会持续的将数据加载到缓存层,当应用通过fs:/my_crwod/去访问人群数据时,文件系统首先会从缓存层中查找是否有该数据,如果有的话,则返回,如果缓存层没有,则从持久化层进行读取,返回给应用,于此同时,会在缓存层里保存一份,以供下次使用。
由此可见,本申请通过在大数据平台上的计算框架进行扩展,使其支持位图构建与计算,并与其SQL引擎进行整合,使整个过程都可以通过SQL进行调用,从而可以将图2所示的数据链路简化为图6所示的数据链路,可见,本申请将尽可能多地计算过程放在大数据平台中,尽可能减少数据导入和导出的过程,利用大数据平台分布式计算的能力进行位图的构建和计算,在大大缩短数据链路的同时也通过大数据平台的并行计算能力提升整个链路的计算负载。也就是说,本申请所涉及的人群生成方案不涉及数据导入和导出,均存在与组织内部的大数据平台中。
综上所述,本申请通过将尽可能多地计算过程放在大数据平台中,减少了导入外部数据库的部分,直接通过大数据平台进行人群计算,大数据平台可以轻易地利用其能力进行并行计算,并且在作业调度,与缓存架构上做了一定的优化,可以进一步提升整个链路的时效性。
为了实现上述实施例,本申请还提出了一种人群生成装置。
图7是本申请实施例所提供的一种人群生成装置的结构框图。如图7所示,该人群生成装置可以包括:第一获取模块701、第二获取模块702、第一生成模块703和第二生成模块704。
其中,第一获取模块701用于获取人群生成规则;其中,人群生成规则包括用于生成人群的至少一个标签信息和标签组合规则。
第二获取模块702用于根据每个标签信息,获取与每个标签信息对应的标签数据。作为一种示例,第二获取模块702根据每个标签信息从数据仓库中获取原始数据,并对获取到的原始数据进行转换,得到与每个标签信息对应的标签数据;其中,标签数据由原始数据转换成包含对应标签信息的表构成。
第一生成模块703用于通过预设的SQL语言和预设的类MapReduce模型,根据每个标签数据,生成与每个标签数据对应的标签位图。在一种实现方式中,第一生成模块703通过SQL语言和预设的类MapReduce模型的计算框架之中第一类扩展,对每个标签数据进行位图构建,得到与每个标签数据对应的标签位图。作为一种示例,第一生成模块703具体用于:针对每个标签数据,通过SQL语言和第一类扩展,基于类MapReduce模型的计算框架之中单行处理模块将标签数据转换成对应的多个字节数组;基于类MapReduce模型的计算框架之中聚合处理模块,将每个字节数组转换成对应的位数据结构,得到待处理数据,并通过位图算法将待处理数据进行合并,得到标签数据对应的标签位图。
第二生成模块704用于通过预设的SQL语言和预设的类MapReduce模型,根据标签组合规则对至少一个标签位图进行位运算操作,生成人群位图。在一种实现方式中,第二生成模块704通过SQL语言和预设的类MapReduce模型的计算框架之中第二类扩展,根据标签组合规则对至少一个标签位图进行位运算操作,得到人群位图。
作为一种示例,第二生成模块704具体用于:通过SQL语言和第二类扩展,基于类MapReduce模型的计算框架之中单行处理模块将至少一个标签位图分别插入至对应列中;基于类MapReduce模型的计算框架之中聚合处理模块,根据标签组合规则对所有列中的至少一个标签位图进行位运算操作,得到人群位图。
在一些实施例中,当用于生成人群为多个(即需要生成多个人群)时,如图8所示,该人群生成装置还可包括:调度模块805。其中,调度模块805用于采用异步的调度策略对多个人群的位图计算作业进行调度。其中,图8中801-804和图7中701-704具有相同功能和结构。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
综上所述,本申请通过将尽可能多地计算过程放在大数据平台中,减少了导入外部数据库的部分,直接通过大数据平台进行人群计算,大数据平台可以轻易地利用其能力进行并行计算,并且在作业调度,与缓存架构上做了一定的优化,可以进一步提升整个链路的时效性。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图9所示,是根据本申请实施例的用以实现人群生成方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图9所示,该电子设备包括:一个或多个处理器901、存储器902,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图9中以一个处理器901为例。
存储器902即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的人群生成方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的人群生成方法。
存储器902作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的人群生成方法对应的程序指令/模块。处理器901通过运行存储在存储器902中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的人群生成方法。
存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据用以实现人群生成方法的电子设备的使用所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至用以实现人群生成方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
用以实现人群生成方法的电子设备还可以包括:输入装置903和输出装置904。处理器901、存储器902、输入装置903和输出装置904可以通过总线或者其他方式连接,图9中以通过总线连接为例。
输入装置903可接收输入的数字或字符信息,以及产生与用以实现人群生成方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置904可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (16)
1.一种人群生成方法,其特征在于,包括:
获取人群生成规则;其中,所述人群生成规则包括用于生成人群的至少一个标签信息和标签组合规则;
根据每个所述标签信息,获取与每个所述标签信息对应的标签数据;
通过预设的SQL语言和预设的类MapReduce模型,根据每个所述标签数据,生成与每个所述标签数据对应的标签位图;
通过所述SQL语言和所述类MapReduce模型,根据所述标签组合规则对至少一个标签位图进行位运算操作,生成人群位图。
2.根据权利要求1所述的方法,其特征在于,所述根据每个所述标签信息,获取与每个所述标签信息对应的标签数据,包括:
根据每个所述标签信息从数据仓库中获取原始数据;
对获取到的原始数据进行转换,得到与每个所述标签信息对应的标签数据;其中,所述标签数据由所述原始数据转换成包含对应标签信息的表构成。
3.根据权利要求1所述的方法,其特征在于,所述通过预设的SQL语言和预设的类MapReduce模型,根据每个所述标签数据,生成与每个所述标签数据对应的标签位图,包括:
通过预设的SQL语言和预设的类MapReduce模型的计算框架之中第一类扩展,对每个所述标签数据进行位图构建,得到与每个所述标签数据对应的标签位图。
4.根据权利要求3所述的方法,其特征在于,所述通过预设的SQL语言和预设的类MapReduce模型的计算框架之中第一类扩展,对每个所述标签数据进行位图构建,得到与每个所述标签数据对应的标签位图,包括:
针对每个所述标签数据,通过所述SQL语言和所述第一类扩展,基于所述类MapReduce模型的计算框架之中单行处理模块将所述标签数据转换成对应的多个字节数组;
基于所述类MapReduce模型的计算框架之中聚合处理模块,将每个所述字节数组转换成对应的位数据结构,得到待处理数据,并通过位图算法将所述待处理数据进行合并,得到所述标签数据对应的标签位图。
5.根据权利要求1所述的方法,其特征在于,所述通过所述SQL语言和所述类MapReduce模型,根据所述标签组合规则对至少一个标签位图进行位运算操作,生成人群位图,包括:
通过所述SQL语言和所述类MapReduce模型的计算框架之中第二类扩展,根据所述标签组合规则对所述至少一个标签位图进行位运算操作,得到所述人群位图。
6.根据权利要求5所述的方法,其特征在于,所述通过所述SQL语言和所述类MapReduce模型的计算框架之中第二类扩展,根据所述标签组合规则对所述至少一个标签位图进行位运算操作,得到所述人群位图,包括:
通过所述SQL语言和所述第二类扩展,基于所述类MapReduce模型的计算框架之中单行处理模块将所述至少一个标签位图分别插入至对应列中;
基于所述类MapReduce模型的计算框架之中聚合处理模块,根据所述标签组合规则对所有列中的所述至少一个标签位图进行位运算操作,得到所述人群位图。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述人群为多个时,所述方法还包括:
采用异步的调度策略对多个人群的位图计算作业进行调度。
8.一种人群生成装置,其特征在于,包括:
第一获取模块,用于获取人群生成规则;其中,所述人群生成规则包括用于生成人群的至少一个标签信息和标签组合规则;
第二获取模块,用于根据每个所述标签信息,获取与每个所述标签信息对应的标签数据;
第一生成模块,用于通过预设的SQL语言和预设的类MapReduce模型,根据每个所述标签数据,生成与每个所述标签数据对应的标签位图;
第二生成模块,用于通过所述SQL语言和所述类MapReduce模型,根据所述标签组合规则对至少一个标签位图进行位运算操作,生成人群位图。
9.根据权利要求8所述的装置,其特征在于,所述第二获取模块具体用于:
根据每个所述标签信息从数据仓库中获取原始数据;
对获取到的原始数据进行转换,得到与每个所述标签信息对应的标签数据;其中,所述标签数据由所述原始数据转换成包含对应标签信息的表构成。
10.根据权利要求8所述的装置,其特征在于,所述第一生成模块具体用于:
通过预设的SQL语言和预设的类MapReduce模型的计算框架之中第一类扩展,对每个所述标签数据进行位图构建,得到与每个所述标签数据对应的标签位图。
11.根据权利要求10所述的装置,其特征在于,所述第一生成模块具体用于:
针对每个所述标签数据,通过所述SQL语言和所述第一类扩展,基于所述类MapReduce模型的计算框架之中单行处理模块将所述标签数据转换成对应的多个字节数组;
基于所述类MapReduce模型的计算框架之中聚合处理模块,将每个所述字节数组转换成对应的位数据结构,得到待处理数据,并通过位图算法将所述待处理数据进行合并,得到所述标签数据对应的标签位图。
12.根据权利要求8所述的装置,其特征在于,所述第二生成模块具体用于:
通过所述SQL语言和所述类MapReduce模型的计算框架之中第二类扩展,根据所述标签组合规则对所述至少一个标签位图进行位运算操作,得到所述人群位图。
13.根据权利要求12所述的装置,其特征在于,所述第二生成模块具体用于:
通过所述SQL语言和所述第二类扩展,基于所述类MapReduce模型的计算框架之中单行处理模块将所述至少一个标签位图分别插入至对应列中;
基于所述类MapReduce模型的计算框架之中聚合处理模块,根据所述标签组合规则对所有列中的所述至少一个标签位图进行位运算操作,得到所述人群位图。
14.根据权利要求8至13中任一项所述的装置,其特征在于,所述人群为多个时,所述装置还包括:
调度模块,用于采用异步的调度策略对多个人群的位图计算作业进行调度。
15.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至7中任一项所述的人群生成方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1至7中任一项所述的人群生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110932901.4A CN113641697A (zh) | 2021-08-13 | 2021-08-13 | 人群生成方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110932901.4A CN113641697A (zh) | 2021-08-13 | 2021-08-13 | 人群生成方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113641697A true CN113641697A (zh) | 2021-11-12 |
Family
ID=78421810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110932901.4A Pending CN113641697A (zh) | 2021-08-13 | 2021-08-13 | 人群生成方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113641697A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108415978A (zh) * | 2018-02-09 | 2018-08-17 | 北京腾云天下科技有限公司 | 用户标签存储方法、用户画像计算方法及计算设备 |
WO2018216648A1 (ja) * | 2017-05-22 | 2018-11-29 | 日本電気株式会社 | 群衆状態認識装置、学習方法および学習プログラム |
CN110648185A (zh) * | 2019-11-28 | 2020-01-03 | 苏宁云计算有限公司 | 一种目标人群圈选方法、装置及计算机设备 |
CN112860808A (zh) * | 2020-12-30 | 2021-05-28 | 深圳市华傲数据技术有限公司 | 基于数据标签的用户画像分析方法、装置、介质和设备 |
-
2021
- 2021-08-13 CN CN202110932901.4A patent/CN113641697A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018216648A1 (ja) * | 2017-05-22 | 2018-11-29 | 日本電気株式会社 | 群衆状態認識装置、学習方法および学習プログラム |
CN108415978A (zh) * | 2018-02-09 | 2018-08-17 | 北京腾云天下科技有限公司 | 用户标签存储方法、用户画像计算方法及计算设备 |
CN110648185A (zh) * | 2019-11-28 | 2020-01-03 | 苏宁云计算有限公司 | 一种目标人群圈选方法、装置及计算机设备 |
CN112860808A (zh) * | 2020-12-30 | 2021-05-28 | 深圳市华傲数据技术有限公司 | 基于数据标签的用户画像分析方法、装置、介质和设备 |
Non-Patent Citations (1)
Title |
---|
尹佳佳: "新闻领域的用户画像系统分析", 福建电脑, vol. 36, no. 12, 25 December 2020 (2020-12-25), pages 154 - 155 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391653B (zh) | 一种分布式NewSQL数据库系统及图片数据储存方法 | |
JP7194252B2 (ja) | マルチタスクモデルのパラメータ更新方法、装置及び電子機器 | |
US20190026491A1 (en) | Event processing system | |
WO2019099310A1 (en) | Resource-efficient generation of a knowledge graph | |
CN108228817A (zh) | 数据处理方法、装置和系统 | |
CN112269789B (zh) | 存储数据的方法和装置、以及读取数据的方法和装置 | |
CN111639078A (zh) | 数据查询方法、装置、电子设备以及可读存储介质 | |
CN103262062A (zh) | 用于执行嵌套连接操作的系统和方法 | |
CN110737682A (zh) | 一种缓存操作方法、装置、存储介质和电子设备 | |
JP5844895B2 (ja) | データの分散検索システム、データの分散検索方法及び管理計算機 | |
CN112559522A (zh) | 数据存储方法、装置、查询方法、电子设备及可读介质 | |
US10248668B2 (en) | Mapping database structure to software | |
CN111461343A (zh) | 模型参数更新方法及其相关设备 | |
CN111259107A (zh) | 行列式文本的存储方法、装置以及电子设备 | |
US20220374406A1 (en) | KV Database Configuration Method, Query Method, Device, and Storage Medium | |
CN114185895A (zh) | 数据导入导出方法、装置、电子设备及存储介质 | |
CN113722533B (zh) | 信息推送方法、装置、电子设备及可读存储介质 | |
US20210312240A1 (en) | Header Model For Instance Segmentation, Instance Segmentation Model, Image Segmentation Method and Apparatus | |
CN112579897B (zh) | 信息搜索方法和装置 | |
CN111290714B (zh) | 数据读取方法和装置 | |
CN113344074A (zh) | 模型训练方法、装置、设备及存储介质 | |
CN116932147A (zh) | 流式作业处理方法、装置、电子设备及介质 | |
CN111026916A (zh) | 文本描述的转换方法、装置、电子设备及存储介质 | |
CN110781205A (zh) | 一种基于jdbc的数据库直查方法、装置及系统 | |
CN113641697A (zh) | 人群生成方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |