CN115114359B - 用户数据处理方法及装置 - Google Patents
用户数据处理方法及装置 Download PDFInfo
- Publication number
- CN115114359B CN115114359B CN202210590834.7A CN202210590834A CN115114359B CN 115114359 B CN115114359 B CN 115114359B CN 202210590834 A CN202210590834 A CN 202210590834A CN 115114359 B CN115114359 B CN 115114359B
- Authority
- CN
- China
- Prior art keywords
- task
- processing
- database
- processed
- target
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title abstract description 52
- 238000012545 processing Methods 0.000 claims abstract description 588
- 238000000034 method Methods 0.000 claims abstract description 155
- 230000008569 process Effects 0.000 claims description 103
- 238000003860 storage Methods 0.000 claims description 38
- 238000004590 computer program Methods 0.000 claims description 12
- 230000006870 function Effects 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 6
- 238000013467 fragmentation Methods 0.000 claims description 4
- 238000006062 fragmentation reaction Methods 0.000 claims description 4
- 239000000758 substrate Substances 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 27
- 238000004364 calculation method Methods 0.000 description 10
- 230000004044 response Effects 0.000 description 10
- 230000000007 visual effect Effects 0.000 description 9
- 238000007726 management method Methods 0.000 description 8
- 238000012544 monitoring process Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000012800 visualization Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000003379 elimination reaction Methods 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012550 audit Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 239000010410 layer Substances 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000002346 layers by function Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012358 sourcing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0251—Targeted advertisements
- G06Q30/0255—Targeted advertisements based on user history
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Software Systems (AREA)
- Entrepreneurship & Innovation (AREA)
- Game Theory and Decision Science (AREA)
- Economics (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种用户数据处理方法及装置。所述方法包括:获取用户数据;从所述用户数据中获取与配置条件匹配的目标数据;基于所述目标数据,确定待处理任务;在满足设定的任务处理条件的情况下,将所述待处理任务记录到第一数据库中,并基于所述第一数据库对所述待处理任务进行处理,得到处理结果,其中,所述第一数据库为基于大规模并行处理的数据库;在所述第一数据库中以位图的形式存储所述处理结果。
Description
技术领域
本申请属于计算机领域,具体涉及一种用户数据处理方法及装置。
背景技术
随着互联网的普及,越来越多的用户倾向于利用互联网来完成各种用户操作(例如,网络购物、网络点餐等),这样会在网络上留下大量的用户数据。
由于用户数据的价值极高(例如,可以通过研究用户数据了解用户的习惯,以便于针对性地展开营销活动等),如何对用户数据进行处理是一个值得关注的研究方向。
然而,相关技术在对用户数据进行处理的过程中会存在处理速度较慢的问题。
发明内容
本申请实施例提供一种用户数据处理方法及装置,能够解决相关技术在对用户数据进行处理的过程中存在的处理速度较慢的问题。
第一方面,本申请实施例提供了一种用户数据处理方法,该方法包括:
获取用户数据;
从所述用户数据中获取与配置条件匹配的目标数据;
基于所述目标数据,确定待处理任务;
在满足设定的任务处理条件的情况下,将所述待处理任务记录到第一数据库中,并基于所述第一数据库对所述待处理任务进行处理,得到处理结果,其中,所述第一数据库为基于大规模并行处理(Massively Parallel Processing,MPP)的数据库;
在所述第一数据库中以位图的形式存储所述处理结果。
第二方面,本申请实施例提供了一种用户数据处理装置,该装置包括:获取模块、处理模块、存储模块;其中:
所述获取模块,用于获取用户数据;从所述用户数据中获取与配置条件匹配的目标数据;
所述处理模块,用于基于所述目标数据,确定待处理任务;
所述存储模块,用于在满足设定的任务处理条件的情况下,将所述待处理任务记录到第一数据库中;
所述处理模块,还用于基于所述第一数据库对所述待处理任务进行处理,得到处理结果,其中,所述第一数据库为基于MPP的数据库;
所述存储模块,还用于在所述第一数据库中以位图的形式存储所述处理结果。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括处理器和存储器,所述存储器存储程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。
第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。
第五方面,本申请实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法。
第六方面,本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如第一方面所述的方法。
在本申请实施例中,获取用户数据;从所述用户数据中获取与配置条件匹配的目标数据;基于所述目标数据,确定待处理任务;在满足设定的任务处理条件的情况下,将所述待处理任务记录到第一数据库中,并基于所述第一数据库对所述待处理任务进行处理,得到处理结果,其中,所述第一数据库为基于MPP的数据库;在所述第一数据库中以位图的形式存储所述处理结果。如此,在处理用户数据的过程中,由于基于MPP的第一数据库支持大规模数据并行处理,响应速度快,且基于位图形式存储处理结果可以保证快速计算(例如,可以通过位图取交集或并集,快速获取具有相同特征的用户群体等),因而这种利用基于MPP的数据库进行任务处理并采用位图形式存储处理结果的用户数据处理方法,可以提高用户数据处理速度。
附图说明
图1是本申请实施例提供的一种网络架构的示意图;
图2是本申请实施例提供的一种用户数据处理方法的流程图;
图3是本申请实施例提供的一种用户数据处理方法的流程图;
图4是本申请实施例提供的一种用户数据处理方法的设计方案的框图;
图5是本申请实施例提供的一种用户数据处理方法的示意图;
图6是本申请实施例提供的一种用户数据处理方法的流程图;
图7-1是本申请实施例中的标签业务的架构图;图7-2是本申请实施例中的标签加工跑批过程的示意图;图7-3是本申请实施例中的标签跑批监控过程的示意图;
图8是本申请实施例提供的一种用户数据处理方法的流程图;
图9-1是本申请实施例中的人群包业务的架构图;图9-2是本申请实施例中的人群包任务扫描过程的示意图;图9-3是本申请实施例中的人群包任务执行过程的示意图;图9-4是本申请实施例中的人群包跑批任务监控过程的示意图;
图10是本申请实施例提供的一种用户数据处理方法的流程图;
图11-1是本申请实施例提供的一种人群包推送方法的流程图;图11-2是本申请实施例中针对人群包订阅任务生成处理任务的过程的示意图;图11-3是本申请实施例中人群包订阅任务监控过程的示意图;11-4是本申请实施例中人群包订阅任务推送过程的示意图;
图12是本申请实施例提供的一种用户数据处理装置的结构框图;
图13是本申请实施例提供的一种电子设备的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
相关技术在用户数据处理的过程中可能会基于ES(Elasticsearch)存储,这种基于ES存储的用户数据处理方式可能会存在以下问题:其一,处理速度较慢;其二,无法监控任务处理情况;其三,无法手动或人为干预任务的处理过程。
本申请实施例提供的用户数据处理方法,在得到待处理任务之后,在满足设定的任务处理条件的情况下,通过调用基于MPP的第一数据库处理待处理任务,并将得到的处理结果以位图的形式存储在所述第一数据库中,可以提高用户数据处理速度。具体地,由于基于MPP的第一数据库支持大规模数据并行处理,响应速度快,且基于位图形式存储处理结果可以保证快速计算(例如,可以通过位图取交集或并集,快速获取具有相同特征的用户群体等),因而这种利用基于MPP的数据库进行任务处理并采用位图形式存储处理结果的用户数据处理方法,可以大大提高用户数据处理速度。
而且,在本申请实施例中,在基于第一数据库对所述待处理任务进行处理的过程中,通过主动记录所述待处理任务的处理状态,这样在接收到用于查询所述待处理任务的处理状态目标指令的情况下,即可获取所述待处理任务的处理状态,并返回所述待处理任务的处理状态。如此,通过主动记录处理状态,即便在任务的处理过程中也可以监控任务的处理情况。
同时,在本申请实施例中,在待处理任务的处理过程中,可以通过用户界面主动地手动或人为干预任务的处理过程,例如指定待处理任务的执行时间、执行优先级等。
另外,本申请实施例中的待处理任务可以为与用户数据相关的各种待处理任务,例如待处理标签任务、待处理人群包任务或者待处理的人群包订阅任务等。这样一来,本申请实施例提供的数据处理方法可以基于待处理标签任务,得到个人画像,可以基于待处理人群包任务,得到人群包画像,还可以基于待处理的人群包订阅任务,进行人群包名单推送,更好地实现精准化营销。也就是说,本申请实施例提供的用户数据处理方法可以应用于多种不同场景,应用场景丰富。
同时,值得注意的是,本申请实施例提供的基于MPP的第一数据库可以为starrocks数据库或者Doris数据库,通过利用这类数据库提供的位图函数可以快速、灵活处理海量事件、标签、人群包及人群包名单数据。同时,通过利用诸如show load等指令可监控标签任务、人群包任务或人群包订阅任务的处理情况。
下面结合附图,详细说明本申请各实施例提供的技术方案。
图1是本申请实施例提供的一种网络架构的示意图,所述网络架构可以适用于本申请实施例提供的用户数据处理方法。如图1所示,所述网络架构可以包括多台电子设备,各台电子设备之间通过网络连接,也就是说,图1所示网络架构可以为分布式网络架构。图1所示网络架构示例性地示出了电子设备110,电子设备120,电子设备130和电子设备140,但是,需了解这只是用于举例,实际上可以包括更多或更少的电子设备。例如,在一种情况下,所示网络架构可以仅包括一台电子设备,此时不是分布式网络架构;在另一种情况下,所示网络架构可以包括五台或更多台电子设备,他们通过网络相连。其中,电子设备可以为用于处理用户数据的设备,例如服务器。
下面以图1所示网络架构包括四台电子设备为例进行描述。在本申请实施例提供的分布式网络架构中,可存在一台与用户交互的电子设备,存在一台处理数据的电子设备,以及存在一台用于发挥管理和控制作用的电子设备。例如,在图1中,电子设备110可以为前端(front end,FE)节点,用于获取用户数据;电子设备120、电子设备130和电子设备140可以为后端(back end,BE)节点,且电子设备120、电子设备130、电子设备140中可以选取其中一台电子设备作为控制设备(Broker)。例如若将电子设备120作为控制设备,则电子设备120可用于监控其他电子设备的运行状态,并向电子设备130和电子设备140下发指令。电子设备130和电子设备140可以根据获取的电子设备120下发的指令执行任务。
当然,以上是以包括多台电子设备的分布式网络架构为例进行的描述,在仅存在一台电子设备的情况下,可由这一台电子设备完成所有工作,例如获取用户数据,执行与用户数据相关的任务等。也就是说,本申请实施例提供的数据处理方法可由单台电子设备执行,也可以由多台电子设备相互配合执行。
本申请实施例提供的用户数据处理方法可利用Meds(一种定时调度服务框架)执行,Meds可部署在电子设备上,例如部署在后端节点上。在一种示例中,Meds可具有如下特性:
1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手,其中CRUD操作是指在做计算处理时的增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete)操作;
2、动态:支持动态修改任务状态、启动/停止任务,以及终止运行中任务,即时生效;
3、调度中心(中心式):调度采用中心式设计,“调度中心”自研调度组件并支持集群部署,可保证调度中心;
4、执行器(分布式):任务分布式执行,任务"执行器"支持集群部署,可保证任务执行;
5、注册中心:执行器会周期性自动注册任务,调度中心将会自动发现注册的任务并触发执行。同时,也支持手动录入执行器地址;
6、弹性扩容缩容:一旦有新执行器机器上线或者下线,下次调度时将会重新分配任务;
7、路由策略:执行器集群部署时提供丰富的路由策略,包括:第一个、最后一个、轮询、随机、一致性哈希(HASH)、最不经常使用、最近最久未使用、故障转移、忙碌转移等;
8、故障转移:任务路由策略选择"故障转移"情况下,如果执行器集群中某一台机器故障,将会自动切换到一台正常的执行器发送调度请求。
9、阻塞处理策略:调度过于密集执行器来不及处理时的处理策略,策略包括:单机串行(默认)、丢弃后续调度、覆盖之前调度;
10、任务超时控制:支持自定义任务超时时间,任务运行超时将会主动中断任务;
11、任务失败重试:支持自定义任务失败重试次数,当任务失败时将会按照预设的失败重试次数主动进行重试;其中分片任务支持分片粒度的失败重试;
12、任务失败告警;默认提供邮件方式失败告警,同时预留扩展接口,可方便的扩展短信、钉钉等告警方式;
13、分片广播任务:执行器集群部署时,任务路由策略选择"分片广播"情况下,一次任务调度将会广播触发集群中所有执行器执行一次任务,可根据分片参数开发分片任务;
14、动态分片:分片广播任务以执行器为维度进行分片,支持动态扩容执行器集群从而动态增加分片数量,协同进行业务处理;在进行大数据量业务操作时可显著提升任务处理能力和速度。
15、事件触发:除了"Cron方式"和"任务依赖方式"触发任务执行之外,支持基于事件的触发任务方式。调度中心提供触发任务单次执行的应用程序接口(API)服务,可根据业务事件灵活触发。
在本申请实施例中,“调度中心”可负责管理调度信息,按照调度配置发出调度请求,自身可不承担业务代码。“执行器”可负责接收调度请求并执行任务逻辑。“执行器”在执行完任务逻辑之后,可向“调度中心”返回调度结果。“调度中心”中接收回调的服务可以是针对执行器开放的一套API服务。
在本申请实施例中,调度中心可向“执行器”发送调度请求,例如HTTP请求。执行器可接收此调度请求,并执行相应任务。其中,执行器中接收请求的服务可以为一台内嵌jetty服务器,默认端口可以为9999。jetty服务器是一个开源Java Web服务器,也是一个servlet容器,它为应用程序提供启动和运行应用程序servlet或API所需的功能。
具体地,调度中心可向执行器发送任务执行请求,例如HTTP请求,请求中可携带待执行任务的标识(ID)以及要执行的事项。执行器接收到此请求后,即可按照待执行任务的标识(ID)获取相关信息执行任务,并向调度中心返回结果。
需了解的是,本申请实施例中可针对调度中心设置用户配置界面,用户可在此配置界面进行调度配置,如此,用户可介入任务的处理过程。例如,用户可干预标签及人群包的处理(即加工)过程,以及干预人群包名单推送过程。
图2是本申请实施例提供的一种用户数据处理方法的流程图,参照图2,本申请实施例提供的用户数据处理方法可以包括:
步骤210,获取用户数据;
用户数据可以为涵盖用户各方面信息的数据,例如与用户的身份信息相对应的数据、用户在上网过程中产生的相应数据、用户的订阅数据等。在本申请实施例中,可以通过多种方式获取用户数据。例如,本地获取预先存储的用户数据,通过埋点获取用户的上网日志数据从而得到用户数据,通过消息队列工具实时获取用户数据,通过API接口获取外部系统的用户数据等。
在本申请的一个实施例中,所述获取用户数据包括:接收导入的用户数据,所述用户数据包括:离线数据、实时数据和事件数据中的至少一种。
离线数据可以为从其他平台接收的预先存储的用户数据,实时数据可以为用户在上网过程中实时产生的数据,事件数据可以为用户触发事件后产生的相关数据,以购买会员事件为例进行说明,事件数据可以包括用户购买会员时间、购买方式、购买频率、会员到期时间等。
在本申请实施例中,可以通过多种方式接收导入的用户数据,例如通过hive数据库接收导入的离线数据,通过kafka接收导入的实时数据。当然,在本申请实施例中,除了通过外部导入获取用户数据之外,还可以通过搜索等方式获取用户数据。
可选地,在步骤210获取用户数据之后,本申请实施例还可以对所述用户数据进行统一标准化。如此,可以导入多种类型的数据,并进行格式统一化,便于操作。具体地,由于获取的用户数据可以来自不同平台,数据格式、相同字段排列顺序都不相同,为了提高数据处理效率,本申请实施例可以对用户数据进行统一标准化,即按照预设规则将用户数据转换成预设格式的数据。
步骤220,从所述用户数据中获取与配置条件匹配的目标数据;
在本申请实施例中,步骤220可以从海量的用户数据中得到与配置条件匹配的目标数据。
其中,配置条件可以包括标签配置条件、人群包配置条件、订阅配置条件中的至少一者。配置条件中可以包括相应的配置信息。配置信息可以为用户通过前端可视化界面输入的信息。
在配置条件为标签配置条件的情况下,配置信息可以包括标签名称、标签分类、标签数据更新方式、标签数据更新频率、标签描述、标签数据数量、标签数据状态、标签数据加工完成时间中的至少一者。目标数据可以为与标签配置条件匹配的数据,例如与标签名称或标签描述匹配的数据。其中,标签可以包括用户属性标签或行为标签等。其中,属性标签可以包括以下至少一种:用户姓名、用户手机号码、年龄、性别、居住城市、是否单身、职业等。行为标签可以包括兴趣偏好标签,例如用户日常使用的应用、经常出入的场所或购买会员方式等。
在配置条件为人群包配置条件的情况下,配置信息可以包括人群包名称、人群包分类(例如人群包类别的名称)、人群包编码、人群包数据数量、人群包数据更新方式、人群包数据更新频率、人群包数据状态、人群包数据加工完成时间中的至少一者。目标数据可以为与人群包配置条件匹配的数据,例如与人群包名称匹配的数据。人群包可以理解为具有一类特征的人群的集合,例如通过多个标签叠加得到的人群。
在配置条件为订阅配置条件的情况下,配置信息可以包括订阅任务ID、人群包编码、人群包名称、订阅系统、执行状态、推送频率、每次推送上限、当日推送数量、推送时间中的至少一者。目标数据可以为待处理的人群包订阅任务。
在本申请实施例中,用户数据可以本身为或者转变为能够统计数目的形式,例如,用户数据可以为一条条记录的形式,又例如用户数据可以为一张张表的形式等。
步骤230,基于所述目标数据,确定待处理任务;
在本申请实施例中,在得到目标数据之后,可以通过对目标数据进行某一种或者多种处理(例如,去重,格式转换等),进而得到待处理任务。当然,在一种情况下,若目标数据符合规范,也可以直接将得到的目标数据作为待处理任务。
在一个实施例中,步骤230中基于所述目标数据,确定待处理任务可包括:利用位图函数对所述目标数据进行去重,得到待处理任务。如此,可避免后续处理多个重复的待处理任务,进而减轻处理负担,避免不必要的任务处理开销。
本申请实施例中,可以利用位图在第一数据库中预先存储用户数据或者目标数据中所有用户的标识(ID),这样在去重的过程中可通过判断位图中存储的用户标识是否有重复来进行去重,如此,利用位图的存储结构可大大提高去重效率。
其中,在配置条件为标签配置条件的情况下,目标数据可以为与标签配置条件匹配的数据,例如与标签名称或标签描述匹配的数据。待处理任务可以为基于目标数据确定的待处理标签任务。
在配置条件为人群包配置条件的情况下,目标数据可以为与人群包配置条件匹配的数据,例如与人群包名称匹配的数据。待处理任务可以为基于目标数据确定的待处理人群包任务。
在配置条件为订阅配置条件的情况下,目标数据可以为待处理的人群包订阅任务,待处理任务可以为用于推送的第一人群包订阅任务。
步骤240,在满足设定的任务处理条件的情况下,将所述待处理任务记录到第一数据库中,并基于所述第一数据库对所述待处理任务进行处理,得到处理结果,其中,所述第一数据库为基于MPP的数据库;
在本申请实施例中,任务处理条件可以包括标签任务处理条件、人群包任务处理条件、订阅任务处理条件中的至少一者。其中,设定的标签任务处理条件可以包括标签任务处理开始时间、标签任务处理频率、标签任务处理结束时间中的至少一者。设定的人群包任务处理条件可以包括人群包任务处理开始时间、人群包任务处理频率、人群包任务处理结束时间任务处理上限中的至少一者。设定的订阅任务处理条件可以包括订阅任务处理开始时间、订阅任务处理频率、订阅任务处理结束时间、订阅任务处理数量、订阅任务处理上限中的至少一者。
在本申请实施例中,所述待处理任务可包括多个任务。为保证较快地处理速度,可以在处理过程中引入多线程并行处理的思想,即步骤240中所述利用第一数据库对所述待处理任务进行处理,得到处理结果可包括:将所述待处理任务分为N组任务,在第一数据库中通过N个线程对所述N组任务进行并行处理,得到N个处理结果;其中,N为大于1的正整数。
由于获取的用户数据数据量较大,基于目标数据确定出的待处理任务也可能包括大量任务。在利用第一数据库对待处理任务进行处理时,可以将待处理任务分组,创建对应数量的线程,然后并行处理分组后的待处理任务。具体地,若待处理任务包括一百万个任务,则可以将待处理任务分为十组任务,每组十万个待处理子任务。在第一数据库中创建十个线程分别并行处理十组任务,得到相应处理结果。如此,通过N个线程对待处理任务并行处理可以快速得到处理结果,可进一步提高处理效率。
在本申请实施例中,一方面可以在一台物理机(例如,调度中心对应的物理机)中分多线程处理多组任务,另一方面,也可以在多台物理机中利用分布式的思想处理多组任务。具体地,在本申请的一个实施例中,步骤240中所述基于第一数据库对所述待处理任务进行处理,得到处理结果可包括:调度中心将记录到所述第一数据库中的所述待处理任务分为N组任务,并向N个执行器发送调度请求,所述调度请求用于请求执行所述N组任务中的一组任务,且所述调度请求携带该组任务的标识,其中,一个执行器执行一组任务,N为大于1的正整数;所述调度中心接收所述N个执行器返回的N个执行结果;所述调度中心基于所述N个执行结果,得到处理结果。其中,所述N个执行器位于同一台物理机上,或者N台物理机上。在所述N个执行器位于N台物理机上的情况下,一台执行器位于一台物理机上,所述N台物理机遵循相同的通信协议,且为分布式网络中的物理机。如此,可以利用分布式处理的思想,大大提高任务处理的效率。
在上面的过程中,在所述N个执行器位于N台物理机上的情况下,所述调度请求可以为HTTP请求,接收到调度请求的物理机可以根据调度请求中携带的任务标识,获取与任务相关的数据,并进行处理,得到执行结果。此执行结果可以反映当前物理机所执行的这一组任务的结果。之后,调度中心可综合各个执行器的执行结果,得到处理结果,并可将处理结果以图形用户界面的形式呈现出来,并可供用户查看和进一步操作。
在本申请实施例中,在满足设定的任务处理条件后,可以将待处理任务记录到第一数据库中,并基于第一数据库进行处理。基于MPP的第一数据库仅需亚秒级响应时间即可获得查询结果,易于运维,可以支持超大数据集,能够有效地支持实时数据分析。其中,第一数据库可以为starrocks或者Doris数据库数据库。
在用户数据处理过程中,相关技术往往无法监控任务的处理情况,为了解决相关技术的这一问题,在本申请的一个实施例中,在步骤230所述确定待处理任务之后,本申请实施例提供的用户数据处理方法还可包括:在基于第一数据库对所述待处理任务进行处理的过程中,记录所述待处理任务的处理状态,所述处理状态包括以下任一种:未处理、处理中、处理失败、处理成功和取消处理;在接收到目标指令的情况下,获取所述待处理任务的处理状态,所述目标指令用于查询所述待处理任务的处理状态;返回所述待处理任务的处理状态。其中,在本申请实施例的用户数据处理方法采用分布式网络架构的情况下,所述待处理任务可分为N组任务,每一组任务可由相应的物理机执行。在此情形下,记录所述待处理任务的处理状态可由执行所述待处理任务的物理机在自身的存储模块(例如,数据库、内存等)中记录所述待处理任务的处理状态的处理状态。
在基于第一数据库对待处理任务进行处理时,可以在第一数据库中记录所有待处理任务的处理状态。其中,处理状态可以包括以下任一种:未处理、处理中、处理失败、处理成功和取消处理。在待处理任务的处理状态为处理失败的情况下,可以记录处理失败的任务,并对处理失败的问题重新进行处理,当然也可以取消处理。目标指令可以为用户通过前端可视化界面输入的用于查询待处理任务的处理状态的指令。以第一数据库为starrocks数据库为例,在接收到目标指令的情况下,可以从第一数据库中查询待处理任务的任务状态,并将查询到的任务状态显示在前端可视化界面。
如此,通过目标指令即可查询记录的待处理任务的处理状态,实现随时监控待处理任务的处理状态。
为了节约第一数据库的存储空间,在本申请的一个实施例中,所述记录所述待处理任务的处理状态可包括:在第二数据库中记录所述待处理任务的处理状态。同时,为了保证在待处理任务的处理过程中也可以及时获取待处理任务的处理状态,解决相关技术无法在任务的处理过程中监控任务处理情况的问题,相应地,在接收到目标指令的情况下,获取所述待处理任务的处理状态包括:在接收到目标指令的情况下,从所述第二数据库中获取目标任务,所述目标任务为所述待处理任务中处于处理中的任务;通过调用所述第一数据库的命令获取所述目标任务的处理状态。相应地,所述返回所述待处理任务的处理状态包括:返回所述目标任务的处理状态。其中,在相同的单位时间内,所述第一数据库可以比第二数据库的数据处理速度更快或者数据处理效率更高。
需了解的是,上文仅是以所述目标任务为所述待处理任务中处于处理中的任务为例进行描述。实际上,由于所述待处理任务的处理状态包括多种,除了处理状态为处理中的任务之外,还可能存在处理状态为未处理、处理失败、处理成功和取消处理的任务。因而,在本申请实施例中,所述目标任务也可以为所述待处理任务中处于其他状态的任务。例如,所述目标任务可以为所述待处理任务中处于未处理状态的任务,所述目标任务可以为所述待处理任务中处于处理失败状态的任务,所述目标任务可以为所述待处理任务中处于处理成功的任务,所述目标任务可以为所述待处理任务中处于取消处理的任务。这样一来,也可以获知所述待处理任务中处于其他状态的任务,而非仅限于处于处理中的任务。相应地,本申请实施例所述目标指令可以包括对应于多种处理状态的多种指令,例如,每一种状态都可以对应于一种指令。举例而言,所述目标指令可以包括第一目标指令、第二目标指令、第三目标指令、第四目标指令和第五目标指令。其中,所述第一目标指令可用于获取所述待处理任务中处于未处理状态的任务,所述第二目标指令可用于获取所述待处理任务中处于处理中状态的任务,所述第三目标指令可用于获取所述待处理任务中处于处理失败状态的任务,所述第四目标指令可用于获取所述待处理任务中处于处理成功状态的任务,所述第五目标指令可用于获取所述待处理任务中处于取消处理状态的任务。这样一来,通过相应的目标指令,即可获取处于相应处理状态的任务,不仅可以获取处于各种状态的任务,提高应用范围,也可以保证获取的任务是针对特定状态获取的,具有较高的针对性。
在本申请实施例中,可以联合使用第一数据库和第二数据库。其中,第一数据库可以为比第二数据库处理速度更快或处理效率更高的数据库。也就是说,在相同的单位时间内,第一数据库可以比第二数据库的数据处理速度更快或者数据处理效率更高。第一数据库可以用于记录待处理任务并对待处理任务进行处理,第二数据库可以用于记录待处理任务的处理状态。具体地,在通过前端可视化界面接收到用户输入的目标指令的情况下,可以根据目标指令,确定目标任务。基于目标任务,调用第一数据库的命令获取处理状态,并将查询到的目标任务的处理状态显示在前端可视化界面。其中,第二数据库可以为MySQL数据库或者Redis数据库。在本申请实施例的用户数据处理方法采用分布式网络架构的情况下,第一数据库和第二数据库可以位于分布式网络的不同物理机上,不同物理机可遵循相同的通信协议进行相互配合通信。
本申请实施例通过联合使用第一数据库和第二数据库可以将不同数据分类存储,可以充分利用第二数据库,避免空间浪费,同时节约第一数据库的存储空间。另一方面,通过利用第一数据库进行处理,由于第一数据库可以为MPP数据库,可以保证处理效率较高,达到既可以快速处理,又可以充分利用第二数据库,以及节省第一数据库的存储空间的效果。
在利用第一数据库对待处理任务进行处理之后,为了避免出现第二数据库中记录的处理状态与第一数据库得到的处理状态不符的情形,保证第二数据库中记录的处理状态在得到目标指令处理的情况下保证相对较新,在本申请的一个实施例中,在所述调用所述第一数据库的命令获取所述目标任务的处理状态之后,本申请实施例提供的用户数据处理方法还可包括:确定所述目标任务的第一处理状态与第二处理状态的匹配结果,所述第一处理状态为通过调用所述第一数据库的命令获取的所述目标任务的处理状态,所述第二处理状态为所述第二数据库中记录的所述目标任务的处理状态;在所述目标任务的第一处理状态与第二处理状态不匹配的情况下,将所述目标任务的第二处理状态更新为,所述目标任务的第一处理状态。当然,在所述目标任务的第一处理状态与第二处理状态匹配的情况下,可以不对所述目标任务的第二处理状态进行更新。
可以理解,由于目标任务为待处理任务中处于处理中的任务,目标任务的处理状态随着时间推移会发生变化。在接收到目标指令的情况下,从第二数据库中获取目标任务,此时第二数据库中记录的目标任务的第二处理状态为处理中。可以基于目标任务,调用第一数据库的命令获取目标任务的第一处理状态,第一处理状态可以为目标任务的实时状态。若第一处理状态与第二处理状态相匹配,则返回目标任务的第一处理状态。若第一处理状态与第二处理状态不匹配,则将第二数据库中记录的目标任务的第二处理状态更新为第一处理状态,并返回目标任务的第一处理状态。在本实施例中,第一处理状态与第二处理状态是否匹配是表示第一处理状态与第二处理状态是否一致。具体地,若调用第一数据库的命令获取的第一处理状态为处理成功或处理失败,与第二数据库中记录的第二处理状态处理中不匹配,则将第二数据库中记录的第二处理状态更新为处理成功或处理失败。如此,在根据目标指令查询处理状态之后,可以更新第二数据库中记录的任务的处理状态,以保证记录的状态为较新状态。
在本申请的一个实施例中,所述待处理任务可包括多个任务。在接收到目标指令,从所述第二数据库中获取目标任务的过程中,为了保证能够以较快地速度获取到第二数据库中的目标任务,本申请实施例提供的用户数据处理方法在从所述第二数据库中获取目标任务的过程中,可引入多线程分配查询的思想,通过多线程分片查询获取所述第二数据库的目标任务。如此,通过多线程分片查询可以快速获取查询结果,节省查询时间,提高处理效率。
步骤250,在所述第一数据库中以位图的形式存储所述处理结果。
位图即Bitmap,可以理解为通过一个bit(位或比特,计算机里面数据的最小单位)数组来存储特定数据的一种数据结构。在第一数据库中以位图的形式存储处理结果可以节省存储空间,便于后续进行位运算,例如计算交集、并集等。
以待处理任务为待处理标签任务为例进行说明,每一个标签都可以对应一个独立的Bitmap。在第一数据库中,可以预先建立用户名和用户ID的映射,确定标签对应的Bitmap长度,Bitmap中每一位可对应一个用户ID,若用户数据与标签匹配,则在Bitmap对应位置写入1,若用户数据与标签不匹配,则在Bitmap对应位置写入0,从而每一个标签存储可以包含此标签的所有用户ID。通过统计Bitmap中1的个数即可快速统计包含此标签的用户总人数。与其他标签对应的Bitmap进行位运算,即可获取同时包含多个标签的用户ID。
在本申请实施例中,获取用户数据;从所述用户数据中获取与配置条件匹配的目标数据;基于所述目标数据,确定待处理任务;在满足设定的任务处理条件的情况下,将所述待处理任务记录到第一数据库中,并基于所述第一数据库对所述待处理任务进行处理,得到处理结果,其中,所述第一数据库为基于MPP的数据库;在所述第一数据库中以位图的形式存储所述处理结果。如此,在处理用户数据的过程中,由于基于MPP的第一数据库支持大规模数据并行处理,响应速度快,且基于位图形式存储处理结果可以保证快速计算(例如,可以通过位图取交集或并集,快速获取具有相同特征的用户群体等),因而这种利用基于MPP的数据库进行任务处理并采用位图形式存储处理结果的用户数据处理方法,可以提高用户数据处理速度。
图3是本申请实施例提供的一种用户数据处理方法的流程图,参照图3,本申请实施例提供的用户数据处理方法可以包括:
步骤310,获取用户数据;
步骤320,从所述用户数据中获取与配置条件匹配的目标数据;
步骤330,基于所述目标数据,确定待处理任务;
步骤340,在满足设定的任务处理条件的情况下,将所述待处理任务记录到第一数据库中,并基于所述第一数据库对所述待处理任务进行处理,得到处理结果;其中,所述第一数据库为基于MPP的数据库。
步骤350,在所述第一数据库中以位图的形式存储所述处理结果;
步骤360,在基于第一数据库对所述待处理任务进行处理的过程中,记录所述待处理任务的处理状态;所述处理状态包括以下任一种:未处理、处理中、处理失败、处理成功和取消处理。
步骤370,在接收到目标指令的情况下,获取所述待处理任务的处理状态,所述目标指令用于查询所述待处理任务的处理状态;
步骤380,返回所述待处理任务的处理状态。
需要指出的是,图3中的一些步骤未必按照顺序执行,例如,步骤360可以在步骤340的执行过程中执行,即在基于第一数据库对所述待处理任务进行处理的过程中,记录所述待处理任务的处理状态。
本申请实施例提供的用户数据处理方法,不仅可以通过利用基于MPP的数据库进行任务处理,以及采用位图形式存储处理结果,大大提高用户数据处理速度,还可以主动记录待处理任务的处理状态,并通过目标指令查询记录的待处理任务的处理状态,达到随时监控待处理任务的处理状态的效果。
在用户数据处理过程中,相关技术往往无法监控任务的处理情况,为了解决相关技术的这一问题,在本申请的一个实施例中,在步骤330所述确定待处理任务之后,本申请实施例提供的用户数据处理方法还可包括:在基于第一数据库对所述待处理任务进行处理的过程中,记录所述待处理任务的处理状态,所述处理状态包括以下任一种:未处理、处理中、处理失败、处理成功和取消处理;在接收到目标指令的情况下,获取所述待处理任务的处理状态,所述目标指令用于查询所述待处理任务的处理状态;返回所述待处理任务的处理状态。
在基于第一数据库对待处理任务进行处理时,可以在第一数据库中记录所有待处理任务的处理状态。其中,处理状态可以包括以下任一种:未处理、处理中、处理失败、处理成功和取消处理。在待处理任务的处理状态为处理失败的情况下,可以记录处理失败的任务,并对处理失败的问题重新进行处理,当然也可以取消处理。目标指令可以为用户通过前端可视化界面输入的用于查询待处理任务的处理状态的指令。以第一数据库为starrocks数据库为例,在接收到目标指令的情况下,可以从第一数据库中查询待处理任务的任务状态,并将查询到的任务状态显示在前端可视化界面。
如此,通过目标指令即可查询记录的待处理任务的处理状态,实现随时监控待处理任务的处理状态。
为了节约第一数据库的存储空间,在本申请的一个实施例中,所述记录所述待处理任务的处理状态可包括:在第二数据库中记录所述待处理任务的处理状态。同时,为了保证在待处理任务的处理过程中也可以及时获取待处理任务的处理状态,解决相关技术无法在任务的处理过程中监控任务处理情况的问题,相应地,在接收到目标指令的情况下,获取所述待处理任务的处理状态包括:在接收到目标指令的情况下,从所述第二数据库中获取目标任务,所述目标任务为所述待处理任务中处于处理中的任务;通过调用所述第一数据库的命令获取所述目标任务的处理状态。相应地,所述返回所述待处理任务的处理状态包括:返回所述目标任务的处理状态。
在本申请实施例中,可以联合使用第一数据库和第二数据库。其中,第一数据库可以用于记录待处理任务并对待处理任务进行处理,第二数据库可以用于记录待处理任务的处理状态。具体地,在通过前端可视化界面接收到用户输入的目标指令的情况下,可以根据目标指令,确定目标任务。基于目标任务,调用第一数据库的命令获取处理状态,并将查询到的目标任务的处理状态显示在前端可视化界面。其中,第二数据库可以为MySQL数据库或者Redis数据库。
本申请实施例通过联合使用第一数据库和第二数据库可以将不同数据分类存储,可以充分利用第二数据库,避免空间浪费,同时节约第一数据库的存储空间。另一方面,通过利用第一数据库进行处理,由于第一数据库可以为MPP数据库,可以保证处理效率较高,达到既可以快速处理,又可以充分利用第二数据库,以及节省第一数据库的存储空间的效果。
在利用第一数据库对待处理任务进行处理之后,为了避免出现第二数据库中记录的处理状态与第一数据库得到的处理状态不符的情形,保证第二数据库中记录的处理状态在得到目标指令处理的情况下保证相对较新,在本申请的一个实施例中,在所述调用所述第一数据库的命令获取所述目标任务的处理状态之后,本申请实施例提供的用户数据处理方法还可包括:确定所述目标任务的第一处理状态与第二处理状态的匹配结果,所述第一处理状态为通过调用所述第一数据库的命令获取的所述目标任务的处理状态,所述第二处理状态为所述第二数据库中记录的所述目标任务的处理状态;在所述目标任务的第一处理状态与第二处理状态不匹配的情况下,将所述目标任务的第二处理状态更新为,所述目标任务的第一处理状态。
可以理解,由于目标任务为待处理任务中处于处理中的任务,目标任务的处理状态随着时间推移会发生变化。在接收到目标指令的情况下,从第二数据库中获取目标任务,此时第二数据库中记录的目标任务的第二处理状态为处理中。可以基于目标任务,调用第一数据库的命令获取目标任务的第一处理状态,第一处理状态可以为目标任务的实时状态。若第一处理状态与第二处理状态相匹配,则返回目标任务的第一处理状态。若第一处理状态与第二处理状态不匹配,则将第二数据库中记录的目标任务的第二处理状态更新为第一处理状态,并返回目标任务的第一处理状态。在本实施例中,第一处理状态与第二处理状态是否匹配是表示第一处理状态与第二处理状态是否一致。具体地,若调用第一数据库的命令获取的第一处理状态为处理成功或处理失败,与第二数据库中记录的第二处理状态处理中不匹配,则将第二数据库中记录的第二处理状态更新为处理成功或处理失败。如此,在根据目标指令查询处理状态之后,可以更新第二数据库中记录的任务的处理状态,以保证记录的状态为较新状态。
图4是本申请实施例提供的一种用户数据处理方法的设计方案的框图。参照图4,在本申请实施例提供的用户数据处理方法的设计方案中,可涉及前端用户界面(UI)、配置层、定时调度、中间件、数据库和缓存、以及持续集成模块。其中,前端UI可以为浏览器的用户界面。配置层可以包括数据源配置、标签配置、人群包配置、人群包名单输出配置以及人群包名单推送监控配置中的至少一种。定时调度可以包括针对离线数据接入的定时调度、标签处理的定时调度、人群包处理的定时调度以及人群包名单推送处理的定时调度。中间件可以包括消息总线或者kafka,其中,消息总线用于推送名单,kafka用于接收数据集市场的实时属性数据。数据库可包括MySQL和Doris数据库,缓存可以包括Redis,其中Redis用于存储一些不常改变的数据。Hive(数据仓库工具)用于存储离线数据,例如另外一个系统CDP(客户数据平台,customer data platform)event的离线数据。持续集成可涉及Jenkins、docker和K8S。其中,Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作。Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。K8S(Kubernetes)是一个开源的,用于管理云平台中多个电子设备(主机)上的容器化的应用。
通过上述各个功能层或模块可以处理用户数据,进而得到用户画像(包括个人画像和人群画像),进而可将得到的用户画像用于外部系统,例如外部的会员系统、外部的精准营销系统或外部的电销系统等。
图5是本申请实施例提供的用户数据处理方法的示意图。需了解的是,图5所示示意图仅是宏观流程上的一种示意。如图5所示,本申请实施例提供的用户数据处理方法可先接入用户数据,包括离线数据、实时数据和事件数据,然后可配置标签,得到标签数据,进而可处理标签数据。在此之后,可配置人群包,得到人群包数据,进而可处理人群包数据。在此基础上,可得到人群画像、个人画像以及人群包订阅任务。在人群包名单推送的过程中,可先配置人群包推送模板,并可判断是否指定模板ID,在指定模板ID的情况下,按照指定的模板推送名单数据。在不指定模板ID的情况下,可按照用户ID随机选择推送模板推送名单数据。
为便于理解,本申请针对标签任务、人群包任务、人群包订阅任务推送三种情形,结合示意图进行详细介绍。示例性地,后文示意图中第一数据库采用Doris数据库或者starrocks数据库,第二数据库采用MySQL数据库或者Redis数据库。需要强调的是图中展示的数据库仅为用作示例,不能视为对本申请的限制。在本申请实施例的一种可能的实现方式中,可以没有第二数据库。也就是说,第二数据库存储的内容均可以存储在第一数据库中。
图6是本申请实施例提供的一种用户数据处理方法的流程图,参照图6,本申请实施例提供的用户数据处理方法应用于标签任务处理的情形,且可包括:
步骤610,获取用户数据;
步骤620,从所述用户数据中获取与标签配置条件匹配的目标数据;
在本申请实施例中,标签配置条件可以包括标签配置信息。标签配置信息可以包括标签名称、标签分类、标签数据更新方式、标签数据更新频率、标签描述、标签数据数量、标签数据状态、标签数据加工完成时间中的至少一者。用户可以通过前端可视化界面配置标签信息。如图7-1所示,基于前端可视化界面,可以实现标签管理,标签管理可以包括标签新建、标签查询、标签编辑、标签启用、标签审核、标签停用、标签明细查看、标签当前客群分布、标签轨迹查询中的至少一者。具体地,通过前端可视化界面,用户可以新建标签,查询现有标签,删除或修改现有标签,启用现有标签、审核现有标签、停用现有标签、查看现有标签明细、分析标签当前客群分布、查询标签轨迹等。
步骤630,基于所述目标数据,确定待处理标签任务;
在本申请实施例中,可以基于目标数据过滤审核通过待处理的标签,生成待处理标签任务。
步骤640,在满足设定的标签任务处理条件的情况下,将所述待处理标签任务记录到第一数据库中,并基于所述第一数据库对所述待处理标签任务进行处理,得到处理结果,其中,所述第一数据库为基于MPP的数据库;
在本申请实施例中,设定的标签任务处理条件可以包括标签任务处理开始时间、标签任务处理频率、标签任务处理结束时间中的至少一者。在满足设定的标签任务处理条件时,可以将待处理标签任务记录到第一数据库中,并基于第一数据库对待处理标签任务进行处理。
具体地,如图7-2所示,标签配置条件可以存储在第二数据库中。通过调度可以从第二数据库中获取待处理标签任务,判断当前时间是否满足标签任务处理开始时间,若满足,则将待处理标签任务记录到第一数据库中,并调用第一数据库对待处理标签任务进行处理,同时将标签处理日志写入第二数据库中。若调用第一数据库处理异常,则在第二数据库中更新标签处理日志。
在本申请实施例中,可以联合使用第一数据库和第二数据库。在基于第一数据库对所述待处理标签任务进行处理的过程中,可以在第二数据库中记录所述待处理标签任务的处理状态,所述处理状态包括以下任一种:未处理、处理中、处理失败、处理成功和取消处理;从所述第二数据库中获取目标任务,所述目标任务为所述待处理任务中处于处理中的任务;通过调用所述第一数据库的命令获取所述目标任务的处理状态;返回所述待处理任务的处理状态。
具体地,如图7-3所示,第二数据库中可以记录待处理标签任务的处理状态。通过调度可以从第二数据库中获取待处理标签任务的处理状态,并将处理状态为处理中的待处理标签任务作为目标任务。由于目标任务的处理状态随着时间推移会发生变化,此时可以调用第一数据库的命令获取目标任务的实时处理状态,并将实时处理状态返回显示。若调用第一数据库获取的实时处理状态与第二数据库中记录的处理状态不匹配,可以将第二数据库中记录的处理状态更新为基于第一数据库获取的实时处理状态。在本实施例中,第一数据库获取的实时处理状态与第二数据库中记录的处理状态不匹配可以表示从第一数据库获取的实时处理状态与第二数据库中记录的处理状态不一致。
在一种实施方式中,所述待处理标签任务包括多个任务,在接收到目标指令的情况下,从所述第二数据库中获取目标任务包括:在接收到目标指令的情况下,通过多线程分片查询获取所述第二数据库的目标任务。
步骤650,在所述第一数据库中以位图的形式存储所述处理结果。
在本申请实施例中,每一个标签都可以对应一个独立的Bitmap。在第一数据库中,可以预先建立用户名和用户ID的映射,确定标签对应的Bitmap长度,Bitmap中每一位可对应一个用户ID,若用户数据与标签匹配,则在Bitmap对应位置写入1,若用户数据与标签不匹配,则在Bitmap对应位置写入0。Bitmap中存储的数据即为基于待处理标签任务得到的处理结果。
步骤660,基于以位图的形式存储的所述处理结果,得到用户画像。
在本申请实施例中,用户画像可以理解为海量数据的标签。基于待处理标签任务的处理结果得到的用户画像可以为根据标签确定的个人画像。如上文所述,每一个标签都可以对应一个独立的Bitmap,通过判断每个Bitmap中用户ID所在位置对应的数据是否为1,可以确定用户是否具有相应标签。在判断过程中,可以统计用户具有的标签,继而可以根据用户的标签,得到用户画像。
本申请实施例提供的用户数据处理方法,在处理用户数据的过程中,由于基于MPP的第一数据库支持大规模数据并行处理,响应速度快,且基于位图形式存储处理结果可以保证快速计算(例如,可以通过位图取交集或并集,快速获取具有相同特征的用户群体等),因而这种利用基于MPP的数据库进行处理并采用位图形式存储处理结果的用户数据处理方法,可以提高用户数据处理速度。
图8是本申请实施例提供的一种用户数据处理方法的流程图,参照图8,本申请实施例提供的用户数据处理方法应用于人群包任务处理的情形,且可包括:
步骤810,获取用户数据;
步骤820,从所述用户数据中获取与人群包配置条件匹配的目标数据;
在本申请实施例中,人群包配置条件可以包括人群包配置信息。人群包配置信息可以包括人群包名称、人群包分类名称、人群包编码、人群包数量、数据更新方式、运行状态、加工完成时间中的至少一者。用户可以通过前端可视化界面配置人群包信息。如图9-1所示,基于前端可视化界面,可以实现人群画像管理、人群包管理、人群包分类管理。其中,人群画像管理可以包括新建人群、外页查询人群、查看人群、事件查询人群、编辑人群、新建人群画像、删除人群、查询人群画像中的至少一者;人群包管理可以包括新建人群包、外页查询人群包、编辑人群包、客群列表查询、删除人群包、启动人群包、审批人群包、暂停人群包中的至少一者;人群包分类管理可以包括新建人群包分类、人群包分类分页查询、编辑人群包分类、按条件搜索查询人群包分类列表、删除人群包分类、查看人群包分类中的至少一者。
步骤830,基于所述目标数据,确定待处理人群包任务;
在本申请实施例中,可以基于目标数据查询审核通过的人群包配置条件。根据人群包配置条件生成待处理人群包任务。具体地,如图9-2所示,人群包配置条件、人群包处理记录可以存储在第二数据库中。通过调度可以从第二数据库中获取人群包处理记录,根据人群包配置条件和开始结束时间生成待处理人群包任务,并判断待处理人群包任务是否已存在,若存在,则跳过避免重复处理,若不存在则写入人群包任务。
步骤840,在满足设定的人群包任务处理条件的情况下,将所述待处理人群包任务记录到第一数据库中,并基于所述第一数据库对所述待处理人群包任务进行处理,得到处理结果,其中,所述第一数据库为基于MPP的数据库;
在本申请实施例中,设定的人群包任务处理条件可以包括人群包任务处理开始时间、人群包任务处理频率、人群包任务处理结束时间任务处理上限中的至少一者。在满足设定的人群包任务处理条件时,可以将待处理人群包任务记录到第一数据库中,并基于第一数据库对待处理人群包任务进行处理。
具体地,如图9-3所示,人群包配置条件可以存储在第二数据库中。通过调度可以从第二数据库中获取待处理人群包任务,过滤待处理的人群包任务避免重复推送后可以基于第一数据库处理单条待处理人群包任务,并调用第一数据库写入处理结果。
在本申请实施例中,可以联合使用第一数据库和第二数据库。在基于第一数据库对所述待处理人群包任务进行处理的过程中,可以在第二数据库中记录所述待处理人群包任务的处理状态,所述处理状态包括以下任一种:未处理、处理中、处理失败、处理成功和取消处理;从所述第二数据库中获取目标任务,所述目标任务为所述待处理任务中处于处理中的任务;通过调用所述第一数据库的命令获取所述目标任务的处理状态;返回所述待处理任务的处理状态。
具体地,如图9-4所示,第二数据库中可以记录待处理人群包任务的处理状态。通过调度可以从第二数据库中获取待处理人群包任务的处理状态,并将处理状态为处理中的待处理人群包任务作为目标任务。由于目标任务的处理状态随着时间推移会发生变化,此时可以调用第一数据库的命令获取目标任务的实时处理状态,并将实时处理状态返回显示。若调用第一数据库获取的实时处理状态与第二数据库中记录的处理状态不匹配,可以将第二数据库中记录的处理状态更新为基于第一数据库获取的实时处理状态。在本申请实施例中,调用第一数据库获取的实时处理状态与第二数据库中记录的处理状态不匹配可以表示调用第一数据库获取的实时处理状态与第二数据库中记录的处理状态不一致。
步骤850,在所述第一数据库中以位图的形式存储所述处理结果。
在本申请实施例中,人群包可以理解为具有一类特征的人群的集合,例如通过多个标签叠加得到的人群。处理结果可以为人群包数据,以标签为90后和喜欢旅游为例,处理结果可以为90后喜欢旅游这一人群对应的所有用户ID。在本申请实施例中,可以先以位图形式存储每个标签对应的用户ID,再通过位运算,得到处理结果。具体地,每一个标签都可以对应一个独立的Bitmap。在第一数据库中,可以预先建立用户名和用户ID的映射,确定标签对应的Bitmap长度,Bitmap中每一位可对应一个用户ID,若用户数据与标签匹配,则在Bitmap对应位置写入1,若用户数据与标签不匹配,则在Bitmap对应位置写入0。以第一标签为90后、第二标签为喜欢旅游为例,先以位图形式存储两个标签分别对应的用户ID,再通过与运算,即可确定既为90后又喜欢旅游的用户ID。
步骤860,基于以位图的形式存储的所述处理结果,得到用户画像。
在本申请实施例中,用户画像可以理解为海量数据的标签。基于待处理人群包任务的处理结果得到的用户画像可以为根据标签确定的人群包画像。人群包画像可以理解为具有一类特征的人群对应的画像,例如通过多个标签叠加得到的人群对应的画像。如上文所述,可以先以位图形式存储每个标签对应的用户ID,再叠加不同标签进行位运算,得到处理结果,其中,具体叠加标签可以自由设定。根据处理结果可以确定人群包中所有用户ID及其共有标签,得到人群包画像。
本申请实施例提供的用户数据处理方法,在处理用户数据的过程中,由于基于MPP的第一数据库支持大规模数据并行处理,响应速度快,且基于位图形式存储处理结果可以保证快速计算(例如,可以通过位图取交集或并集,快速获取具有相同特征的用户群体等),因而这种利用基于MPP的数据库进行处理并采用位图形式存储处理结果的用户数据处理方法,可以提高用户数据处理速度。
图10是本申请实施例提供的一种用户数据处理方法的流程图。参照图10,本申请实施例提供的用户数据处理方法应用于人群订阅任务推送的情形,且可包括:
步骤1010,获取用户数据;
其中,本步骤中的用户数据可以包括外部导入的用户数据。在此情况下,可先从用户数据中获取与订阅任务相关的数据,进而再从与订阅任务相关的数据中获取与订阅配置条件匹配的待处理的人群包订阅任务。
或者,本步骤中的用户数据可以包括订阅任务表中记录的人群包订阅任务。在所述用户数据包括订阅任务表中记录的人群包订阅任务的情况下,可以从订阅任务表中获取人群包订阅任务。其中,所述订阅任务表中记录多个人群包订阅任务,且所述订阅任务表存储在第二数据库中。
步骤1020,从所述用户数据中获取与订阅配置条件匹配的待处理的人群包订阅任务;
其中,在获取待处理的人群包订阅任务之后,可将所述待处理的人群包订阅任务记录在处理任务表中,所述处理任务表存储在所述第二数据库中。具体地,如图11-2所示,可以在第二数据库的订阅任务表中查询待处理状态的人群包订阅任务,获取待处理的人群包订阅任务并写入第二数据库的处理任务表中。
步骤1030,基于所述待处理的人群包订阅任务,确定第一人群包订阅任务,所述第一人群包订阅任务为用于推送的任务;
在一个实施例中,所述待处理的人群包订阅任务可包括多个任务,步骤1030中所述基于待处理的人群包订阅任务,确定第一人群包订阅任务可包括:利用位图函数对所述待处理的人群包订阅任务进行去重,得到第一人群包订阅任务。
步骤1040,在满足设定的订阅任务处理条件的情况下,将所述第一人群包订阅任务记录到第一数据库中,并基于所述第一数据库对所述第一人群包订阅任务进行推送处理,得到推送处理结果,其中,所述第一数据库为基于MPP的数据库。
在一个实施例中,所述第一人群包订阅任务可包括多个任务,步骤1040中所述基于所述第一数据库对所述第一人群包订阅任务进行推送处理包括:将所述第一人群包订阅任务分为N组订阅任务;按照配置的推送条件,通过N个线程并行推送所述第一数据库中记录的所述第一人群包订阅任务。
步骤1050,在所述第一数据库中以位图的形式存储所述处理结果。
其中,所述第一数据库可为starrocks数据库,所述第二数据库可为MySQL或者Redis数据库。
本申请实施例提供的用户数据处理方法,在处理用户数据的过程中,由于基于MPP的第一数据库支持大规模数据并行处理,响应速度快,且基于位图形式存储处理结果可以保证快速计算(例如,可以通过位图取交集或并集,快速获取具有相同特征的用户群体等),因而这种利用基于MPP的数据库进行处理并采用位图形式存储处理结果的用户数据处理方法,可以提高用户数据处理速度。
可选地,在一个实施例中,在推送所述第一数据库中记录的所述第一人群包订阅任务的过程中,本申请实施例提供的用户数据处理方法还可包括:记录所述第一人群包订阅任务的推送状态,所述推送状态包括以下任一种:未推送、推送中、推送失败、推送成功和取消推送;在接收到查询指令(目标指令)的情况下,获取所述第一人群包订阅任务的推送状态,所述查询指令用于查询所述第一人群包订阅任务的推送状态;返回所述第一人群包订阅任务的推送状态。
可选地,在一个实施例中,所述记录所述目标人群包订阅任务的推送状态包括:在第二数据库中记录所述第一人群包订阅任务的推送状态。所述在接收到查询指令的情况下,获取所述第一人群包订阅任务的推送状态包括:在接收到查询指令的情况下,从所述第二数据库中获取第二人群包订阅任务,所述第二人群包订阅任务为所述第一人群包订阅任务中处于推送中的任务;通过调用所述第一数据库的命令获取第二人群包订阅任务的推送状态。相应地,所述返回所述第一人群包订阅任务的推送状态包括:返回第二人群包订阅任务的处理状态。
具体地,参照图11-3,在获取第一人群包订阅任务的推送状态时,可以先从第二数据库的待处理订阅任务表中获取处于推送中的任务,调用第一数据库的命令获取推送状态。在推送状态为已完成的情况下,将第一人群包订阅任务写入推送任务表。
其中,在所述第一人群包订阅任务包括多个任务的情况下,在接收到查询指令的情况下,从所述第二数据库中获取第二人群包订阅任务可包括:在接收到查询指令的情况下,通过多线程分片查询获取所述第二数据库的第二人群包订阅任务。
可选地,在一个实施例中,在所述通过调用所述第一数据库的命令获取第二人群包订阅任务的推送状态之后,本申请实施例提供的用户数据处理方法还可包括:确定第二人群包订阅任务的的第三处理状态与第四处理状态的匹配结果,所述第三处理状态为通过调用所述第一数据库的命令获取的第二人群包订阅任务的推送状态,所述第四处理状态为所述第二数据库中记录的第二人群包订阅任务的推送状态;在第二人群包订阅任务的的第三处理状态与第四处理状态不匹配的情况下,将第二人群包订阅任务的第三处理状态更新为,第二人群包订阅任务的第四处理状态。
具体地,参照图11-3,在基于第一数据库获取的推送状态为已完成的情况下,可以将第一人群包订阅任务写入推送任务表,同时更新第二数据库推送表中处理状态为推送成功或推送失败,更新推送时间为最新时间。
可选地,在一个实施例中,本申请实施例提供的用户数据处理方法还可包括:在所述第一人群包订阅任务的推送状态为推送成功的情况下,将所述第一人群包订阅任务记录到所述第一数据库的推送数据表中,所述推送数据表用于记录推送成功的人群包订阅任务。
图11-1是本申请实施例提供的人群包推送总体流程的示意图。参照图11-1,配置存储部分涉及到三张表。第一张表(cdp_group_subscribe_task)为根据在用户界面上输入的订阅条件得到的订阅任务表。第二张表(cdp_group_process_task)为在第一张表的基础上根据用户配置的查询条件得到的待处理订阅任务表。第三张表(cdp_group_push_task)为根据用户选定的推送配置得到的推送任务表。数据存储部分涉及到了两张表。第一张表(cdp_group_process_data)为starrocks将待处理订阅任务表中的任务调入到starrocks中进行处理得到的处理数据表。第二张表(cdp_group_push_data)为推送数据表,此表在待处理的订阅任务推送成功的情况下,用于记录推送成功的人群包订阅任务。如图11-4所示,在待处理的订阅任务推送成功的情况下,更新待处理订阅任务表中处理状态为推送完成。在待处理的订阅任务推送未完成的情况下,筛选预设时间内不重复的名单,并判断推送是否依赖当天的手机号表(判断推送是否需要利用手机号),如果不依赖,则使用消息总线推送,将推送结果数据写入第一数据库,同时更新推送信息到第二数据库。推送具体流程可参照图10和图11-1。
图12是本申请实施例提供的一种用户数据处理装置的结构框图,其特征在于,包括:获取模块1210、处理模块1220和存储模块1230;其中,
所述获取模块1210,用于获取用户数据;从所述用户数据中获取与配置条件匹配的目标数据;
所述处理模块1220,用于基于所述目标数据,确定待处理任务;
所述存储模块1230,用于在满足设定的任务处理条件的情况下,将所述待处理任务记录到第一数据库中;
所述处理模块1220,还用于基于所述第一数据库对所述待处理任务进行处理,得到处理结果,其中,所述第一数据库为基于MPP的数据库;
所述存储模块1230,还用于在所述第一数据库中以位图的形式存储所述处理结果。
本申请实施例提供的用户数据处理装置,在处理用户数据的过程中,由于基于MPP的第一数据库支持大规模数据并行处理,响应速度快,且基于位图形式存储处理结果可以保证快速计算(例如,可以通过位图取交集或并集,快速获取具有相同特征的用户群体等),因而这种利用基于MPP的数据库进行任务处理并采用位图形式存储处理结果的用户数据处理方法,可以提高用户数据处理速度。
可选地,在本申请的一个实施例中,所述待处理任务包括多个任务,在所述基于第一数据库对所述待处理任务进行处理,得到处理结果的过程中,所述处理模块具体用于:将所述待处理任务分为N组任务,基于所述第一数据库,通过N个线程对所述N组任务进行并行处理,得到N个处理结果;其中,N为大于1的正整数。
可选地,在本申请的一个实施例中,所述处理模块在确定待处理任务之后,还用于:在基于第一数据库对所述待处理任务进行处理的过程中,记录所述待处理任务的处理状态,所述处理状态包括以下任一种:未处理、处理中、处理失败、处理成功和取消处理;在接收到目标指令的情况下,获取所述待处理任务的处理状态,所述目标指令用于查询所述待处理任务的处理状态;返回所述待处理任务的处理状态。
可选地,在本申请的一个实施例中,在记录所述待处理任务的处理状态的过程中,所述处理模块具体用于:在第二数据库中记录所述待处理任务的处理状态。在接收到目标指令的情况下,获取所述待处理任务的处理状态的过程中,所述处理模块具体用于:在接收到目标指令的情况下,从所述第二数据库中获取目标任务,所述目标任务为所述待处理任务中处于处理中的任务;通过调用所述第一数据库的命令获取所述目标任务的处理状态。在所述返回所述待处理任务的处理状态的过程中,所述处理模块具体用于:返回所述目标任务的处理状态。
可选地,在本申请的一个实施例中,在调用所述第一数据库的命令获取所述目标任务的处理状态之后,所述处理模块还用于:确定所述目标任务的第一处理状态与第二处理状态的匹配结果,所述第一处理状态为通过调用所述第一数据库的命令获取的所述目标任务的处理状态,所述第二处理状态为所述第二数据库中记录的所述目标任务的处理状态;在所述目标任务的第一处理状态与第二处理状态不匹配的情况下,将所述目标任务的第二处理状态更新为,所述目标任务的第一处理状态;
其中,在相同的单位时间内,所述第一数据库比第二数据库的数据处理速度更快或者数据处理效率更高。
可选地,在本申请的一个实施例中,所述待处理任务包括多个任务。在接收到目标指令的情况下,从所述第二数据库中获取目标任务的过程中,所述处理模块具体用于:在接收到目标指令的情况下,通过多线程分片查询获取所述第二数据库的目标任务。
可选地,在本申请的一个实施例中,在所述基于所述目标数据,确定待处理任务的过程中,所述处理模块具体用于:利用位图函数对所述目标数据进行去重,得到待处理任务。
可选地,在本申请的一个实施例中,在所述获取用户数据的过程中,所述获取模块具体用于:接收导入的用户数据,所述用户数据包括:离线数据、实时数据和事件数据中的至少一种。相应地,所述处理模块还用于:对所述用户数据进行统一标准化。
可选地,在本申请的一个实施例中,在所述基于第一数据库对所述待处理任务进行处理,得到处理结果的过程中,所述处理模块具体用于:调度中心将记录到所述第一数据库中的所述待处理任务分为N组任务,并向N个执行器发送调度请求,所述调度请求用于请求执行所述N组任务中的一组任务,且所述调度请求携带该组任务的标识,其中,一个执行器执行一组任务,N为大于1的正整数;所述调度中心接收所述N个执行器返回的N个执行结果;所述调度中心基于所述N个执行结果,得到处理结果;其中,所述N个执行器位于N台物理机上,一台执行器位于一台物理机上,所述N台物理机遵循相同的通信协议,且为分布式网络中的物理机。
可选地,在本申请的一个实施例中,所述配置条件包括标签配置条件,所述待处理任务包括待处理标签任务,所述任务处理条件包括标签任务处理条件;或者,所述配置条件包括人群包配置条件,所述待处理任务包括待处理人群包任务,所述任务处理条件包括人群包任务处理条件。
可选地,在本申请的一个实施例中,所述配置条件包括订阅配置条件,所述目标数据包括待处理的人群包订阅任务,所述待处理任务包括用于推送的第一人群包订阅任务,所述任务处理条件包括订阅任务处理条件,所述处理包括推送。
可选地,在本申请的一个实施例中,在所述第一数据库中以位图的形式存储所述处理结果之后,所述处理模块还用于:基于以位图的形式存储的所述处理结果,得到用户画像。
需要说明的是,本申请实施例提供的用户数据处理装置与上文提到的用户数据处理方法相对应。相关内容可参照上文对用户数据处理方法的描述,在此不做赘述。
此外,如图13所示,本申请实施例还提供一种电子设备1300,所述电子设备可以为各种类型的计算机等。所述电子设备1300包括:处理器1310,存储器1320及存储在所述存储器1320上并在所述处理器1310上运行的程序或指令,所述程序或指令被所述处理器1310执行时实现上文所描述的任一种方法的步骤。举例而言,所述程序被所述处理器1020执行时实现如下过程:获取用户数据;从所述用户数据中获取与配置条件匹配的目标数据;基于所述目标数据,确定待处理任务;在满足设定的任务处理条件的情况下,将所述待处理任务记录到第一数据库中,并基于所述第一数据库对所述待处理任务进行处理,得到处理结果,其中,所述第一数据库为基于大规模并行处理的数据库;在所述第一数据库中以位图的形式存储所述处理结果。如此,在处理用户数据的过程中,由于基于MPP的第一数据库支持大规模数据并行处理,响应速度快,且基于位图形式存储处理结果可以保证快速计算(例如,可以通过位图取交集或并集,快速获取具有相同特征的用户群体等),因而这种利用基于MPP的数据库进行任务处理并采用位图形式存储处理结果的用户数据处理方法,可以提高用户数据处理速度。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被所述处理器1310执行时实施上文所描述的任一种方法的步骤。举例而言,所述程序被所述处理器1310执行时实现如下过程:获取用户数据;从所述用户数据中获取与配置条件匹配的目标数据;基于所述目标数据,确定待处理任务;在满足设定的任务处理条件的情况下,将所述待处理任务记录到第一数据库中,并基于所述第一数据库对所述待处理任务进行处理,得到处理结果,其中,所述第一数据库为基于大规模并行处理的数据库;在所述第一数据库中以位图的形式存储所述处理结果。如此,在处理用户数据的过程中,由于基于MPP的第一数据库支持大规模数据并行处理,响应速度快,且基于位图形式存储处理结果可以保证快速计算(例如,可以通过位图取交集或并集,快速获取具有相同特征的用户群体等),因而这种利用基于MPP的数据库进行任务处理并采用位图形式存储处理结果的用户数据处理方法,可以提高用户数据处理速度。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (15)
1.一种用户数据处理方法,其特征在于,包括:
获取用户数据;
从所述用户数据中获取与配置条件匹配的目标数据;
基于所述目标数据,确定待处理任务;
在满足设定的任务处理条件的情况下,将所述待处理任务记录到第一数据库中,并基于所述第一数据库对所述待处理任务进行处理,得到处理结果,其中,所述第一数据库为基于大规模并行处理的数据库;
在所述第一数据库中以位图的形式存储所述处理结果;
其中,在所述确定待处理任务之后,所述方法还包括:在基于第一数据库对所述待处理任务进行处理的过程中,在第二数据库中记录所述待处理任务的处理状态;
在接收到目标指令的情况下,从所述第二数据库中获取目标任务,所述目标任务为所述待处理任务中的任务;通过调用所述第一数据库的命令获取所述目标任务的处理状态;所述目标指令用于查询所述待处理任务的处理状态;
返回所述目标任务的处理状态。
2.根据权利要求1所述的方法,其特征在于,所述待处理任务包括多个任务,所述基于第一数据库对所述待处理任务进行处理,得到处理结果包括:
将所述待处理任务分为N组任务,基于所述第一数据库,通过N个线程对所述N组任务进行并行处理,得到N个处理结果;
其中,N为大于1的正整数。
3.根据权利要求1所述的方法,其特征在于,
所述处理状态包括以下任一种:未处理、处理中、处理失败、处理成功和取消处理。
4.根据权利要求3所述的方法,其特征在于,
所述目标任务为所述待处理任务中处于处理中的任务。
5.根据权利要求4所述的方法,其特征在于,在所述调用所述第一数据库的命令获取所述目标任务的处理状态之后,所述方法还包括:
确定所述目标任务的第一处理状态与第二处理状态的匹配结果,所述第一处理状态为通过调用所述第一数据库的命令获取的所述目标任务的处理状态,所述第二处理状态为所述第二数据库中记录的所述目标任务的处理状态;
在所述目标任务的第一处理状态与第二处理状态不匹配的情况下,将所述目标任务的第二处理状态更新为,所述目标任务的第一处理状态;
其中,在相同的单位时间内,所述第一数据库比第二数据库的数据处理速度更快或者所述第一数据库比第二数据库的数据处理效率更高。
6.根据权利要求4所述的方法,其特征在于,所述待处理任务包括多个任务,
在接收到目标指令的情况下,从所述第二数据库中获取目标任务包括:在接收到目标指令的情况下,通过多线程分片查询获取所述第二数据库的目标任务。
7.根据权利要求1所述的方法,其特征在于,所述基于所述目标数据,确定待处理任务包括:
利用位图函数对所述目标数据进行去重,得到待处理任务。
8.根据权利要求1所述的方法,其特征在于,
所述获取用户数据包括:接收导入的用户数据,所述用户数据包括:离线数据、实时数据和事件数据中的至少一种;
所述方法还包括:对所述用户数据进行统一标准化。
9.根据权利要求1所述的方法,其特征在于,所述基于第一数据库对所述待处理任务进行处理,得到处理结果包括:
调度中心将记录到所述第一数据库中的所述待处理任务分为N组任务,并向N个执行器发送调度请求,所述调度请求用于请求执行所述N组任务中的一组任务,且所述调度请求携带该组任务的标识,其中,一个执行器执行一组任务,N为大于1的正整数;
所述调度中心接收所述N个执行器返回的N个执行结果;
所述调度中心基于所述N个执行结果,得到处理结果;
其中,所述N个执行器位于N台物理机上,一台执行器位于一台物理机上,所述N台物理机遵循相同的通信协议,且为分布式网络中的物理机。
10.根据权利要求1-9任一项所述的方法,其特征在于,所述配置条件包括标签配置条件,所述待处理任务包括待处理标签任务,所述任务处理条件包括标签任务处理条件;
或者,所述配置条件包括人群包配置条件,所述待处理任务包括待处理人群包任务,所述任务处理条件包括人群包任务处理条件。
11.根据权利要求1-9任一项所述的方法,其特征在于,所述配置条件包括订阅配置条件,所述目标数据包括待处理的人群包订阅任务,所述待处理任务包括用于推送的第一人群包订阅任务,所述任务处理条件包括订阅任务处理条件,所述处理包括推送。
12.根据权利要求10所述的方法,其特征在于,在所述第一数据库中以位图的形式存储所述处理结果之后,所述方法还包括:
基于以位图的形式存储的所述处理结果,得到用户画像。
13.一种用户数据处理装置,其特征在于,包括:获取模块、处理模块、存储模块;其中,
所述获取模块,用于获取用户数据;从所述用户数据中获取与配置条件匹配的目标数据;
所述处理模块,用于基于所述目标数据,确定待处理任务;
所述存储模块,用于在满足设定的任务处理条件的情况下,将所述待处理任务记录到第一数据库中;
所述处理模块,还用于基于所述第一数据库对所述待处理任务进行处理,得到处理结果,其中,所述第一数据库为基于大规模并行处理的数据库;
所述存储模块,还用于在所述第一数据库中以位图的形式存储所述处理结果;
其中,在所述确定待处理任务之后,所述处理模块,还用于在基于第一数据库对所述待处理任务进行处理的过程中,在第二数据库中记录所述待处理任务的处理状态;在接收到目标指令的情况下,从所述第二数据库中获取目标任务,所述目标任务为所述待处理任务中的任务;通过调用所述第一数据库的命令获取所述目标任务的处理状态;所述目标指令用于查询所述待处理任务的处理状态;返回所述目标任务的处理状态。
14.一种电子设备,其特征在于,包括:存储器和处理器,所述存储器存储计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至12中任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被执行时实现如权利要求1至12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210590834.7A CN115114359B (zh) | 2022-05-27 | 2022-05-27 | 用户数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210590834.7A CN115114359B (zh) | 2022-05-27 | 2022-05-27 | 用户数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115114359A CN115114359A (zh) | 2022-09-27 |
CN115114359B true CN115114359B (zh) | 2023-11-14 |
Family
ID=83326567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210590834.7A Active CN115114359B (zh) | 2022-05-27 | 2022-05-27 | 用户数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115114359B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115952207B (zh) * | 2022-12-21 | 2024-02-20 | 北京中睿天下信息技术有限公司 | 一种基于StarRocks数据库的威胁邮件存储方法和系统 |
CN115695432B (zh) * | 2023-01-04 | 2023-04-07 | 河北华通科技股份有限公司 | 一种负载均衡方法、装置、电子设备及存储介质 |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101073070A (zh) * | 2004-08-24 | 2007-11-14 | 塞门铁克操作公司 | 提供数据存储器内位置的修改历史的系统和方法 |
CN101438231A (zh) * | 2006-05-02 | 2009-05-20 | 电子地图北美公司 | 用于提供虚拟数据库环境并产生数字地图信息的系统和方法 |
US8239229B1 (en) * | 2000-02-24 | 2012-08-07 | Richard Paiz | Parallel computer network and method for real time financial resource management, inventory control, and online purchasing |
CN103646111A (zh) * | 2013-12-25 | 2014-03-19 | 普元信息技术股份有限公司 | 大数据环境下实现实时数据关联的系统及方法 |
CN103942342A (zh) * | 2014-05-12 | 2014-07-23 | 中国人民大学 | 一种内存数据库oltp&olap并发查询优化方法 |
CN105893126A (zh) * | 2016-03-29 | 2016-08-24 | 华为技术有限公司 | 一种任务调度方法及装置 |
CN108536692A (zh) * | 2017-03-01 | 2018-09-14 | 华为技术有限公司 | 一种执行计划的生成方法、装置及数据库服务器 |
CN109684352A (zh) * | 2018-12-29 | 2019-04-26 | 江苏满运软件科技有限公司 | 数据分析系统、方法、存储介质及电子设备 |
CN110597858A (zh) * | 2019-08-30 | 2019-12-20 | 深圳壹账通智能科技有限公司 | 任务数据处理方法、装置、计算机设备和存储介质 |
CN110990473A (zh) * | 2019-11-28 | 2020-04-10 | 北京海益同展信息科技有限公司 | 标签数据处理系统和方法 |
CN111143323A (zh) * | 2019-12-02 | 2020-05-12 | 新华三大数据技术有限公司 | Mpp数据库管理方法、装置及系统 |
CN111813805A (zh) * | 2019-04-12 | 2020-10-23 | 中国移动通信集团河南有限公司 | 一种数据处理方法及装置 |
CN112015775A (zh) * | 2020-09-27 | 2020-12-01 | 北京百度网讯科技有限公司 | 标签数据处理方法、装置、设备和存储介质 |
CN112948387A (zh) * | 2021-03-04 | 2021-06-11 | 北京深演智能科技股份有限公司 | 数据处理方法、装置、存储介质及处理器 |
CN113254420A (zh) * | 2021-05-24 | 2021-08-13 | 中国民生银行股份有限公司 | 业务数据处理方法和代理服务器 |
CN113515528A (zh) * | 2021-09-14 | 2021-10-19 | 北京江融信科技有限公司 | 基于大数据和oracle海量数据的资产筛选系统和方法 |
CN113867916A (zh) * | 2021-09-28 | 2021-12-31 | 北京百度网讯科技有限公司 | 任务处理方法、装置及电子设备 |
CN113946427A (zh) * | 2021-10-29 | 2022-01-18 | 中国建设银行股份有限公司 | 用于多操作系统的任务处理方法、处理器及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9576012B2 (en) * | 2013-03-14 | 2017-02-21 | Oracle International Corporation | Hierarchical tablespace space management |
-
2022
- 2022-05-27 CN CN202210590834.7A patent/CN115114359B/zh active Active
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8239229B1 (en) * | 2000-02-24 | 2012-08-07 | Richard Paiz | Parallel computer network and method for real time financial resource management, inventory control, and online purchasing |
CN101073070A (zh) * | 2004-08-24 | 2007-11-14 | 塞门铁克操作公司 | 提供数据存储器内位置的修改历史的系统和方法 |
CN101438231A (zh) * | 2006-05-02 | 2009-05-20 | 电子地图北美公司 | 用于提供虚拟数据库环境并产生数字地图信息的系统和方法 |
CN103646111A (zh) * | 2013-12-25 | 2014-03-19 | 普元信息技术股份有限公司 | 大数据环境下实现实时数据关联的系统及方法 |
CN103942342A (zh) * | 2014-05-12 | 2014-07-23 | 中国人民大学 | 一种内存数据库oltp&olap并发查询优化方法 |
CN105893126A (zh) * | 2016-03-29 | 2016-08-24 | 华为技术有限公司 | 一种任务调度方法及装置 |
CN108536692A (zh) * | 2017-03-01 | 2018-09-14 | 华为技术有限公司 | 一种执行计划的生成方法、装置及数据库服务器 |
CN109684352A (zh) * | 2018-12-29 | 2019-04-26 | 江苏满运软件科技有限公司 | 数据分析系统、方法、存储介质及电子设备 |
CN111813805A (zh) * | 2019-04-12 | 2020-10-23 | 中国移动通信集团河南有限公司 | 一种数据处理方法及装置 |
CN110597858A (zh) * | 2019-08-30 | 2019-12-20 | 深圳壹账通智能科技有限公司 | 任务数据处理方法、装置、计算机设备和存储介质 |
CN110990473A (zh) * | 2019-11-28 | 2020-04-10 | 北京海益同展信息科技有限公司 | 标签数据处理系统和方法 |
CN111143323A (zh) * | 2019-12-02 | 2020-05-12 | 新华三大数据技术有限公司 | Mpp数据库管理方法、装置及系统 |
CN112015775A (zh) * | 2020-09-27 | 2020-12-01 | 北京百度网讯科技有限公司 | 标签数据处理方法、装置、设备和存储介质 |
CN112948387A (zh) * | 2021-03-04 | 2021-06-11 | 北京深演智能科技股份有限公司 | 数据处理方法、装置、存储介质及处理器 |
CN113254420A (zh) * | 2021-05-24 | 2021-08-13 | 中国民生银行股份有限公司 | 业务数据处理方法和代理服务器 |
CN113515528A (zh) * | 2021-09-14 | 2021-10-19 | 北京江融信科技有限公司 | 基于大数据和oracle海量数据的资产筛选系统和方法 |
CN113867916A (zh) * | 2021-09-28 | 2021-12-31 | 北京百度网讯科技有限公司 | 任务处理方法、装置及电子设备 |
CN113946427A (zh) * | 2021-10-29 | 2022-01-18 | 中国建设银行股份有限公司 | 用于多操作系统的任务处理方法、处理器及存储介质 |
Non-Patent Citations (1)
Title |
---|
基于托管可扩展框架的武器试验数据计算平台;汤国防等;《计算机应用与软件 》;第14-18页 * |
Also Published As
Publication number | Publication date |
---|---|
CN115114359A (zh) | 2022-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115114359B (zh) | 用户数据处理方法及装置 | |
EP3221795B1 (en) | Service addressing in distributed environment | |
CN109997126B (zh) | 事件驱动提取、变换、加载(etl)处理 | |
US8312037B1 (en) | Dynamic tree determination for data processing | |
US10133797B1 (en) | Distributed heterogeneous system for data warehouse management | |
US8738645B1 (en) | Parallel processing framework | |
EP2872985B1 (en) | Advanced database systems and methods | |
CN109783512A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN114443435A (zh) | 一种面向容器微服务的性能监控告警方法及告警系统 | |
CN107515784B (zh) | 一种在分布式系统中计算资源的方法与设备 | |
CN110968586A (zh) | 分布式事务处理方法及装置 | |
CN106407244A (zh) | 基于多数据库的数据查询方法、系统和装置 | |
US7877757B2 (en) | Work item event monitor for procession of queued events | |
CN114090580A (zh) | 数据处理方法、装置、设备、存储介质及产品 | |
CN111597270A (zh) | 数据同步方法、装置、设备及计算机存储介质 | |
CN111177237B (zh) | 一种数据处理系统、方法及装置 | |
CN111784468A (zh) | 一种账户关联方法、装置及电子设备 | |
CN112597151A (zh) | 数据处理方法、装置、设备和存储介质 | |
CN115982211B (zh) | 基于云原生的MySQL数据查询分析方法及装置 | |
CN110968406B (zh) | 处理任务的方法、装置、存储介质和处理器 | |
CN115022198B (zh) | 资源信息获取方法、设备及存储介质 | |
CN111600771A (zh) | 网络资源探测系统、方法 | |
CN113010385B (zh) | 一种任务状态更新方法、装置、设备及介质 | |
CN114201284A (zh) | 定时任务管理方法及系统 | |
CN110011832B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |