CN112559562A - 一种信息处理方法及系统 - Google Patents
一种信息处理方法及系统 Download PDFInfo
- Publication number
- CN112559562A CN112559562A CN201910910614.6A CN201910910614A CN112559562A CN 112559562 A CN112559562 A CN 112559562A CN 201910910614 A CN201910910614 A CN 201910910614A CN 112559562 A CN112559562 A CN 112559562A
- Authority
- CN
- China
- Prior art keywords
- target object
- target
- data
- database
- query
- 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
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/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
-
- 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/23—Updating
-
- 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/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24573—Query processing with adaptation to user needs using data annotations, e.g. user-defined metadata
-
- 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
- G06F16/258—Data format conversion from or to a database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种信息处理方法及系统。该申请中,获取群体分组规则以及第一数据库中目标对象的数据,确定所述目标对象的数据与所述群体分组规则是否匹配,若匹配,则更新所述第一数据库,更新后的第一数据库中所述目标对象的数据中包括所述群体分组规则对应的群体分组标识;其中,所述目标对象的数据包括目标对象的标签和/或群体分组标识;将所述第一数据库中目标对象的数据进行格式转换后同步到第二数据库中,进行格式转换后的数据格式为用于实时查询的数据格式;响应于接收到的查询请求,根据所述查询请求查询所述第二数据库,并输出查询结果。
Description
技术领域
本申请涉及数据处理技术,尤其涉及一种信息处理方法及系统。
背景技术
针对存储用户信息的数据库,在为用户增加新的标签或创建新的人群分组规则时,希望能够根据新增的标签或者新创建的人群分组规则更新用户信息数据库中用户所属的分组,并能够实现对用户信息数据库的高效检索。
数据库中存储有海量用户信息,每个用户下有多种(比如十几种)不同类型的标签,每一种标签下有多个(比如几十到数百个)不同的值。当用户信息数据库中增加新的标签或者创建新的人群分组规则时,需要更新用户信息数据库中的用户所属的人群分组,但传统的数据库无法支持海量数据的高效更新。另外,对于海量数据,基于传统数据库无法实现高效检索。因此,如何针对海量数据,进行数据更新以及高效检索,是目前需要解决的问题。
发明内容
本申请实施例提供了一种信息处理方法及系统,用以针对海量数据提高查询效率。
第一方面,提供一种信息处理方法,包括:
获取群体分组规则以及第一数据库中目标对象的数据,确定所述目标对象的数据与所述群体分组规则是否匹配,若匹配,则更新所述第一数据库,更新后的第一数据库中所述目标对象的数据中包括所述群体分组规则对应的群体分组标识;其中,所述目标对象的数据包括目标对象的标签和/或群体分组标识;
将所述第一数据库中目标对象的数据进行格式转换后同步到第二数据库中,进行格式转换后的数据格式为用于实时查询的数据格式;
响应于接收到的查询请求,根据所述查询请求查询所述第二数据库,并输出查询结果。
可选地,所述查询请求携带目标对象的标识和目标标签的标识,所述查询请求用于请求查询所述目标对象的目标标签的取值;所述响应于接收到的查询请求,根据所述查询请求查询所述第二数据库,并输出查询结果,包括:响应于所述查询请求,根据所述查询请求中的所述目标对象的标识和所述目标标签的标识查询所述第二数据库,得到所述目标对象的目标标签的取值,并输出所述目标对象的目标标签的取值。
可选地,所述查询请求携带目标对象的标识以及目标群体分组的标识,所述查询请求用于请求查询所述目标对象是否属于所述目标群体分组;所述响应于接收到的查询请求,根据所述查询请求查询所述第二数据库,并输出查询结果,包括:响应于所述查询请求,根据所述查询请求中的所述目标对象的标识查询所述第二数据库中所述目标对象的数据,得到所述目标对象的群体分组标识;确定所述目标对象的群体分组标识与所述目标群体分组的标识是否匹配,若匹配,则输出所述目标对象属于所述目标群体分组的查询结果,否则输出所述目标对象不属于所述目标群体分组的查询结果。
可选地,所述查询请求携带目标对象的标识以及目标群体分组的标识,所述查询请求用于请求查询所述目标对象是否属于所述目标群体分组;所述响应于接收到的查询请求,根据所述查询请求查询所述第二数据库,并输出查询结果,包括:响应于所述查询请求,根据所述查询请求携带的目标群体分组的标识获取所述目标群体分组的规则,并根据所述查询请求中的所述目标对象的标识查询所述第二数据库中所述目标对象的数据,得到所述目标对象的标签的取值;将所述目标对象的标签的取值,与所述目标群体分组的规则进行匹配,若匹配,则输出所述目标对象属于所述目标群体分组的查询结果,否则输出所述目标对象不属于所述目标群体分组的查询结果。
可选地,所述查询请求携带目标对象的标识以及目标群体分组的标识,所述查询请求用于请求查询所述目标对象是否属于所述目标群体分组;所述响应于接收到的查询请求,根据所述查询请求查询所述第二数据库,并输出查询结果,包括:响应于接收到的查询请求,根据预设策略选择查询方法,所述查询方法包括直接查询和标签查询;若确定采用直接查询,则根据所述查询请求中的所述目标对象的标识查询所述第二数据库中所述目标对象的数据,得到所述目标对象的群体分组标识,确定所述目标对象的群体分组标识与所述目标群体分组的标识是否匹配,若匹配,则输出所述目标对象属于所述目标群体分组的查询结果,否则输出所述目标对象不属于所述目标群体分组的查询结果;若确定采用标签查询,则根据所述查询请求携带的目标群体分组的标识获取所述目标群体分组的规则,根据所述查询请求中的所述目标对象的标识查询所述第二数据库中所述目标对象的数据,得到所述目标对象的标签的取值,将所述目标对象的标签的取值与所述目标群体分组的规则进行匹配,若匹配,输出所述目标对象属于所述目标群体分组的查询结果,否则输出所述目标对象不属于所述目标群体分组的查询结果。
可选地,所述将所述第一数据库中目标对象的数据进行格式转换后同步到第二数据库中,包括:响应于所述第一数据库发生更新的事件,将更新后的所述第一数据库中目标对象的数据进行格式转换后同步到第二数据库中;或者按照设定时间或设定周期对所述第一数据库进行检测,若检测到所述第一数据库发生更新,则将更新后的所述第一数据库中目标对象的数据进行格式转换后同步到第二数据库中。
可选地,还包括:对所述数据库中目标对象的数据进行第二格式转换,根据第二格式转换后的数据生成倒排索引;其中,第二格式转换后的数据格式为用于生成倒排索引的索引生成器支持的数据格式,所述倒排索引以所述目标数据为主键并以对象标识列表为主键所对应的数据;响应于接收到的第二查询请求,根据所述第二查询请求查询所述倒排索引,得到符合所述查询请求的对象的数量。
可选地,所述数据库为Hbase数据库,所述Hbase数据库用于存储用户信息,所述目标对象为目标用户。
第二方面,提供一种信息处理系统,包括:群体分组任务模块,用于获取群体分组规则以及第一数据库中目标对象的数据,确定所述目标对象的数据与所述群体分组规则是否匹配,若匹配,则更新所述第一数据库,更新后的第一数据库中所述目标对象的数据中包括所述群体分组规则对应的群体分组标识;其中,所述目标对象的数据包括目标对象的标签和/或群体分组标识;数据同步模块,用于将所述第一数据库中目标对象的数据进行格式转换后同步到第二数据库中,进行格式转换后的数据格式为用于实时查询的数据格式;搜索引擎,用于响应于接收到的查询请求,根据所述查询请求查询所述第二数据库,并输出查询结果。
可选地,所述查询请求携带目标对象的标识以及目标群体分组的标识,所述查询请求用于请求查询所述目标对象是否属于所述目标群体分组;所述搜索引擎具体用于:响应于接收到的查询请求,根据预设策略选择查询方法,所述查询方法包括直接查询和标签查询;若确定采用直接查询,则根据所述查询请求中的所述目标对象的标识查询所述第二数据库中所述目标对象的数据,得到所述目标对象的群体分组标识,确定所述目标对象的群体分组标识与所述目标群体分组的标识是否匹配,若匹配,则输出所述目标对象属于所述目标群体分组的查询结果,否则输出所述目标对象不属于所述目标群体分组的查询结果;若确定采用标签查询,则根据所述查询请求携带的目标群体分组的标识获取所述目标群体分组的规则,根据所述查询请求中的所述目标对象的标识查询所述第二数据库中所述目标对象的数据,得到所述目标对象的标签的取值,将所述目标对象的标签的取值与所述目标群体分组的规则进行匹配,若匹配,输出所述目标对象属于所述目标群体分组的查询结果,否则输出所述目标对象不属于所述目标群体分组的查询结果。
本申请的上述实施例中,一方面,通过获取群体分组规则以及第一数据库中目标对象的数据,确定所述目标对象的数据与所述群体分组规则是否匹配,并在匹配的情况下更新所述第一数据库,使得更新后的第一数据库中所述目标对象的数据中包括所述群体分组规则对应的群体分组标识,实现了基于群体分组规则针对对象所归属的群体分组进行更新;另一方面,通过将所述第一数据库中目标对象的数据进行格式转换后同步到第二数据库中,进行格式转换后的数据格式为用于实时查询的数据格式,并在接收到的查询请求后,根据所述查询请求查询所述第二数据库,并输出查询结果,从而可以提高查询(或检索)效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示例性示出了本申请实施例中的倒排索引建立的流程示意图;
图2示例性示出了本申请实施例中的查询流程示意图;
图3示例性示出了本申请实施例中的信息处理系统的架构示意图;
图4示例性示出了本申请实施例中信息处理示意图;
图5示例性示出了本申请实施例提供的信息处理装置的结构示意图;
图6示例性示出了本申请实施例中的查询流程以判断目标用户是否属于目标人群。
具体实施方式
下面首先结合附图对本申请所涉及的概念进行说明。在此需要指出的是,以下对各个概念的说明,仅为了使本申请的内容更加容易理解,并不表示对本申请保护范围的限定。
应当理解,本申请中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,例如能够根据本申请实施例图示或描述中给出那些以外的顺序实施。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的那些组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
本申请中使用的术语“模块”“搜索引擎”“调度器”等,是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件和/或软件代码的组合,能够执行与该元件相关的功能。
针对海量数据,无论在数据存储还是数据管理方面,都提出了更高的要求。以海量的用户数据为例,海量用户数据的管理系统,需要能够提供以下功能中的一种或多种:数据存储功能,根据人群分组规则圈定人群,针对用户标签和人群支持低延迟的实时线上检索,针对用户标签和人群支持定期或实时的更新并按需同步到线上。比如在广告系投放领域,需要实时根据某些条件对海量用户数据进行匹配以选择合适的投放对象,匹配条件可包括用户标签(如用户的性别,年龄,地域等),还可包括根据某些标签圈定出的人群(如对特定内容感兴趣的人群,最近观看过某些视频的人群,点击过某些广告的人群等)。
传统的关系数据库不能满足海量数据的存储需求,不适用于海量数据检索的场景,目前业界使用Hbase存储海量的数据。Hbase是分布式的、面向列的开源数据库。标签(也称为tag)作为海量数据存储在Hbase中,不同类的标签存储在数据库中不同的列(column)下,即数据库中的列与标签相对应。其中,标签用于描述对象的特征和/或行为,如性别、年龄、兴趣、点击记录、观看的视频、关注的上传者等。Hbase只支持对主键进行索引,无法对各列(column)下的值进行索引。
为解决上述问题,本申请实施例提供了一种信息处理方法及系统,通过本申请实施例,可以对海量数据进行存储、更新以及检索。本申请实施例提供的信息处理系统由多个模块组成,使用多个基础的开源组件共同配合互补来实现业务的需求,提供了综合解决方案。本申请实施例由离线存储,在线存储,以及相关数据处理的调度任务组成综合的解决方案。具备可扩展、高性能、易维护、低成本等特点。
本申实施例中,用于存储对象的数据的数据库采用Hbase,以存储海量的数据。其中,所述对象可以是用户,即数据库用于存储用户数据。
Hbase中存储的对象数据可包括对象的标签(也称为tag)和对象所属的群体分组信息,该分组信息具体可以是分组ID。该数据库中,对象的标识(UID)为主键,每一行对应一个对象,每一行由多列组成,每一列存储了一类标签或群体分组。Hbase数据库中的标签(列),不同标签的格式可能不同,标签具体可以分为两类:范围匹配和数值匹配。
表1示例性示出了一种存储有用户数据的Hbase的数据结构示意。
表1:数据库结构
其中,该数据结构中,对于一个用户来说,其信息占用一行,一个用户的信息包括:用户标识(UID)、用户标签和所属分组的分组标识(GIDs)。其中,用户标识用于唯一标识一个用户,比如表中的“100001”,用户标识被设置为主键。用户标签可包含一个或多个,一个标签占用一列,比如表1中的“视频观看记录标签”用于对用户观看视频的行为进行记录。一个用户可能属于一个人群分组(即群体分组),也可能属于多个人群分组,表1中的“所属分组”中记录一个用户所属人群分组的分组标识(GIDs)。
如表1所示,“视频观看记录标签”属于范围匹配类型,其表达式[[“20190501”,[A,B,C]],[“20190502”,[B,C,D]],[“20190503”,[D,E,F]]表示:2019年5月1日观看视频A,B,C;2019年5月2日观看视频B,C,D;2019年5月3日观看视频D,E,F。其中,A,B,C,D,E,F表示视频标识。
可选地,用户所属的人群也存储在单独的列中,可根据人群类型的不同分别存储到不同的列中,如人群列表1,人群列表2等,不同列的人群列表可以独立更新,互不影响。
下面结合附图对本申请实施例进行详细描述。
图1示出了本申请实施例提供的信息处理系统的结构示意图。
如图所示,该系统可包括:第一数据库101、第二数据库102、第三数据库103。
其中,第一数据库101用于存储对象的数据。可选地,该数据库可以是HBase数据库,所存储的对象数据可包括对象的标签和对象所属的群体分组信息(比如群体分组ID)。
第二数据库102中存储的数据用于响应查询请求,即可根据用户的查询请求查询第二数据库102以得到查询结果。第二数据库102中存储的数据是通过对第一数据库中的全部或部分对象的数据进行格式转换所得到的,进行格式转换后的数据格式为用于实时查询的数据格式。可选地,第二数据库102可以是Redis数据库。Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的应用程序可编程接口(API)。
第三数据库103用于存储群体元数据。所述群体元数据具体可包括群体的分组规则,比如作为一个例子,群体分组规则为:最近30天内浏览过视频A和视频B的人群。所述群体元数据还可以包括群体分组规则的状态,所述群体分组规则的状态可包括“待匹配”“匹配完成”。当新创建一个群体分组规则后,可将其状态默认设置为“待匹配”状态;当针对该群体分组规则,对第一数据库101进行更新,即,在第一数据库101中,将与该规则匹配的对象的群体分组ID进行更新(比如添加该规则所对应的群体分组ID)后,可将该规则的状态更新为“匹配完成”状态。
可选地,由于群体元数据的数据量相较于对象数据的数据量少很多,因此第三数据库103采用MySQL数据库管理系统进行管理,从而相较于第一数据库101,可以提高处理消息和灵活性。MySQL是一个关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
需要说明的是,在另外一些实施例中,作为第二数据库102的一种替换形式,用于响应查询的对象数据也可不采用数据库存储结构,而采用其他存储结构,比如配置文件。在另外一些实施例中,作为第三数据库103的一种替换形式,群组元数据也可不采用数据库存储结构,而采用其他存储结构,比如配置文件。
上述信息处理系统中,还包括以下功能模块,以实现不同的信息处理功能:群体分组任务模块104、数据同步模块105、搜索引擎106。
群体分组任务模块104主用于根据群体分组规则更新第一数据库101中的对象数据所属的分组。具体地,该模块用于从第三数据库103中获取群体分组规则以及从第一数据库101中获取目标对象的数据,确定所述目标对象的数据与所述群体分组规则是否匹配,若匹配,则更新第一数据库101,更新后的第一数据库101中所述目标对象的数据中包括所述群体分组规则对应的群体分组标识。其中,所述目标对象的数据包括目标对象的标签和/或群体分组标识。
数据同步模块105主要用于将第一数据库101中的部分或全部对象数据转换为便于查询的数据格式后同步到第二数据库102中。具体地,该模块用于将第一数据库101中目标对象的数据进行格式转换后同步到第二数据库102中,进行格式转换后的数据格式为用于实时查询的数据格式。
可选地,数据同步模块105可以在检测到第三数据库103中有群体分组规则更新时,待第一数据库101中的对象数据根据该群体分组规则更新完成后,将第一数据库101中的部分或全部对象数据转换为便于查询的数据格式后同步到第二数据库102中。
本申请实施例中,第一数据库为HBase数据库,虽然可以存储海量数据,但是并不适合这种高性能的随机访问。为了实现高效的实时查询,本申请实施例中可将对象数据及时同步到第二数据库(如Redis数据库)中。具体实施时,可定期检测第一数据库(HBase数据库)中的对象数据(包括标签和/或群体分组)的变化或者第三数据库(MySQL数据库)中的群体分组规则的变化,当发现有对象数据(标签或群体分组)发生更新时,可将第一数据库(HBase数据库)中的对象数据同步到第二数据库(Redis数据库)中。
可选地,第二数据库(Redis数据库)中的数据可以用Protobuf格式存储,在将对象数据导入第二数据库(Redis数据库)导入之前,可将第一数据库(HBase数据库)中每一行数据转化成Protobuf对象(即进行序列化处理),并将序列化之后的数据写入第二数据库(Redis数据库)中。
搜索引擎106主要用于针对接收到的查询请求进行响应。具体地,搜索引擎106用于响应于接收到的查询请求,根据所述查询请求查询第二数据库102,并输出查询结果。
基于上述图1所示的系统架构,以用户信息数据库为例,图2示例性示出了一种用于用户数据的信息处理系统的结构。
如图所示,该系统可包括:HBase数据库201、Redis数据库202、MySQL数据库203,以及人群计算/更新任务模块204、人群/标签同步任务模块205、搜索引擎206,还可进一步包括标签导入/更新任务模块207。进一步地,还可包括人群预估索引存储模块208以及索引同步任务模块209。该系统可提供人机交互平台210,以便用户211可以通过人机交互平台210访问该系统,比如人机交互平台210可以提供用户界面,用户通过该用户界面可以对群体进行创建、编辑、发布或删除等管理。
其中,HBase数据库201、Redis数据库202、MySQL数据库103,依次对应于图1所示系统结构中的第一数据库101、第二数据库102和第三数据库103;人群计算/更新任务模块204、人群/标签同步任务模块205、搜索引擎206,依次对应于图1所示系统结构中的群体分组任务模块104、数据同步模块105、搜索引擎106。其作用和功能与图1中的相应组件或模块相似,这里不再重复。下面仅对标签导入/更新任务模块207、人群预估索引存储模块208以及索引同步任务模块209进行简单说明。
标签导入/更新任务模块207主要用于从外部将用户标签和自定义人群的相关信息导入到HBase数据库201。该模块可支持对来自多个不同数据源的用户数据进行导入,可针对不同的数据源进行独立的导入操作。
例如,本申请实施例中,可将以下数据源的用户数据导入HBase数据库:
-业务日志。如用户点击日志,观看视频日志,感兴趣的内容等;
-算法生成的用户数据。由机器学习算法计算生成的数据,如性别,年龄,商业兴趣等;
-用户自定义的数据。由用户自行上传的人群包文件,人群包的内容可以包括国际移动设备识别码(International Mobile Equipment Identity,IMEI)、IDFA(IDFA是Identifier For Advertising的英文简称,一个跟device相关的唯一标识符,可以理解为广告ID)、电话号码或者用户ID等。
-第三方接入的数据源。
标签的原始数据存储在Hive或者HDFS中,标签导入/更新任务模块207可以定时检测是否有标签更新,若有,则执行导入操作。不同类型的标签更新任务互相独立,写入到HBase数据库中的不同列中。导入过程可如图3所示。
人群预估索引存储模块208主要用于分布式索引,对用户标签和人群建立索引,以便对覆盖人数进行预估。
索引同步任务模块209主要用于把用户标签/人群导入外部索引,供人群覆盖人数预估使用。
进一步地,可以由任务调度器对所有的离线任务进行统一调度,所述调度可根据时间或事件触发。调度器可支持共享资源冲突管理,以避免多个任务引起的资源冲突。
群体分组计算(即确定对象所归属的群体分组)是上述系统中的核心任务,负责检测待计算的群体分组,然后根据群体分组规则对对象的标签进行匹配,确定该对象是否属于该群体分组,若是,则将该群体分组的ID添加到该对象的数据中。
基于上述图1所示的系统架构,图4示例性示出了更新对象所属的群体分组的流程示意图,该流程可由群体分组任务模块104执行。如图4所示,该流程可包括:
S401:从第三数据库中获取群体分组规则;
S402:从第一数据库中获取目标对象的数据;
S403:确定所述目标对象的数据与所述群体分组规则是否匹配;若匹配,则转入S403,否则转入S404;
S403:更新第一数据库,更新后的第一数据库中所述目标对象的数据中包括所述群体分组规则对应的群体分组标识;其中,所述目标对象的数据包括目标对象的标签和/或群体分组标识;
S404:结束本次处理。
上述流程中的步骤时序没有严格要求。
上述流程可循环执行,直到第一数据库中的所有对象均被遍历到。
基于图4所示的流程,以用户数据为例,并结合图2,图5示例性示出了一种更新对象所属的群体分组的流程示意图,如图所示,该流程可包括:
S501、从MySQL数据库203读取状态为“待匹配”的人群分组规则,如“匹配所有最近30天观看过A视频的用户”。
S502:从HBase数据库201读取需要进行匹配的用户标签和数据库中的人群列表。该步骤中,因为HBase数据库支持按列读取,因此可以只读取数据库中的需要计算的标签列和需要写入的人群列。
S503:根据人群分组规则对每个用户进行匹配,也就是将用户的标签列和/或人群列,与获取到的人群分组规则进行匹配,确定该用户是否属于该人群分组规则所描述的人群。
可选地,可在S402中可读取多个用户数据中的标签列和人群列,并可在本步骤中针对该多个用户的匹配过程进行并行执行。具体地,可基于MapReduce任务机制,使一个任务处理一个用户的匹配过程,从而使该多个用户的匹配过程并发进行,以提高处理效率。其中,MapReduce是一种编程模型,用于大规模数据集的并行运算。
S504:如果有用户的数据与该人群分组规则相匹配,即有用户属于该人群分组规则所定义的人群,则更新该用户的人群列,更新后的人群列中包含该人群分组规则所对应的人群分组ID。
该步骤中,对于与该人群分组规则匹配的用户,可将该人群分组规则所对应的人群分组ID,与该用户数据中原有的人群列中的人群分组ID进行增量更新。比如,用户数据中的人群列表为[1,2,3,4],新匹配的人群分组规则所对应的人群分组ID为[5,6],则合并后该用户数据中的人群列表为[1,2,3,4,5,6]。本申请实施例也支持全量覆盖更新模式。具体采用何种更新模式,可根据业务需求配置。
S505:将更新后的人群列表写回HBase数据库。
S506:将该人群分组规则的状态设置为“完成匹配”。
可按照上述流程循环检测MySQL数据库中的人群分组规则的状态,针对每个状态为“待匹配”的人群规则,执行上述流程。
本申请实施例中,当上述系统接收到查询请求后,作为响应,该系统可根据该查询请求实时查询第二数据库(如HBase数据库),并输出查询结果。例如,上述系统中的搜索引擎可以从第二数据库(Redis数据库)中读取一个用户的Protbuf数据,并基于该Protbuf数据进行查询。
本申请实施例中,查询可分为以下两类:
标签检索:查询对象的标签,比如查询某个用户的某个标签的取值,如性别、年龄;
群体检索:判断对象是否属于某个群体分组。
在标签检索的例子中,系统接收查询请求,该查询请求中至少携带对象标识,还可进一步携带标签标识(标签标识用于指示标签所在的列),该查询请求用于请求查询该目标对象标识所对应的对象的标签。作为响应,本申请实施例提供的系统响应于该查询请求,根据查询请求中的目标对象标识以及目标标签标识查询第二数据库(如Redis数据库)中该目标对象的数据,得到该目标对象的数据中的目标标签的取值,并输出目标对象的目标标签的取值。比如,查询第二数据库(Redis数据库)时,可以读取目标对象(即查询请求携带的对象标识所对应的对象)的protobuf数据,并根据该查询请求中携带的标签标识确定该protobuf数据中的相应字段,并读取该字段的内容。
本申请实施例中,群体检索可采用直接匹配方法,也可以采用标签匹配方法。
直接匹配,是指直接根据查询请求中携带的群体分组ID查询第二数据库中目标对象的群体分组ID,以判断该目标对象是否属于该查询请求中的群体分组ID所对应的群体分组。
具体地,直接匹配方法可包括:接收查询请求,其中携带目标对象的标识以及目标群体分组的标识,所述查询请求用于请求查询所述目标对象是否属于所述目标群体分组。作为响应,本申请实施例中的系统响应于所述查询请求,根据所述查询请求中的所述目标对象的标识查询所述第二数据库中所述目标对象的数据,得到所述目标对象的群体分组标识;确定所述目标对象的群体分组标识与所述目标群体分组的标识是否匹配,若匹配,则输出所述目标对象属于所述目标群体分组的查询结果,否则输出所述目标对象不属于所述目标群体分组的查询结果。
对于用户自定义的群体(比如人群)或者算法生成的群体等相对固定的群体,或者群体分组规则所涉及的标签数据过大的群体,如最近观看的视频标签(Redis资源有限,无法存储大量数据),可以采用上述直接匹配方法,以提高查询效率。
标签匹配,是指根据查询请求中携带的群体分组ID从第三数据库(如MySQL数据库)中获取对应的群体分组规则,查询第二数据库(如Redis数据库)中的目标对象的数据中的标签,并将该目标对象的标签与该群体分组规则进行匹配,以判断该目标对象是否属于该查询请求中的群体分组ID所对应的群体分组。
具体地,标签匹配方法可包括:接收查询请求,其中携带目标对象的标识以及目标群体分组的标识,所述查询请求用于请求查询所述目标对象是否属于所述目标群体分组(该目标群体分组即为与该群体分组标识对应的分组)。作为响应,本申请实施例中的系统响应于所述查询请求,根据所述查询请求携带的目标群体分组的标识获取所述目标群体分组的规则,并根据所述查询请求中的所述目标对象的标识查询所述第二数据库中所述目标对象的数据,得到所述目标对象的标签的取值;将所述目标对象的标签的取值,与所述目标群体分组的规则进行匹配,若匹配,则输出所述目标对象属于所述目标群体分组的查询结果,否则输出所述目标对象不属于所述目标群体分组的查询结果。
对于标签数据量相对较小,但是匹配规则多变的群体,可以采用上述标签匹配方法来进行群体匹配,因为这一类群体数量很大,不同标签组合生成的群体分组ID比原始的标签数据量还要大很多,随着业务的增长,群体包的增多,会导致数据膨胀。
可选地,可根据预设的策略,选择是采用上述“直接匹配”方法还是采用上述“标签匹配”方法来确定目标对象是否属于目标群体分组。举例来说,所述预设的策略具体可以包括:
对于用户自定义的群体(比如人群)或者算法生成的群体等相对固定的群体,或者群体分组规则所涉及的标签数据过大的群体,采用上述直接匹配方法,以提高查询效率;对于标签数据量相对较小,但是匹配规则多变的群体,采用上述标签匹配方法来进行群体匹配。
图6以用户信息为例,示例性示出了一种查询流程以判断目标用户是否属于目标人群的流程。如图所示,该流程可包括:
S601:接收查询请求,该查询请求中携带用户ID和人群分组ID;
S602:根据用户ID查询Redis数据库;
S603:若查询到该用户ID对应的用户数据,则转入S604,否则结束本次流程;
S604~605:根据预设的策略确定采用直接匹配方法还是标签匹配方法,若确定采用直接匹配方法则转入S605,若确定采用标签匹配方法则转入S606;
S606:采用直接匹配方法,确定该用户ID对应的用户是否属于该人群ID对应的人群,具体过程可参见前述描述。
S607:采用标签匹配方法,确定该用户ID对应的用户是否属于该人群ID对应的人群,具体过程可参见前述描述。
S608:输出查询结果。
综上所述,本申请实施例提供了一种海量用户的标签和人群管理系统的综合解决方案,可以满足对海量用户数据的存储,更新以及线上高性能的检索需求。本申请实施例中,基于Hbase数据库的可扩展的用户数据模型,可以方便的添加标签,不同类型的标签与人群数据解耦,可以单独的维护更新,并且在HBase数据模型与程序中Java对象之间实现了映射机制,提高了开发效率,降低维护成本。
另外,本申请实施例还提供的Hbase数据库和Redis数据库之间的数据同步机制,可以基于MySQL中元数据的状态来调度MapReduce任务进行数据同步。Hbase数据库与Redis数据库实现了互补,既满足了海量数据的存储和批量处理需求,又满足了高性能的随机查询需求。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种信息处理方法,其特征在于,包括:
获取群体分组规则以及第一数据库中目标对象的数据,确定所述目标对象的数据与所述群体分组规则是否匹配,若匹配,则更新所述第一数据库,更新后的第一数据库中所述目标对象的数据中包括所述群体分组规则对应的群体分组标识;其中,所述目标对象的数据包括目标对象的标签和/或群体分组标识;
将所述第一数据库中目标对象的数据进行格式转换后同步到第二数据库中,进行格式转换后的数据格式为用于实时查询的数据格式;
响应于接收到的查询请求,根据所述查询请求查询所述第二数据库,并输出查询结果。
2.如权利要求1所述的方法,其特征在于,所述查询请求携带目标对象的标识和目标标签的标识,所述查询请求用于请求查询所述目标对象的目标标签的取值;
所述响应于接收到的查询请求,根据所述查询请求查询所述第二数据库,并输出查询结果,包括:
响应于所述查询请求,根据所述查询请求中的所述目标对象的标识和所述目标标签的标识查询所述第二数据库,得到所述目标对象的目标标签的取值,并输出所述目标对象的目标标签的取值。
3.如权利要求1所述的方法,其特征在于,所述查询请求携带目标对象的标识以及目标群体分组的标识,所述查询请求用于请求查询所述目标对象是否属于所述目标群体分组;
所述响应于接收到的查询请求,根据所述查询请求查询所述第二数据库,并输出查询结果,包括:
响应于所述查询请求,根据所述查询请求中的所述目标对象的标识查询所述第二数据库中所述目标对象的数据,得到所述目标对象的群体分组标识;
确定所述目标对象的群体分组标识与所述目标群体分组的标识是否匹配,若匹配,则输出所述目标对象属于所述目标群体分组的查询结果,否则输出所述目标对象不属于所述目标群体分组的查询结果。
4.如权利要求1所述的方法,其特征在于,所述查询请求携带目标对象的标识以及目标群体分组的标识,所述查询请求用于请求查询所述目标对象是否属于所述目标群体分组;
所述响应于接收到的查询请求,根据所述查询请求查询所述第二数据库,并输出查询结果,包括:
响应于所述查询请求,根据所述查询请求携带的目标群体分组的标识获取所述目标群体分组的规则,并根据所述查询请求中的所述目标对象的标识查询所述第二数据库中所述目标对象的数据,得到所述目标对象的标签的取值;
将所述目标对象的标签的取值,与所述目标群体分组的规则进行匹配,若匹配,则输出所述目标对象属于所述目标群体分组的查询结果,否则输出所述目标对象不属于所述目标群体分组的查询结果。
5.如权利要求1所述的方法,其特征在于,所述查询请求携带目标对象的标识以及目标群体分组的标识,所述查询请求用于请求查询所述目标对象是否属于所述目标群体分组;
所述响应于接收到的查询请求,根据所述查询请求查询所述第二数据库,并输出查询结果,包括:
响应于接收到的查询请求,根据预设策略选择查询方法,所述查询方法包括直接查询和标签查询;
若确定采用直接查询,则根据所述查询请求中的所述目标对象的标识查询所述第二数据库中所述目标对象的数据,得到所述目标对象的群体分组标识,确定所述目标对象的群体分组标识与所述目标群体分组的标识是否匹配,若匹配,则输出所述目标对象属于所述目标群体分组的查询结果,否则输出所述目标对象不属于所述目标群体分组的查询结果;
若确定采用标签查询,则根据所述查询请求携带的目标群体分组的标识获取所述目标群体分组的规则,根据所述查询请求中的所述目标对象的标识查询所述第二数据库中所述目标对象的数据,得到所述目标对象的标签的取值,将所述目标对象的标签的取值与所述目标群体分组的规则进行匹配,若匹配,输出所述目标对象属于所述目标群体分组的查询结果,否则输出所述目标对象不属于所述目标群体分组的查询结果。
6.如权利要求1所述的方法,其特征在于,所述将所述第一数据库中目标对象的数据进行格式转换后同步到第二数据库中,包括:
响应于所述第一数据库发生更新的事件,将更新后的所述第一数据库中目标对象的数据进行格式转换后同步到第二数据库中;或者
按照设定时间或设定周期对所述第一数据库进行检测,若检测到所述第一数据库发生更新,则将更新后的所述第一数据库中目标对象的数据进行格式转换后同步到第二数据库中。
7.如权利要求1所述的方法,其特征在于,还包括:
对所述数据库中目标对象的数据进行第二格式转换,根据第二格式转换后的数据生成倒排索引;其中,第二格式转换后的数据格式为用于生成倒排索引的索引生成器支持的数据格式,所述倒排索引以所述目标数据为主键并以对象标识列表为主键所对应的数据;
响应于接收到的第二查询请求,根据所述第二查询请求查询所述倒排索引,得到符合所述查询请求的对象的数量。
8.如权利要求1-7中任一项所述的方法,其特征在于,所述数据库为Hbase数据库,所述Hbase数据库用于存储用户信息,所述目标对象为目标用户。
9.一种信息处理系统,其特征在于,包括:
群体分组任务模块,用于获取群体分组规则以及第一数据库中目标对象的数据,确定所述目标对象的数据与所述群体分组规则是否匹配,若匹配,则更新所述第一数据库,更新后的第一数据库中所述目标对象的数据中包括所述群体分组规则对应的群体分组标识;其中,所述目标对象的数据包括目标对象的标签和/或群体分组标识;
数据同步模块,用于将所述第一数据库中目标对象的数据进行格式转换后同步到第二数据库中,进行格式转换后的数据格式为用于实时查询的数据格式;
搜索引擎,用于响应于接收到的查询请求,根据所述查询请求查询所述第二数据库,并输出查询结果。
10.如权利要求9所述的信息处理系统,其特征在于,所述查询请求携带目标对象的标识以及目标群体分组的标识,所述查询请求用于请求查询所述目标对象是否属于所述目标群体分组;
所述搜索引擎具体用于:
响应于接收到的查询请求,根据预设策略选择查询方法,所述查询方法包括直接查询和标签查询;
若确定采用直接查询,则根据所述查询请求中的所述目标对象的标识查询所述第二数据库中所述目标对象的数据,得到所述目标对象的群体分组标识,确定所述目标对象的群体分组标识与所述目标群体分组的标识是否匹配,若匹配,则输出所述目标对象属于所述目标群体分组的查询结果,否则输出所述目标对象不属于所述目标群体分组的查询结果;
若确定采用标签查询,则根据所述查询请求携带的目标群体分组的标识获取所述目标群体分组的规则,根据所述查询请求中的所述目标对象的标识查询所述第二数据库中所述目标对象的数据,得到所述目标对象的标签的取值,将所述目标对象的标签的取值与所述目标群体分组的规则进行匹配,若匹配,输出所述目标对象属于所述目标群体分组的查询结果,否则输出所述目标对象不属于所述目标群体分组的查询结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910910614.6A CN112559562A (zh) | 2019-09-25 | 2019-09-25 | 一种信息处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910910614.6A CN112559562A (zh) | 2019-09-25 | 2019-09-25 | 一种信息处理方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112559562A true CN112559562A (zh) | 2021-03-26 |
Family
ID=75029165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910910614.6A Pending CN112559562A (zh) | 2019-09-25 | 2019-09-25 | 一种信息处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112559562A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105354287A (zh) * | 2015-10-30 | 2016-02-24 | 北京奇艺世纪科技有限公司 | 数据库元数据的获取方法及装置 |
CN107391506A (zh) * | 2016-05-16 | 2017-11-24 | 华为软件技术有限公司 | 用于查询数据的方法和装置 |
WO2018164782A1 (en) * | 2017-03-10 | 2018-09-13 | Pure Storage, Inc. | Synchronously replicating datasets and other managed objects to cloud-based storage systems |
CN109446272A (zh) * | 2018-11-23 | 2019-03-08 | 聚好看科技股份有限公司 | 一种服务器的数据处理方法和装置 |
CN110019255A (zh) * | 2017-07-31 | 2019-07-16 | 北京嘀嘀无限科技发展有限公司 | 数据查询方法、装置、服务器及存储介质 |
CN110020333A (zh) * | 2017-07-27 | 2019-07-16 | 北京嘀嘀无限科技发展有限公司 | 数据分析方法及装置、电子设备、存储介质 |
CN110134689A (zh) * | 2019-05-14 | 2019-08-16 | 佰聆数据股份有限公司 | 基于主体对象标签变化的目标群体筛选方法、系统及计算机设备 |
CN110162543A (zh) * | 2019-05-29 | 2019-08-23 | 北京奇艺世纪科技有限公司 | 一种信息查询方法及装置 |
-
2019
- 2019-09-25 CN CN201910910614.6A patent/CN112559562A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105354287A (zh) * | 2015-10-30 | 2016-02-24 | 北京奇艺世纪科技有限公司 | 数据库元数据的获取方法及装置 |
CN107391506A (zh) * | 2016-05-16 | 2017-11-24 | 华为软件技术有限公司 | 用于查询数据的方法和装置 |
WO2018164782A1 (en) * | 2017-03-10 | 2018-09-13 | Pure Storage, Inc. | Synchronously replicating datasets and other managed objects to cloud-based storage systems |
CN110020333A (zh) * | 2017-07-27 | 2019-07-16 | 北京嘀嘀无限科技发展有限公司 | 数据分析方法及装置、电子设备、存储介质 |
CN110019255A (zh) * | 2017-07-31 | 2019-07-16 | 北京嘀嘀无限科技发展有限公司 | 数据查询方法、装置、服务器及存储介质 |
CN109446272A (zh) * | 2018-11-23 | 2019-03-08 | 聚好看科技股份有限公司 | 一种服务器的数据处理方法和装置 |
CN110134689A (zh) * | 2019-05-14 | 2019-08-16 | 佰聆数据股份有限公司 | 基于主体对象标签变化的目标群体筛选方法、系统及计算机设备 |
CN110162543A (zh) * | 2019-05-29 | 2019-08-23 | 北京奇艺世纪科技有限公司 | 一种信息查询方法及装置 |
Non-Patent Citations (1)
Title |
---|
李宁: "一种异构关系型数据库间的数据同步方案", 《福建电脑》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10769248B2 (en) | Satellite and central asset registry systems and methods and rights management systems | |
CN107547912B (zh) | 一种全媒资的资源处理方法、系统和存储介质 | |
US10452714B2 (en) | Central asset registry system and method | |
CN104067216B (zh) | 用于实施可扩展数据存储服务的系统和方法 | |
US20130191523A1 (en) | Real-time analytics for large data sets | |
CN108052618B (zh) | 数据管理方法及装置 | |
CN109669925B (zh) | 非结构化数据的管理方法及装置 | |
CN111258978B (zh) | 一种数据存储的方法 | |
CN110297869B (zh) | 一种ai数据仓库平台及操作方法 | |
CN113986873A (zh) | 一种海量物联网数据模型化的处理、存储与共享方法 | |
US20230024345A1 (en) | Data processing method and apparatus, device, and readable storage medium | |
CN110245134B (zh) | 一种应用于搜索服务的增量同步方法 | |
CN106776783A (zh) | 非结构化数据存储管理方法、服务器和系统 | |
CN108062384A (zh) | 数据检索的方法和装置 | |
CN111008521A (zh) | 生成宽表的方法、装置及计算机存储介质 | |
US20240160701A1 (en) | Systems and methods for federated searches of assets in disparate dam repositories | |
CN114416868B (zh) | 一种数据同步方法、装置、设备及存储介质 | |
EP3577587B1 (en) | Satellite and central asset registry systems and methods and rights management systems | |
CN110134511A (zh) | 一种OpenTSDB共享存储优化方法 | |
EP3991059A1 (en) | Systems and methods for federated searches of assets in disparate dam repositories | |
CN107291938A (zh) | 订单查询系统及方法 | |
US20200311151A1 (en) | Document structures for searching within and across messages | |
CN112559514A (zh) | 一种信息处理方法及系统 | |
CN116226133A (zh) | 一种基于分表的业务数据读取方法、装置及存储介质 | |
US9230011B1 (en) | Index-based querying of archived data sets |
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 |