CN113434513A - 用户标签数据存储方法、装置、系统、设备及存储介质 - Google Patents
用户标签数据存储方法、装置、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN113434513A CN113434513A CN202110794712.5A CN202110794712A CN113434513A CN 113434513 A CN113434513 A CN 113434513A CN 202110794712 A CN202110794712 A CN 202110794712A CN 113434513 A CN113434513 A CN 113434513A
- Authority
- CN
- China
- Prior art keywords
- user
- tag data
- processed
- bitmap
- user identifier
- 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 74
- 238000013500 data storage Methods 0.000 title claims description 109
- 238000012545 processing Methods 0.000 claims abstract description 137
- 238000013507 mapping Methods 0.000 claims abstract description 62
- 230000000694 effects Effects 0.000 claims description 26
- 238000004891 communication Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012216 screening Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 16
- 230000007246 mechanism Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 3
- 230000002688 persistence Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
Abstract
本发明实施例公开了一种用户标签数据存储方法、装置、系统、设备及存储介质,包括:获取待处理用户标签数据;其中,所述待处理用户标签数据包括待处理标签和用户标识;所述待处理标签用于标识所述用户标识是否属于标签范围;通过第一标签数据处理线程根据所述待处理用户标签数据生成至少一个用户标识队列;其中,一种所述用户标识队列对应一种所述待处理标签;通过第二标签数据处理线程根据各所述用户标识队列采用Bitmap存储方式存储用户标签数据;其中,所述用户标签数据包括标签、标签对应的Bitmap以及Bitmap下标映射关系。本发明实施例的技术方案能够降低用户标签数据存储资源,并提高用户标签数据存储效率。
Description
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种用户标签数据存储方法、装置、系统、设备及存储介质。
背景技术
随着现代互联网的发展以及智能设备的快速更新换代,各类互联网应用面对的并发处理压力越来越大,同时用户对请求响应时间的要求也愈加苛刻。针对大数据量的处理与存储方面已达一定瓶颈的背景下,通过数据结构与算法来缩减内存占用量和提升并发性能已经成为主要手段。
目前海量用户的白名单数据存储主要有两种方式,分别是基于关系型数据库与非关系型数据库的数据存储。关系型数据库,包括Oracle、Mysql等,以Mysql(InnoDB引擎)为例说明,Mysql采用二维表的方式存储数据,底层数据结构采用B+树,通过索引的方式提升数据查询的速度,其可存储多元数据,但其I/O(Input/Output,即输入/输出)效率相较于非关系型数据库有较大差距。非关系型数据库,包括Redis(REmote DIctionary Server,一种key-value数据库)等,以Redis为例说明,Redis采用键值对的方式存储数据,数据存储结构简单,具有分布式缓存、高并发快速访问、丰富的数据类型、数据持久化及备份机制、消息队列机制、高扩展性和可维护性等优点。
从存储空间和处理效率两个角度出发,现有的用户标签数据通常采用关系型数据库+普通数据类型进行存储。但使用关系型数据库+普通数据类型,会出现以下几个技术问题:(1)、当需要用户数据量巨大时(如千万级~亿级),普通数据类型占用空间巨大,且随着用户数据的增加,存储空间很快会成为瓶颈;(2)、关系型数据库的表将会变得十分巨大,即是有索引的帮助,在很高的性能压力下进行处理和查询的效率也较低;(3)、巨大数据量需要复杂的解析、处理、存储与查询方法。
发明内容
本发明实施例提供一种用户标签数据存储方法、装置、系统、设备及存储介质,能够降低用户标签数据存储资源,并提高用户标签数据存储效率。
第一方面,本发明实施例提供了一种用户标签数据存储方法,包括:
获取待处理用户标签数据;其中,所述待处理用户标签数据包括待处理标签和用户标识;所述待处理标签用于标识所述用户标识是否属于标签范围;
通过第一标签数据处理线程根据所述待处理用户标签数据生成至少一个用户标识队列;其中,一种所述用户标识队列对应一种所述待处理标签;
通过第二标签数据处理线程根据各所述用户标识队列采用Bitmap存储方式存储用户标签数据。
第二方面,本发明实施例还提供了一种用户标签数据存储装置,包括:
待处理用户标签数据获取模块,用于获取待处理用户标签数据;其中,所述待处理用户标签数据包括待处理标签和用户标识;所述待处理标签用于标识所述用户标识是否属于标签范围;
第一标签数据处理线程,用于根据所述待处理用户标签数据生成至少一个用户标识队列;其中,一种所述用户标识队列对应一种所述待处理标签;
第二标签数据处理线程,用于根据各所述用户标识队列采用Bitmap存储方式存储用户标签数据。
第三方面,本发明实施例还提供了一种用户标签数据存储系统,包括用户标签数据存储调度模块、用户标签数据存储执行模块以及目标数据库;其中:
所述用户标签数据存储调度模块与所述用户标签数据存储执行模块保持通信连接,用于按照设定周期生成触发指令,并将所述触发指令发送至所述用户标签数据存储执行模块;
所述用户标签数据存储执行模块与所述目标数据库保持通信连接,用于在接收到所述触发指令后,执行第一方面所述的用户标签数据存储方法,以生成用户标签数据;
所述目标数据库用于存储和查询所述用户标签数据。
第四方面,本发明实施例还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供的用户标签数据存储方法。
第五方面,本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所提供的用户标签数据存储方法。
本发明实施例通过在获取包括待处理标签和用户标识的待处理用户标签数据之后,通过第一标签数据处理线程根据待处理用户标签数据生成至少一个与待处理标签对应的用户标识队列,并通过第二标签数据处理线程根据各用户标识队列采用Bitmap存储方式存储标签、标签对应的Bitmap以及Bitmap下标映射关系等用户标签数据,并提出一种用户标签数据存储系统提供上述用户标签数据的存储和查询功能,解决现有用户标签数据存储方法存在的存储资源占用较高以及存储效率低等问题,能够降低用户标签数据存储资源,并提高用户标签数据存储效率。
附图说明
图1是本发明实施例一提供的一种用户标签数据存储方法的流程图;
图2是本发明实施例一提供的一种Bitmap的结构示意图;
图3是本发明实施例一提供的一种客户号标识存储方式的效果示意图;
图4是本发明实施例一提供的一种客户号-Bitmap下标影响关系的效果示意图;
图5是本发明实施例一提供的一种用户标识队列生成和读取的效果示意图;
图6是本发明实施例二提供的一种用户标签数据存储方法的流程图;
图7是本发明实施例二提供的一种用户标签数据存储方法的流程示意图;
图8是本发明实施例三提供的一种用户标签数据存储系统的示意图;
图9是本发明实施例三提供的一种用户标签数据存储系统的结构示意图;
图10是本发明实施例四提供的一种用户标签数据存储装置的示意图;
图11为本发明实施例五提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。
另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
本发明实施例的说明书和权利要求书及附图中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有设定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
实施例一
图1是本发明实施例一提供的一种用户标签数据存储方法的流程图,本实施例可适用于高效、低成本地存储用户标签数据的情况,该方法可以由用户标签数据存储装置来执行,该装置可以由软件和/或硬件的方式来实现,并一般可集成在计算机设备中,该计算机设备可以是客户端设备也可以是服务器设备等。相应的,如图1所示,该方法包括如下操作:
S110、获取待处理用户标签数据;其中,所述待处理用户标签数据包括待处理标签和用户标识;所述待处理标签用于标识所述用户标识是否属于标签范围。
其中,待处理用户标签数据可以是包括待处理标签和用户标识的原始源数据。待处理标签也即需要对用户标识对应的用户进行标识的标签类型,示例性的,待处理标签的类型可以根据业务要求或具体应用场景活动确定。例如,待处理标签的类型可以是活动1或业务B等。用户标识可以用于唯一标识用户。可选的,用户标识例如可以是用户的手机号、客户号或其他类型的用户标识等,只要能够唯一标识客户即可,本发明实施例并不对用户标识的类型和内容进行限定。
在本发明实施例中,待处理标签与现有的标签并不同。现有的标签通常用于标识用户的某一属性。示例性的,针对用户1,现有的标签的取值例如可以是:男、32、已婚、本科毕业等。然而,本发明实施例中的待处理标签仅用于标识用户标识是否属于标签范围。示例性的,针对用户1和活动A,本发明实施例中的待处理标签的取值可以为0和1。其中,0表示用户1参加了活动A或具有参加活动A的权限,或表示用户1具有标记该待处理标签的权限。1表示用户1没有参加活动A或不具有参加活动A的权限,或表示用户1不具有标记该待处理标签的权限。
可以理解的是,待处理用户标签数据可以包括多种不同的标签类型,以及每个标签类型下所属用户的标签取值。
在本发明的一个可选实施例中,所述待处理用户标签数据可以为金融活动用户标签数据。相应的,用户表示可以为客户号。
示例性的,假设用户的总数量为n,分别为客户号1、客户号2……客户号n。则待处理用户标签数据包括的数据可以为以下内容:
待处理标签1(标签的类型为金融活动1):客户号1:0(该客户号下待处理标签1的取值);客户号2:1……客户号n:1;
待处理标签2(标签的类型为金融活动2):客户号1:1;客户号2:0……客户号n:1;
……
待处理标签m(标签的类型为金融活动m):客户号1:0;客户号2:0……客户号n:1。
也即,针对每个待处理标签类型,可以对所有的用户对应的用户标识设置相应的标签取值。标签取值为0表示该用户标识对应的用户不属于该待处理标签类型的标签范围,如没有参加该待处理标签类型的活动、不具有参加该待处理标签类型的活动的权限,或用户具有标记该待处理标签的权限等。标签取值为1表示该用户标识对应的用户属于该待处理标签类型的标签范围,如参加了该待处理标签类型的活动、具有参加该待处理标签类型的活动的权限,或用户不具有标记该待处理标签的权限等。
在本发明实施例中,用户标签数据存储系统可以获取待处理用户标签数据,以对待处理用户标签数据实现海量用户打标过程。
S120、通过第一标签数据处理线程根据所述待处理用户标签数据生成至少一个用户标识队列;其中,一种所述用户标识队列对应一种所述待处理标签。
其中,第一标签数据处理线程可以是对待处理用户标签数据进行处理的线程。用户标识队列可以针对不同待处理标签类型筛选出的,需要利用待处理标签对用户进行打标处理的用户标识构成的队列。所谓打标处理也即需要利用待处理标签对用户标识进行标识,如将用户标识下该待处理标签的取值设置为1,表明该用户标识对应的用户属于该待处理标签类型的标签范围。
在本发明实施例中,在用户标签数据存储系统获取到待处理用户标签数据之后,可以通过系统中的第一标签数据处理线程对待处理用户标签数据进行处理,如以某一具体待处理标签为基准,筛选出属于该待处理标签类型的标签范围的用户标识,并构建筛选出的用户标识构建该待处理标签对应的用户标识队列。
示例性的,假设用户标识为客户号,则第一标签数据处理线程可以从待处理用户标签数据中筛选出当前需要处理的标签和需要利用该标签打标的客户号,将所有需要利用该标签打标的客户号放入一个“客户号队列”中。每个待处理标签均可以筛选出一个对应的“客户号队列”。
可选的,第一标签数据处理线程可以采用流式的方式读取待处理用户标签数据。因流式读取文件的操作速度很快,在100万条数据大概需要1~2s即可读取完成。因此,第一标签数据处理线程的数量可以是一个。也即,可以使用单线程对待处理用户标签数据进行读取,在保证待处理用户标签数据读取速度的同时,不会影响占用过多的系统资源。
需要说明的是,用户标识队列中各个用户标识对应的待处理标签的取值可以是全部为1;也可以是部分为0,部分为1,本发明实施例对此并不进行限制。
S130、通过第二标签数据处理线程根据各所述用户标识队列采用Bitmap存储方式存储用户标签数据。
其中,所述用户标签数据包括标签、标签对应的Bitmap以及Bitmap下标映射关系。Bitmap下标映射关系也即用户标识与Bitmap下标之间的映射关系。第二标签数据处理线程可以是对各用户标识队列进行处理的线程。
图2是本发明实施例一提供的一种Bitmap的结构示意图。在一个具体的例子中,如图2所示,Bitmap可以用每一位来存放某种状态,通常用来判断某个数据是否存在,如下标6和9的位置值是1,代表数字6和9存在,剩余下标为0的代表对应数字不存在。利用Bitmap这一特点,可以扩展为每一位代表一个用户的状态。用户状态仅有两种:用白名单的场景来表示,即为某用户在或不在此白名单中。但需要建立Bitmap中每个下标与对应用户的映射关系。图3是本发明实施例一提供的一种客户号标识存储方式的效果示意图,在一个具体的例子中,如图3所示,0表示客户号不在白名单中,1则表示客户号在白名单中。
为解决上述问题,可以在用户标签数据存储系统的目标数据库如redis中维护每一位用户与Bitmap下标的映射关系。图4是本发明实施例一提供的一种客户号-Bitmap下标影响关系的效果示意图。在一个具体的例子中,如图4所示,以处理用户标签数据为金融活动用户标签数据,用户标识为客户号为例具体说明,可以在用户标签数据存储系统的redis中通过键值对的方式存储并维护客户号与Bitmap下标之间的映射关系。可以理解的是,Bitmap下标映射关系在存储后会长期存在,并且会随着给不同用户打标的过程中逐渐趋于完善,即当所有用户均被打过标签后,目标数据库中将维护有完整的一套用户与Bitmap下标的映射关系,后续无须重复维护。
使用Bitmap存储用户标签数据最大的优点是节省存储空间,假设有2.5亿个用户需要进行打标,如采用现有存储方式使用普通整型(每个整型数字占用4字节)来进行存储,所占存储空间大约是953MB(2.5亿*4字节/1024/1024)。但使用Bitmap仅需占用约29.8MB(2.5亿bit/8/1024/1024),可以看出,使用Bitmap可以节省约32倍的存储空间。
相应的,在本发明实施例中,当通过第一标签数据处理线程根据待处理用户标签数据生成至少一个用户标识队列之后,用户标签数据存储系统可以进一步通过第二标签数据处理线程对各用户标识队列进行处理,以生成每个用户标识队列对应的位图,并存储每个用户标识队列对应的位图和标签类型,以及Bitmap下标映射关系,实现利用各待处理标签对对应的用户标识队列中各个用户的打标处理。可选的,打标处理完成后生成的用户标签数据可以存在系统的目标数据库,如Redis数据库等。
需要说明的是,第二标签数据处理线程生成并存储用户标签数据的过程需要一定程度的网络消耗。因此,为了提高第二标签数据处理线程的处理效率,可以采用多个第二标签数据处理线程并行对用户标识队列进行处理,以抵消网络传输造成的耗时。
图5是本发明实施例一提供的一种用户标识队列生成和读取的效果示意图。如图5所示,假设生产者为第一标签数据处理线程,消费者为第二标签数据处理线程,则生产者可以先于消费者依次生成每个客户号队列,各个消费者则可以并行对各客户号队列进行处理,生成每个客户号队列对应的位图以及标签并进行存储。
示例性的,假设客户号队列1包括的客户号数据为客户号1、客户号2和客户号3,各个客户号对应的待处理标签1的取值为1、0和1。则客户号队列1对应生成位图可以为:1-0-1,该位图对应的标签为:标签1。如果位图1-0-1对应的Bitmap下标分别为0、1和2,则Bitmap下标映射关系可以为:客户号1-0;客户号2-1;客户号3-2。
由此可见,本发明实施例仅采用用户标签数据存储系统存储维护用户标识和Bitmap下标之间的映射关系,而不是直接存储维护用户标识和标签之间的映射关系。这样设置的好处是:用户标识和Bitmap下标之间的映射关系仅需维护一次,即假设用户标签数据存储系统共有2.5亿用户需进行打标,则最多需维护2.5亿个整型键值对,大约占用存储空间为1.86GB(2*953MB)。另外,当极端情况下需要对2.5亿用户进行多次打标操作时,如果直接使用用户标识和标签之间的映射关系进行打标,每次打标需占用的增量空间为1.86GB。但如果维护用户标识和Bitmap下标之间的映射关系,打标操作使用Bitmap,则每次打标仅需29.8MB的增量空间。发明人在实际的试验过程中,发现先查询一次用户标识-Bitmap下标映射关系,再进行Bitmap指定位的状态查询并不会对用户标签数据存储系统的性能造成明显影响。因此,综合考虑查询效率与占用空间,维护Bitmap下标映射关系是必要的。
本发明实施例通过在获取包括待处理标签和用户标识的待处理用户标签数据之后,通过第一标签数据处理线程根据待处理用户标签数据生成至少一个与待处理标签对应的用户标识队列,并通过第二标签数据处理线程根据各用户标识队列采用Bitmap存储方式存储标签、标签对应的Bitmap以及Bitmap下标映射关系等用户标签数据,解决现有用户标签数据存储方法存在的存储资源占用较高以及存储效率低等问题,能够降低用户标签数据存储资源,并提高用户标签数据存储效率。
实施例二
图6是本发明实施例二提供的一种用户标签数据存储方法的流程图,本实施例以上述实施例为基础进行具体化,在本实施例中,给出了通过第一标签数据处理线程根据待处理用户标签数据生成至少一个用户标识队列以及通过第二标签数据处理线程根据各用户标识队列采用Bitmap存储方式存储用户标签数据的具体实现方式。相应的,如图6所示,本实施例的方法可以包括:
S210、获取待处理用户标签数据。
S220、通过第一标签数据处理线程根据所述待处理用户标签数据生成至少一个用户标识队列。
在本发明的一个可选实施例中,所述通过第一标签数据处理线程根据所述待处理用户标签数据生成至少一个用户标识队列,可以包括:通过所述第一标签数据处理线程确定当前待处理标签;通过所述第一标签数据处理线程根据所述当前待处理标签从所述用户标识中筛选目标用户标识;通过所述第一标签数据处理线程根据所述目标用户标识生成所述用户标识队列;返回执行通过所述第一标签数据处理线程确定当前待处理标签的操作,直至全部待处理标签处理完毕。
其中,当前待处理标签可以是当前正在处理的标签。目标用户标识可以是需要利用当前待处理标签进行打标处理的用户标识。
具体的,第一标签数据处理线程可以以标签为单位按照顺序依次处理各个待处理标签,并生成每个待处理标签对应的用户标识队列。例如,第一标签数据处理线程从将第一个待处理标签确定为当前待处理标签,并根据当前待处理标签从用户标识中筛选目标用户标识。
需要说明的是,可以采用两种方式确定目标用户标识。第一种方式可以为:将所有属于当前待处理标签的标签范围的用户标识筛选出来确定为目标用户标识。此时,当前待处理标签对应的用户标识队列的长度,与属于当前待处理标签的标签范围的用户数量相同。也即,当前待处理标签对应的用户标识队列的长度与目标用户标识的数量相同。例如,假设共有100个用户具有标记当前待处理标签的权限,则当前待处理标签对应的用户标识队列的长度为100,该用户标识队列中每个用户标识对应的位图下标的取值可以设置为1,表明该用户标识队列中每个用户标识对应的用户都具有标记当前待处理标签的权限。
第二种确定目标用户标识的过程可以为:依次遍历用户标签数据存储系统存储的用户标识,直至查询到最后一个具有标记当前待处理标签的权限的用户标识,并将其确定为最后一个目标用户标识。进一步的,将第一个用户标识和最后一个目标用户标识之间的所有用户标识(包括第一个用户标识和最后一个目标用户标识)确定为目标用户标识。由于用户标识是顺序存储的,此时,当前待处理标签对应的用户标识队列的长度,与属于当前待处理标签的标签范围的最大目标用户标识的序号相同。也即,当前待处理标签对应的用户标识队列的长度要大于目标用户标识的数量。例如,假设序号1-100的用户中有50个用户具有标记当前待处理标签的权限,且第100个用户是最后一个属于当前待处理标签的标签范围的用户,则当前待处理标签对应的用户标识队列的长度为100,该用户标识队列中其中50个目标用户标识对应的位图下标的取值可以设置为1,表明该50个目标用户标识对应的用户都具有标记当前待处理标签的权限;其余的非目标用户标识对应的位图下标的取值可以设置为0,表明该50个非目标用户标识对应的用户都不具有标记当前待处理标签的权限。可选的,用户标识的序号可以与位图下标序号相对应。如果位图第一个序号从1开始计算,则当前待处理标签对应的用户标识队列的长度,与属于当前待处理标签的标签范围的最大目标用户标识的序号相同。如果位图第一个序号从0开始计算,则当前待处理标签对应的用户标识队列的长度,与属于当前待处理标签的标签范围的最大目标用户标识的序号加1的值相同。
相应的,在当前待处理标签生成对应的用户标识队列之后,第一标签数据处理线程可以将第二个待处理标签更新为当前待处理标签,并重复执行上述生成当前待处理标签对应的用户标识队列的操作,直至确定全部待处理标签均处理完毕。
S230、通过所述第二标签数据处理线程生成各所述用户标识队列中各所述用户标识的Bitmap下标值。
其中,所述第二标签数据处理线程的数量为多个,各所述第二标签数据处理线程并行存储所述用户标签数据。Bitmap下标值也即Bitmap下标的取值,可以为0或1。
在本发明的一个可选实施例中,在所述获取待处理用户标签数据之前,还可以包括:获取处理器配置信息;根据所述处理器配置信息确定所述第二标签数据处理线程的数量。
其中,处理器配置信息可以是CPU(Central Processing Unit/Processor,中央处理器)的配置信息。
需要注意的是,由于第二标签数据处理线程程序为CPU密集型,故第二标签数据处理线程的线程数量不可以无限多,过多的线程数将会导致CPU冲高和数据库访问超时等问题。因此,在获取待处理用户标签数据之前,用户标签数据存储系统可以获取系统所在计算机设备的处理器配置信息,并根据获取的处理器配置信息确定第二标签数据处理线程的数量。可选的,一般指定第二标签数据处理线程的数量为CPU数量+1。
可选的,可以通过多个第二标签数据处理线程并行处理并存储用户标签数据,以提高用户标签数据的处理和存储效率。具体的,各第二标签数据处理线程可以生成各用户标识队列中各用户标识的Bitmap下标值。可以理解的是,当用户标识队列匹配的Bitmap的长度与用户标识队列中用户标识的Bitmap下标的最大值相匹配时,也即,当用户标识队列匹配的Bitmap的长度与用户标识队列中最后一个目标用户标识的Bitmap下标序号或Bitmap下标序号加1的值相同时,各用户标识队列中各用户标识的Bitmap下标值可以为全部为1的情况,也可以为部分为0部分为1的情况。当用户标识队列匹配的Bitmap的长度,与属于当前待处理标签的标签范围的用户数量相同时,该用户标识队列中各用户标识的Bitmap下标值可以为全部为1。
在本发明的一个可选实施例中,所述通过所述第二标签数据处理线程生成各所述用户标识队列中各所述用户标识的Bitmap下标值,可以包括:通过所述第二标签数据处理线程依次获取所述用户标识队列的队首用户标识;通过所述第二标签数据处理线程查询所述队首用户标识在目标数据库中的Bitmap下标映射关系;通过所述第二标签数据处理线程根据所述队首用户标识在目标数据库中的Bitmap下标映射关系生成所述队首用户标识的Bitmap下标值;返回执行通过所述第二标签数据处理线程依次获取所述用户标识队列的队首用户标识的操作,直至确定所述用户标识队列中各所述用户标识的Bitmap下标值全部处理完成。
其中,队首用户标识也即用户标识队列的第一个用户标识。目标数据库可以是用户标签数据存储系统中用于存储用户标签数据的数据库,如Redis数据库等,本发明实施例并不对目标数据库的数据库类型进行限定。可以理解的是,由于非关系型数据库的数据存储结构简单,具有分布式缓存、高并发快速访问、丰富的数据类型、数据持久化及备份机制、消息队列机制、高扩展性和可维护性等优点,因此,目标数据库优选可以采用非关系型数据库。当需要打标的用户数据量很大时,结合Bitmap和非关系型数据库等可大幅缩减存储空间的数据结构,可在时间和空间上同时达到较优的效果。
具体的,第二标签数据处理线程在生成各用户标识队列中各用户标识的Bitmap下标值时,可以依次获取用户标识队列的队首用户标识并进行处理。当队首用户标识从用户标识队列中取出后,该队首用户标识的下一个用户标识更新为新的队首用户标识。相应的,第二标签数据处理线程可以查询队首用户标识在目标数据库中的Bitmap下标映射关系,以根据队首用户标识在目标数据库中的Bitmap下标映射关系生成队首用户标识的Bitmap下标值。当当前的队首用户标识的Bitmap下标值处理完成后,第二标签数据处理线程可以返回重复执行依次获取用户标识队列的队首用户标识的操作,直至确定用户标识队列中各用户标识的Bitmap下标值全部处理完成。
在本发明的一个可选实施例中,所述根据所述队首用户标识在目标数据库中的Bitmap下标映射关系生成所述队首用户标识的Bitmap下标值,可以包括:在确定所述队首用户标识存在所述Bitmap下标映射关系且所述队首用户标识为目标用户标识的情况下,通过所述第二标签数据处理线程将所述队首用户标识对应的Bitmap下标值设置为1;在确定所述队首用户标识不存在所述Bitmap下标映射关系且所述队首用户标识为目标用户标识的情况下,通过所述第二标签数据处理线程建立所述队首用户标识与目标Bitmap下标之间的Bitmap下标映射关系,并将所述队首用户标识对应的目标Bitmap下标值设置为1。
其中,目标Bitmap下标可以是目标数据库中当前维护的最大Bitmap下标值的下一个累加的Bitmap下标序号。
具体的,如果第二标签数据处理线程确定队首用户标识存在Bitmap下标映射关系,表明目标数据库已经维护了队首用户标识与Bitmap下标之间的映射关系。此时,如果第二标签数据处理线程确定队首用户标识为目标用户标识,表明队首用户标识属于标签范围,则可以将队首用户标识对应的Bitmap下标值设置为1,以实现对队首用户标识的打标处理。如果第二标签数据处理线程确定队首用户标识为非目标用户标识,表明队首用户标识不属于标签范围,则可以将队首用户标识对应的Bitmap下标值设置为0,或保持Bitmap下标值为0不变。
相应的,如果第二标签数据处理线程确定队首用户标识不存在Bitmap下标映射关系,表明目标数据库没有维护队首用户标识与Bitmap下标之间的映射关系。此时,第二标签数据处理线程可以首先在目标数据库建立队首用户标识与目标Bitmap下标之间的Bitmap下标映射关系。可选的,初始状态下,目标Bitmap下标值可以默认设置为0。进一步的,如果第二标签数据处理线程确定队首用户标识为目标用户标识,表明队首用户标识属于标签范围,则可以将队首用户标识对应的Bitmap下标值设置为1,以实现对队首用户标识的打标处理。如果第二标签数据处理线程确定队首用户标识为非目标用户标识,表明队首用户标识不属于标签范围,则可以将队首用户标识对应的Bitmap下标值设置为0,或保持Bitmap下标值为0不变。
S240、通过所述第二标签数据处理线程根据各所述用户标识队列中各所述用户标识的Bitmap下标值生成各所述用户标识队列匹配的Bitmap。
相应的,第二标签数据处理线程在生成各用户标识队列中各用户标识的Bitmap下标值之后,即可根据各用户标识队列中各用户标识的Bitmap下标值生成各用户标识队列匹配的Bitmap。
示例性的,假设用户标识队列为:用户0、用户1、用户2和用户3;各用户标识对应的Bitmap下标值分别为0、1、1、1。则该用户标识队列匹配的Bitmap具体为0(下标序号为0)-1(下标序号为1)-1(下标序号为2)-1(下标序号为3)。
S250、通过所述第二标签数据处理线程存储各所述用户标识队列匹配的待处理标签、Bitmap和Bitmap下标映射关系。
图7是本发明实施例二提供的一种用户标签数据存储方法的流程示意图。在一个具体的例子中,如图7所示,以生产者作为第一标签数据处理线程,以消费者作为第二标签数据处理线程,以Redis作为目标数据库,并以金融活动用户标签数据作为待处理用户标签数据,以客户号作为用户标识为例具体说明用户标签数据存储的完整流程。
首先,生产者线程从待处理用户标签数据的源文件中读取标签与客户号,将每一个标签对应的客户号存入客户号队列中。接下来,每一个消费者线程从客户号队列的队首获取一个客户号,进行用户打标数据存储过程。具体的,消费者线程在Redis中查询当前获取的客户号对应的用户是否存在Bitmap下标映射关系。如不存在,则在现有Bitmap下标映射关系的记录的最大Bitmap下标基础上加一,作为当前用户的Bitmap下标存入。如存在,则获取当前用户的Bitmap下标。需要注意的是,随着Redis中用户与其Bitmap下标映射关系的不断完善,维护新的用户-Bitmap下标关系的操作将会减少。因此,重新建立Bitmap下标映射关系的处理时间将会得到缩减。相应的,如果当前用户属于标签的标签范围,则在当前用户的Bitmap下标值处置1,即给当前用户打标;否则,保持前用户的Bitmap下标值为0不变。针对当前需打标的所有用户,循环执行上述操作,直到所有需打标的用户的Bitmap下标值均置1完毕,最终将此标签的名称作为Key,并将此标签生成的Bitmap作为Value存入Redis。生成Bitmap的过程中,Redis同时记录了Bitmap下标映射关系。
经试验,在CPU为4核、内存为8G的容器中,生产者线程数设置为1,消费者线程设置为8,对3500万条初始用户数据进行打标,即所有用户-Bitmap下标映射关系均需进行新建,耗时仅需20分钟左右。对3500万已有用户-下标映射关系的用户进行打标,耗时仅需8分钟左右。由此可见,本发明实施例所提供的用户标签数据存储方法能够在节省存储空间的同时,大幅缩减海量数据的处理时间,提升高并发场景下用户标签数据的处理和存储速度和效率。
实施例三
图8是本发明实施例三提供的一种用户标签数据存储系统的示意图,如图8所示,该用户标签数据存储系统的结构可以包括用户标签数据存储调度模块310、用户标签数据存储执行模块320以及目标数据库330;其中:用户标签数据存储调度模块310与用户标签数据存储执行模块320保持通信连接,用于按照设定周期生成触发指令,并将触发指令发送至用户标签数据存储执行模块320;用户标签数据存储执行模块320与目标数据库330保持通信连接,用于在接收到触发指令后,执行本发明任一实施例所提供的用户标签数据存储方法,以生成用户标签数据;目标数据库330用于存储和查询用户标签数据。
其中,用户标签数据存储调度模块310可以简称为打标程序调度器,用于触发用户标签数据存储执行模块320开始执行用户标签数据存储流程。设定周期可以根据实际需求设定,如5分钟、10分钟或30分钟等,本发明实施例并不对设定周期的具体取值进行限定。用户标签数据存储执行模块320可以简称为打标程序执行器,用于在接收到用户标签数据存储调度模块310发送的触发指令后,开始执行用户标签数据存储流程。目标数据库330可以用于存储和查询用户标签数据。可选的,目标数据库330可以采用Redis数据库实现,以利用Redis具有的分布式缓存、高并发快速访问、丰富的数据类型、数据持久化及备份机制、消息队列机制、高扩展性和可维护性等优点,实现用户标签数据的存储与查询功能,从而大幅提升高并发场景下海量数据的存储和查询速度。
本发明实施例中网域冲突控制系统的工作原理是:用户标签数据存储调度模块按照设定周期生成触发指令,并将生成的触发指令发送至用户标签数据存储执行模块。用户标签数据存储执行模块接收到触发指令后,开始执行用户标签数据存储方法:获取待处理用户标签数据,通过第一标签数据处理线程根据所述待处理用户标签数据生成至少一个用户标识队列,通过第二标签数据处理线程根据各所述用户标识队列采用Bitmap存储方式存储用户标签数据。相应的,用户标签数据存储执行模块生成的用户标签数据可以存储在目标数据库中。
图9是本发明实施例三提供的一种用户标签数据存储系统的结构示意图,在一个具体的例子中,如图9所示,当存在给用户打标的需求时,可以生成标签与用户的映射文件,将文件存储于固定的位置。用户标签数据存储系统中的打标程序调度器每隔一定时间间隔(比如10分钟)触发一次打标程序执行器,打标程序执行器具体进行用户数据的打标:读取存储源程序的目录是否存在信号文件(即待处理用户标签数据),如不存在则终止当前程序;如存在信号文件,则开始此次打标程序。打标程序具体可以是:获取待处理用户标签数据,通过第一标签数据处理线程根据所述待处理用户标签数据生成至少一个用户标识队列,通过第二标签数据处理线程根据各所述用户标识队列采用Bitmap存储方式在目标数据库中如Redis存储用户标签数据,包括标签、标签对应的Bitmap以及Bitmap下标映射关系。
需要注意的是,目标数据库还可以包括Mysql。如果对标签有存储标签详细信息的需求,则可以启用Mysql存储标签的详细信息,如标签的ID、中文名称、相关备注描述、标签的有效期等等。目标数据库如Redis和Mysql还可以对外提供打标查询服务,来查询某用户是否被打上指定的标签。
本发明实施例所提供的用户标签数据存储系统采用redis异地双活方案来保证打标系统的高可用性,采用redis的RDB(Redis DataBase)备份机制来保证打标数据的可靠性,整个系统可以用于对海量的用户打标数据进行解析、处理、存储及查询,以提升高并发场景下用户打标数据处理、存储、查询的响应速度。
本实施例的技术方案,通过户标签数据存储调度模块按照设定周期生成触发指令,并将触发指令发送至用户标签数据存储执行模块,以通过用户标签数据存储执行模块获取包括待处理标签和用户标识的待处理用户标签数据之后,通过第一标签数据处理线程根据待处理用户标签数据生成至少一个与待处理标签对应的用户标识队列,并通过第二标签数据处理线程根据各用户标识队列采用Bitmap存储方式在目标数据库存储用户标签数据,同时,目标数据库还可以提供用户标签数据的查询功能,解决现有用户标签数据存储方法存在的存储资源占用较高以及存储效率低等问题,能够降低用户标签数据存储资源,并提高用户标签数据存储效率。
需要说明的是,以上各实施例中各技术特征之间的任意排列组合也属于本发明的保护范围。
实施例四
图10是本发明实施例四提供的一种用户标签数据存储装置的示意图,如图10所示,所述装置包括:待处理用户标签数据获取模块410、第一标签数据处理线程420以及第二标签数据处理线程430,其中:
待处理用户标签数据获取模块410,用于获取待处理用户标签数据;其中,所述待处理用户标签数据包括待处理标签和用户标识;所述待处理标签用于标识所述用户标识是否属于标签范围;
第一标签数据处理线程420,用于根据所述待处理用户标签数据生成至少一个用户标识队列;其中,一种所述用户标识队列对应一种所述待处理标签;
第二标签数据处理线程430,用于根据各所述用户标识队列采用Bitmap存储方式存储用户标签数据;
其中,所述用户标签数据包括标签、标签对应的Bitmap以及Bitmap下标映射关系。
本发明实施例通过在获取包括待处理标签和用户标识的待处理用户标签数据之后,通过第一标签数据处理线程根据待处理用户标签数据生成至少一个与待处理标签对应的用户标识队列,并通过第二标签数据处理线程根据各用户标识队列采用Bitmap存储方式存储标签、标签对应的Bitmap以及Bitmap下标映射关系等用户标签数据,解决现有用户标签数据存储方法存在的存储资源占用较高以及存储效率低等问题,能够降低用户标签数据存储资源,并提高用户标签数据存储效率。
可选的,第二标签数据处理线程430具体用于:生成各所述用户标识队列中各所述用户标识的Bitmap下标值;根据各所述用户标识队列中各所述用户标识的Bitmap下标值生成各所述用户标识队列匹配的Bitmap;存储各所述用户标识队列匹配的待处理标签、Bitmap和Bitmap下标映射关系;其中,所述用户标识队列匹配的Bitmap的长度与所述用户标识队列中末位用户标识的Bitmap下标序号相匹配。
可选的,第二标签数据处理线程430具体用于:依次获取所述用户标识队列的队首用户标识;查询所述队首用户标识在目标数据库中的Bitmap下标映射关系;根据所述队首用户标识在目标数据库中的Bitmap下标映射关系生成所述队首用户标识的Bitmap下标值;返回执行依次获取所述用户标识队列的队首用户标识的操作,直至确定所述用户标识队列中各所述用户标识的Bitmap下标值全部处理完成。
可选的,第二标签数据处理线程430具体用于:在确定所述队首用户标识存在所述Bitmap下标映射关系且所述队首用户标识为目标用户标识的情况下,将所述队首用户标识对应的Bitmap下标值设置为1;在确定所述队首用户标识不存在所述Bitmap下标映射关系且所述队首用户标识为所述目标用户标识的情况下,建立所述队首用户标识与目标Bitmap下标之间的Bitmap下标映射关系,并将所述队首用户标识对应的目标Bitmap下标值设置为1。
可选的,第一标签数据处理线程420具体用于:确定当前待处理标签;根据所述当前待处理标签从所述用户标识中筛选目标用户标识;根据所述目标用户标识生成所述用户标识队列;返回执行确定当前待处理标签的操作,直至全部待处理标签处理完毕。
可选的,用户标签数据存储装置还可以包括:处理器配置信息获取模块,用于获取处理器配置信息;线程数量确定模块,用于根据所述处理器配置信息确定所述第二标签数据处理线程的数量。
可选的,所述待处理用户标签数据为金融活动用户标签数据,所述用户标识为客户号。
上述用户标签数据存储装置可执行本发明任意实施例所提供的用户标签数据存储方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的用户标签数据存储方法。
由于上述所介绍的用户标签数据存储装置为可以执行本发明实施例中的用户标签数据存储方法的装置,故而基于本发明实施例中所介绍的用户标签数据存储方法,本领域所属技术人员能够了解本实施例的用户标签数据存储装置的具体实施方式以及其各种变化形式,所以在此对于该用户标签数据存储装置如何实现本发明实施例中的用户标签数据存储方法不再详细介绍。只要本领域所属技术人员实施本发明实施例中用户标签数据存储方法所采用的装置,都属于本申请所欲保护的范围。
实施例五
图11为本发明实施例五提供的一种计算机设备的结构示意图,该计算机设备可以被测设备。如图11所示,该电子包括处理器50、存储器51、输入装置52和输出装置53;计算机设备中处理器50的数量可以是一个或多个,图11中以一个处理器50为例;计算机设备中的处理器50、存储器51、输入装置52和输出装置53可以通过总线或其他方式连接,图11中以通过总线连接为例。
存储器51作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的用户标签数据存储方法对应的程序指令/模块(例如,用户标签数据存储装置中的待处理用户标签数据获取模块410、第一标签数据处理线程420以及第二标签数据处理线程430)。处理器50通过运行存储在存储器51中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的用户标签数据存储方法。
存储器51可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器51可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器51可进一步包括相对于处理器50远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置52可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置53可包括显示屏等显示设备。
实施例六
本发明实施例六还提供一种存储计算机程序的计算机存储介质,所述计算机程序在由计算机处理器执行时用于执行本发明上述实施例任一所述的用户标签数据存储方法:获取待处理用户标签数据;其中,所述待处理用户标签数据包括待处理标签和用户标识;所述待处理标签用于标识所述用户标识是否属于标签范围;通过第一标签数据处理线程根据所述待处理用户标签数据生成至少一个用户标识队列;其中,一种所述用户标识队列对应一种所述待处理标签;通过第二标签数据处理线程根据各所述用户标识队列采用位图Bitmap存储方式存储用户标签数据;其中,所述用户标签数据包括标签、标签对应的Bitmap以及Bitmap下标映射关系。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ReadOnly Memory,ROM)、可擦式可编程只读存储器((Erasable Programmable Read OnlyMemory,EPROM)或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、射频(Radio Frequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (11)
1.一种用户标签数据存储方法,其特征在于,包括:
获取待处理用户标签数据;其中,所述待处理用户标签数据包括待处理标签和用户标识;所述待处理标签用于标识所述用户标识是否属于标签范围;
通过第一标签数据处理线程根据所述待处理用户标签数据生成至少一个用户标识队列;其中,一种所述用户标识队列对应一种所述待处理标签;
通过第二标签数据处理线程根据各所述用户标识队列采用位图Bitmap存储方式存储用户标签数据;
其中,所述用户标签数据包括标签、标签对应的Bitmap以及Bitmap下标映射关系。
2.根据权利要求1所述的方法,其特征在于,所述第二标签数据处理线程的数量为多个,各所述第二标签数据处理线程并行存储所述用户标签数据;
所述通过第二标签数据处理线程根据各所述用户标识队列采用Bitmap存储方式存储用户标签数据,包括:
通过所述第二标签数据处理线程生成各所述用户标识队列中各所述用户标识的Bitmap下标值;
通过所述第二标签数据处理线程根据各所述用户标识队列中各所述用户标识的Bitmap下标值生成各所述用户标识队列匹配的Bitmap;
通过所述第二标签数据处理线程存储各所述用户标识队列匹配的待处理标签、Bitmap和Bitmap下标映射关系;
其中,所述用户标识队列匹配的Bitmap的长度与所述用户标识队列中用户标识的Bitmap下标值的最大值相匹配。
3.根据权利要求2所述的方法,其特征在于,所述通过所述第二标签数据处理线程生成各所述用户标识队列中各所述用户标识的Bitmap下标值,包括:
通过所述第二标签数据处理线程依次获取所述用户标识队列的队首用户标识;
通过所述第二标签数据处理线程查询所述队首用户标识在目标数据库中的Bitmap下标映射关系;
通过所述第二标签数据处理线程根据所述队首用户标识在目标数据库中的Bitmap下标映射关系生成所述队首用户标识的Bitmap下标值;
返回执行通过所述第二标签数据处理线程依次获取所述用户标识队列的队首用户标识的操作,直至确定所述用户标识队列中各所述用户标识的Bitmap下标值全部处理完成。
4.根据权利要求3所述的方法,其特征在于,所述通过所述第二标签数据处理线程根据所述队首用户标识在目标数据库中的Bitmap下标映射关系生成所述队首用户标识的Bitmap下标值,包括:
在确定所述队首用户标识存在所述Bitmap下标映射关系且所述队首用户标识为目标用户标识的情况下,通过所述第二标签数据处理线程将所述队首用户标识对应的Bitmap下标值设置为1;
在确定所述队首用户标识不存在所述Bitmap下标映射关系且所述队首用户标识为所述目标用户标识的情况下,通过所述第二标签数据处理线程建立所述队首用户标识与目标Bitmap下标之间的Bitmap下标映射关系,并将所述队首用户标识对应的目标Bitmap下标值设置为1。
5.根据权利要求1所述的方法,其特征在于,所述通过第一标签数据处理线程根据所述待处理用户标签数据生成至少一个用户标识队列,包括:
通过所述第一标签数据处理线程确定当前待处理标签;
通过所述第一标签数据处理线程根据所述当前待处理标签从所述用户标识中筛选目标用户标识;
通过所述第一标签数据处理线程根据所述目标用户标识生成所述用户标识队列;
返回执行通过所述第一标签数据处理线程确定当前待处理标签的操作,直至全部待处理标签处理完毕。
6.根据权利要求1所述的方法,其特征在于,在所述获取待处理用户标签数据之前,还包括:
获取处理器配置信息;
根据所述处理器配置信息确定所述第二标签数据处理线程的数量。
7.根据权利要求1-6任一所述的方法,其特征在于,所述待处理用户标签数据为金融活动用户标签数据,所述用户标识为客户号。
8.一种用户标签数据存储装置,其特征在于,包括:
待处理用户标签数据获取模块,用于获取待处理用户标签数据;其中,所述待处理用户标签数据包括待处理标签和用户标识;所述待处理标签用于标识所述用户标识是否属于标签范围;
第一标签数据处理线程,用于根据所述待处理用户标签数据生成至少一个用户标识队列;其中,一种所述用户标识队列对应一种所述待处理标签;
第二标签数据处理线程,用于根据各所述用户标识队列采用Bitmap存储方式存储用户标签数据;
其中,所述用户标签数据包括标签、标签对应的Bitmap以及Bitmap下标映射关系。
9.一种用户标签数据存储系统,其特征在于,包括用户标签数据存储调度模块、用户标签数据存储执行模块以及目标数据库;其中:
所述用户标签数据存储调度模块与所述用户标签数据存储执行模块保持通信连接,用于按照设定周期生成触发指令,并将所述触发指令发送至所述用户标签数据存储执行模块;
所述用户标签数据存储执行模块与所述目标数据库保持通信连接,用于在接收到所述触发指令后,执行权利要求1-7任一所述的用户标签数据存储方法,以生成用户标签数据;
所述目标数据库用于存储和查询所述用户标签数据。
10.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的用户标签数据存储方法。
11.一种计算机存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的用户标签数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110794712.5A CN113434513A (zh) | 2021-07-14 | 2021-07-14 | 用户标签数据存储方法、装置、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110794712.5A CN113434513A (zh) | 2021-07-14 | 2021-07-14 | 用户标签数据存储方法、装置、系统、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113434513A true CN113434513A (zh) | 2021-09-24 |
Family
ID=77760315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110794712.5A Pending CN113434513A (zh) | 2021-07-14 | 2021-07-14 | 用户标签数据存储方法、装置、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113434513A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180206284A1 (en) * | 2017-01-19 | 2018-07-19 | Qualcomm Incorporated | Signaling for link aggregation setup and reconfiguration |
CN110175287A (zh) * | 2019-05-22 | 2019-08-27 | 湖南大学 | 一种基于Flink的矩阵分解隐式反馈推荐方法和系统 |
CN110648185A (zh) * | 2019-11-28 | 2020-01-03 | 苏宁云计算有限公司 | 一种目标人群圈选方法、装置及计算机设备 |
CN110990473A (zh) * | 2019-11-28 | 2020-04-10 | 北京海益同展信息科技有限公司 | 标签数据处理系统和方法 |
CN112540972A (zh) * | 2020-12-16 | 2021-03-23 | 中盈优创资讯科技有限公司 | 一种基于RoaringBitmap海量用户高效圈选方法及装置 |
-
2021
- 2021-07-14 CN CN202110794712.5A patent/CN113434513A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180206284A1 (en) * | 2017-01-19 | 2018-07-19 | Qualcomm Incorporated | Signaling for link aggregation setup and reconfiguration |
CN110175287A (zh) * | 2019-05-22 | 2019-08-27 | 湖南大学 | 一种基于Flink的矩阵分解隐式反馈推荐方法和系统 |
CN110648185A (zh) * | 2019-11-28 | 2020-01-03 | 苏宁云计算有限公司 | 一种目标人群圈选方法、装置及计算机设备 |
CN110990473A (zh) * | 2019-11-28 | 2020-04-10 | 北京海益同展信息科技有限公司 | 标签数据处理系统和方法 |
CN112540972A (zh) * | 2020-12-16 | 2021-03-23 | 中盈优创资讯科技有限公司 | 一种基于RoaringBitmap海量用户高效圈选方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8965914B2 (en) | Grouping identity records to generate candidate lists to use in an entity and relationship resolution process | |
CN110609865B (zh) | 一种信息同步方法,装置及系统 | |
CN107038222B (zh) | 数据库缓存实现方法及其系统 | |
US9430525B2 (en) | Access plan for a database query | |
CN112445626B (zh) | 一种基于消息中间件的数据处理方法和装置 | |
CN108228322B (zh) | 一种分布式链路跟踪、分析方法及服务器、全局调度器 | |
US8489631B2 (en) | Distributing a query | |
US20140059000A1 (en) | Computer system and parallel distributed processing method | |
US10235217B2 (en) | System and method for aggregate data from multiple sources to provide a single CIM object | |
CN115576905A (zh) | 档案文件管理方法、装置、电子设备和存储介质 | |
CN111026709A (zh) | 基于集群访问的数据处理方法及装置 | |
CN111125213A (zh) | 数据采集的方法、装置及其系统 | |
CN110196868A (zh) | 基于分布式的工单流程监控方法 | |
US20160203032A1 (en) | Series data parallel analysis infrastructure and parallel distributed processing method therefor | |
CN112115113B (zh) | 数据存储系统、方法、装置、设备以及存储介质 | |
CN112860752A (zh) | 针对多方安全数据库的数据查询方法、装置及系统 | |
CN113761052A (zh) | 数据库同步方法和装置 | |
CN111797095A (zh) | 索引构建方法和json数据查询方法 | |
CN113434513A (zh) | 用户标签数据存储方法、装置、系统、设备及存储介质 | |
CN110704481B (zh) | 展示数据的方法和装置 | |
CN116016117A (zh) | 网络设备运维数据采集方法、系统、电子设备及存储介质 | |
CN113836212B (zh) | 数据库数据自动生成Json数据的方法、可读介质和电子设备 | |
CN115481026A (zh) | 测试案例的生成方法、装置、计算机设备、存储介质 | |
CN113094415B (zh) | 数据抽取方法、装置、计算机可读介质及电子设备 | |
CN108009257B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210924 |