CN116595106A - 一种用户分群方法、设备及存储介质 - Google Patents

一种用户分群方法、设备及存储介质 Download PDF

Info

Publication number
CN116595106A
CN116595106A CN202310575390.4A CN202310575390A CN116595106A CN 116595106 A CN116595106 A CN 116595106A CN 202310575390 A CN202310575390 A CN 202310575390A CN 116595106 A CN116595106 A CN 116595106A
Authority
CN
China
Prior art keywords
label
tag
user
bin
real
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
Application number
CN202310575390.4A
Other languages
English (en)
Inventor
蒋明明
徐晓波
李革委
胡鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Music Entertainment Technology Shenzhen Co Ltd
Original Assignee
Tencent Music Entertainment Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Music Entertainment Technology Shenzhen Co Ltd filed Critical Tencent Music Entertainment Technology Shenzhen Co Ltd
Priority to CN202310575390.4A priority Critical patent/CN116595106A/zh
Publication of CN116595106A publication Critical patent/CN116595106A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24564Applying rules; Deductive queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种用户分群方法、装置、设备及存储介质,包括:获取客户端创建的标签规则;所述标签规则包含所述客户端选取的多个预设标签及标签间的逻辑关系;如果多个所述预设标签的标签类型均为热标签,则在实时数仓中查询符合所述标签规则的用户群体;所述实时数仓中存储标签类型为热标签的用户数据;如果多个所述预设标签中存在标签类型为冷标签的标签,则在离线数仓中查询符合所述标签规则的用户群体;所述离线数仓中存储全部标签类型的用户数据。本申请可通过对标签进行冷热分离,利用不同的数据仓库存储不同标签类型的用户数据,并在此基础上针对不同标签类型采用不同的查询方案,能够实现秒级分群。

Description

一种用户分群方法、设备及存储介质
技术领域
本发明涉及数据处理技术领域,特别涉及一种用户分群方法、设备及存储介质。
背景技术
目前,各种各样的软件应用会保存用户的相关数据。为对大量用户进行分析以把握用户群体需求,以便更好地推进后续业务,一般会为用户设置标签,并通过标签进行用户分群。例如,可为音乐软件产品的用户生成各种不同的标签,如年龄、性别、是否为vip用户、过去一周听歌次数、过去一周K歌次数等,进而业务人员可以根据需求圈选出符合一定要求的用户群体,然后为该群体推送一些运营活动,而圈选用户的过程便称为用户分群。然而,现有的用户分群方案存在查询逻辑复杂、查询速度慢(分钟级)、查询性能不稳定且存储空间占用较多的缺陷。
因此,上述技术问题亟待本领域技术人员解决。
发明内容
有鉴于此,本发明的目的在于提供一种用户分群方法、设备及存储介质,能够在降低存储空间占用率的基础上实现秒级分群。其具体方案如下:
本申请的第一方面提供了一种用户分群方法,包括:
获取客户端创建的标签规则;所述标签规则包含所述客户端选取的多个预设标签及标签间的逻辑关系;
如果多个所述预设标签的标签类型均为热标签,则在实时数仓中查询符合所述标签规则的用户群体;所述实时数仓中存储标签类型为热标签的用户数据;
如果多个所述预设标签中存在标签类型为冷标签的标签,则在离线数仓中查询符合所述标签规则的用户群体;所述离线数仓中存储全部标签类型的用户数据。
可选的,所述用户分群方法,还包括:
实时统计各所述预设标签被所述客户端选取的频次;
根据频次高低确定各所述预设标签的标签类型;标签类型为冷标签或热标签。
可选的,所述用户分群方法,还包括:
将所述离线数仓中标签类型为热标签的所述预设标签对应的用户数据实时同步至所述实时数仓,使得所述实时数仓中存储标签类型为热标签的用户数据。
可选的,所述将所述离线数仓中标签类型为热标签的所述预设标签对应的用户数据实时同步至所述实时数仓之后,还包括:
将同步的用户数据填充至在所述实时数仓中构建的目标竖表中,使得所述实时数仓中存储标签类型为热标签的用户数据;所述目标竖表的每一行至少存储一个所述预设标签、所述预设标签的一个标签值及一个包含具有所述预设标签和所述标签值的用户标识的序列。
可选的,所述目标竖表的每一行存储的用户标识的存储形式为位图格式。
可选的,所述在实时数仓中查询符合所述标签规则的用户群体,包括:
在所述实时数仓的所述目标竖表中查询出符合所述标签规则的用户标识。
可选地,所述在实时数仓中查询符合所述标签规则的用户群体,包括:
利用第一数据库引擎将所述标签规则转化为第一查询语句,并在所述实时数仓中执行所述第一查询语句以得到符合所述标签规则的用户群体;
所述在离线数仓中查询符合所述标签规则的用户群体,包括:
利用第二数据库引擎将所述标签规则转化为第二查询语句,并在所述离线数仓中执行所述第二查询语句以得到符合所述标签规则的用户群体。
可选的,所述用户分群方法,还包括:
将得到的符合所述标签规则的用户群体进行打包处理得到相应的人群包;
将所述人群包上传至云存储平台,以便所述客户端从所述云存储平台下载所述人群包。
本申请的第二方面提供了一种电子设备,所述电子设备包括处理器和存储器;其中所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现前述用户分群方法。
本申请的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述用户分群方法。
本申请中,先获取客户端创建的标签规则;所述标签规则包含所述客户端选取的多个预设标签及标签间的逻辑关系;如果多个所述预设标签的标签类型均为热标签,则在实时数仓中查询符合所述标签规则的用户群体;所述实时数仓中存储标签类型为热标签的用户数据;如果多个所述预设标签中存在标签类型为冷标签的标签,则在离线数仓中查询符合所述标签规则的用户群体;所述离线数仓中存储全部标签类型的用户数据。可见,本申请通过对标签进行冷热分离,利用不同的数据仓库存储不同标签类型的用户数据,以降低存储空间占用率,在此基础上针对不同标签类型采用不同的查询方案,从而将用户分群速度提升了一个数量级,实现秒级分群。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种用户分群方法所适用的硬件组成框架示意图;
图2为本申请提供的一种用户分群方法流程图;
图3为本申请提供的一种具体的标签规则创建示例图;
图4为本申请提供的一种具体的用户分群方法流程图;
图5为本申请提供的一种具体的用户分群方法流程图;
图6为本申请提供的一种具体的实时数仓中的标签存储结构示例图;
图7为本申请提供的一种具体的标签规则创建示例图;
图8为本申请提供的一种具体的离线数仓中的标签存储结构示例图;
图9为本申请提供的一种具体的用户分群方法流程图;
图10为本申请提供的一种具体的用户分群方法示意图;
图11为本申请提供的一种具体的用户分群方法使用效果图;
图12为本申请提供的一种具体的用户分群方法使用效果图;
图13为本申请提供的一种用户分群装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有的用户分群方案存在查询逻辑复杂、查询速度慢(分钟级)、查询性能不稳定及存储空间占用较多的缺陷。针对上述技术缺陷,本申请提供一种用户分群方案,通过对标签进行冷热分离,利用不同的数据仓库存储不同标签类型的用户数据,以降低存储空间占用率,在此基础上针对不同标签类型采用不同的查询方案,从而将用户分群速度提升了一个数量级,实现秒级分群。
为了便于理解,先对本申请的用户分群方法对应的方案所适用的硬件组成框架进行介绍。可以参见图1,其中,图1其示出了本申请一种用户分群方法所适用的硬件组成框架示意图。
由图1可知,该硬件组成框架可以包括:电子设备10,其中,电子设备10可以包括:处理器11、存储器12、通信接口13、输入输出接口14、和通信总线15。处理器11、存储器12、通信接口13、输入输出接口14均通过通信总线15完成相互间的通信。
在本申请实施例中,该处理器11,可以为中央处理器(Central Processing Unit,CPU),特定应用集成电路,数字信号处理器、现成可编程门阵列或者其他可编程逻辑器件等。该处理器可以调用存储器12中存储的程序。具体的,处理器可以执行以下用户分群方法的实施例中计算机设备侧所执行的操作。
存储器12中用于存放一个或者一个以上程序,程序可以包括程序代码,程序代码包括计算机操作指令,可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,SRAM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、只读存储器(Read-Only Memory,ROM)、磁存储器、快闪存储器、磁盘或光盘中的一种或多种。在本申请实施例中,该存储器中至少存储有用于实现以下功能的程序:
在Web端安装并运行插桩工具,以利用所述插桩工具采集用户对所述Web端的Web页面进行访问时的跟踪数据;
将所述跟踪数据在所述Web端的本地存储中进行保存,并针对每条所述跟踪数据创建数据索引;
获取客户端创建的标签规则;所述标签规则包含所述客户端选取的多个预设标签及标签间的逻辑关系;
如果多个所述预设标签的标签类型均为热标签,则在实时数仓中查询符合所述标签规则的用户群体;所述实时数仓中存储标签类型为热标签的用户数据;
如果多个所述预设标签中存在标签类型为冷标签的标签,则在离线数仓中查询符合所述标签规则的用户群体;所述离线数仓中存储全部标签类型的用户数据。
在一种可能的实现方式中,该存储器12可包括存储程序区和存储数据区,其中,存储程序区可存储操作***、以及至少一个功能(比如声音播放功能、图像播放功能等)所需的应用程序等;存储数据区可存储根据电子设备的使用过程中所创建的数据,比如,标签数据、用户数据等等。
该通信接口13可以为通信模块的接口,如GSM模块的接口。
输入输出接口14为处理器11和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信接口13用于电子设备10与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(NearField Communication,简称NFC),3G、4G或5G,或它们中的一种或几种的组合,因此相应的该通信组件105可以包括:Wi-Fi部件,蓝牙部件,NFC部件。
电子设备10可以被一个或多个应用专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、数字信号处理器(Digital Signal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field ProgrammableGate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行用户分群方法。
当然,图1所示的电子设备10的结构并不构成对本申请实施例中计算机设备的限定,在实际应用中电子设备可以包括比图1所示的更多或更少的部件,或者组合某些部件。
其中,图1中的电子设备10可以为终端(如手机、平板电脑等移动终端,或PC机等固定终端)、服务器、智能电子设备。
图2为本申请实施例提供的一种用户分群方法流程图。参见图2所示,该用户分群方法包括:
S11:获取客户端创建的标签规则;所述标签规则包含所述客户端选取的多个预设标签及标签间的逻辑关系。
本实施例中,用户分群的执行主体可以为具有用户分群功能的数据处理平台。本步骤将先获取客户端创建的标签规则,这里的客户端为使用上述数据处理平台来进行用户分群的用户端,所述标签规则包含所述客户端选取的多个预设标签及标签间的逻辑关系。
其中,所述预设标签指已为用户分配的标签,而所述客户端需要在这些预设标签选择一部分来创建所述标签规则;而所述标签规则可根据用户特点进行设置,本实施例对此不进行限定。例如,对于音乐软件的用户,所述标签规则可以为年龄、是否会员、是否为某歌星的粉丝、近一个月听歌时长、近一个月听歌频次等。进一步,所述标签规则除了包含所述客户端选择的多个所述预设标签之外,还可以包括这多个所述预设标签之间的逻辑关系,所述逻辑关系包括但不限于“且”、“或”。以平台的用户分群功能为例,所述客户端可以在平台上选择不同的预设标签,然后用“且”、“或”将这些预设标签连接起来,这样就创建出了不同的标签规则,后台就可以根据这些标签规则将符合规则条件的所有用户圈选出来。图3所示为创建标签规则的具体示例。
S12:如果多个所述预设标签的标签类型均为热标签,则在实时数仓中查询符合所述标签规则的用户群体;所述实时数仓中存储标签类型为热标签的用户数据。
本实施例中,在获取到所述客户端创建的所述标签规则之后,会对所述标签规则中包含的标签的类型进行判断,并根据不同的标签类型采用不同的查询方案。这里的标签类型主要分为热标签和冷标签,可以理解,热标签是使用频率较高的标签,冷标签是使用频率较低的标签。
本实施例中,如果多个所述预设标签的标签类型均为热标签,则可在实时数仓中查询符合所述标签规则的用户群体。本实施例并不限定具体的查询方式,可参考实时数仓的相关技术,例如可利用第一数据库引擎将所述标签规则转化为第一查询语句,并在所述实时数仓中执行所述第一查询语句以得到符合所述标签规则的用户群体。其中,第一数据库引擎与实时数仓相对应;所述第一查询语句为根据所述标签规则生成的、实时数仓可识别处理的SQL查询语句;所述实时数仓中存储标签类型为热标签的用户数据。仍然以平台为例,所述客户端创建好所述标签规则后,后台会检测所述标签规则中包含的所述预设标签的类型是否都是热标签,如果是就基于实时数仓通过即时查询进行用户分群。
可以理解,所述实时数仓是一个可以实时分析数据仓库,例如可以为列式数据库管理***Clickhouse、新型查询***Impala、分布式SQL查询引擎Presto等,本实施例对所述实时数仓不进行限定。其中,Clickhouse采用列式存储,数据类型一致,压缩性能更高,硬件利用率高;Presto是一个开源的分布式SQL查询引擎,数据量支持GB到PB字节,主要用来处理秒级查询的场景。所述实时数仓相对于Hive等离线数据仓库能够更加满足查询需求。值得指出的是,由于实时数仓中并不存储标签类型为冷标签的用户数据,因此能够大大减少实时数仓所需存储的数据量,从而可显著提升实时数仓的查询速度。
S13:如果多个所述预设标签中存在标签类型为冷标签的标签,则在离线数仓中查询符合所述标签规则的用户群体;所述离线数仓中存储全部标签类型的用户数据。
本实施例中,如果多个所述预设标签中存在标签类型为冷标签的标签,则可在离线数仓中查询符合所述标签规则的用户群体,其中所述离线数仓中既存储标签类型为热标签的用户数据也存储标签类型为冷标签的用户数据,即所述离线数仓存储全部标签类型的用户数据。即如果后台检测所述标签规则中包含的所述预设标签的类型不都是热标签(例如包含冷标签或全为冷标签),则可基于离线数仓通过离线查询进行用户分群。本实施例并不限定具体的查询方式,可参考离线数仓的相关技术,例如可利用第二数据库引擎将所述标签规则转化为第二查询语句,并在所述离线数仓中执行所述第二查询语句以得到符合所述标签规则的用户群体。其中,第二数据库引擎与离线数仓相对应;所述第二查询语句为根据所述标签规则生成的、离线数仓可识别处理的SQL查询语句。
一般来说,标签数量数以千计,如果全部存一份到所述实时数仓中,将会浪费很多存储,而经过历史数据分析,所述客户端最常用的标签只有几十个,因此只需要将这几十个标签存储至所述实时数仓,这样既可以节省成本,也可以大大减少分群时间。
可见,本申请实施例先获取客户端创建的标签规则;所述标签规则包含所述客户端选取的多个预设标签及标签间的逻辑关系;如果多个所述预设标签的标签类型均为热标签,则在实时数仓中查询符合所述标签规则的用户群体;所述实时数仓中存储标签类型为热标签的用户数据;如果多个所述预设标签中存在标签类型为冷标签的标签,则在离线数仓中查询符合所述标签规则的用户群体;所述离线数仓中存储全部标签类型的用户数据。本申请实施例通过对标签进行冷热分离,利用不同的数据仓库存储不同标签类型的用户数据,以降低存储空间占用率,在此基础上针对不同标签类型采用不同的查询方案,从而将用户分群速度提升了一个数量级,实现秒级分群。
图4为本申请实施例提供的一种具体的用户分群方法流程图。参见图4所示,该用户分群方法包括:
S21:实时统计各预设标签被客户端选取的频次。
S22:根据频次高低确定各所述预设标签的标签类型;标签类型为冷标签或热标签。
S23:将离线数仓中标签类型为热标签的所述预设标签对应的用户数据实时同步至所述实时数仓,使得所述实时数仓中存储标签类型为热标签的用户数据。
本实施例中,针对同一个预设标签,对应的标签类型是动态设置的,也就是说实时数仓中存储的用户数据也是实时变化的。具体的,先实时统计各预设标签被客户端选取的频次,然后根据频次高低确定各所述预设标签的标签类型。选取的频次高意味着该预设标签比较常用,选取的频次低意味着该预设标签不常用,这里的频次阈值可以根据业务需求自行设定,本实施例对此不进行限定。对于比较常用的预设标签,将其标签类型认定为热标签,此时需要放在所述实时数仓中进行存储。对于不常用的预设标签,将其标签类型认定为冷标签,此时需要放在离线数仓中进行存储。
进一步的,本实施例中所述实时数仓中的用户数据是从所述离线数仓中同步过去的,一旦确定了所述离线数仓中哪些所述预设标签的标签类型是热标签,便将该预设标签对应的用户数据从所述离线数仓中同步至所述实时数仓。即将离线数仓中标签类型为热标签的所述预设标签对应的用户数据实时同步至所述实时数仓,使得所述实时数仓中存储标签类型为热标签的用户数据。这里需要注意,用户数据包括用户标识、用户具有的所述预设标签及对应的标签值等。
S24:获取客户端创建的标签规则;所述标签规则包含所述客户端选取的多个预设标签及标签间的逻辑关系。
S25:如果多个所述预设标签的标签类型均为热标签,则利用第一数据库引擎将所述标签规则转化为第一查询语句,并在实时数仓中执行所述第一查询语句以得到符合所述标签规则的用户群体;所述实时数仓中存储标签类型为热标签的用户数据。
S26:如果多个所述预设标签中存在标签类型为冷标签的标签,则利用第二数据库引擎将所述标签规则转化为第二查询语句,并在离线数仓中执行所述第二查询语句以得到符合所述标签规则的用户群体;所述离线数仓中存储全部标签类型的用户数据。
本实施例中,关于上述步骤S24至步骤S26的具体过程,可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本申请实施例先实时统计各预设标签被客户端选取的频次,然后根据频次高低确定各所述预设标签的标签类型,接着将离线数仓中标签类型为热标签的所述预设标签对应的用户数据实时同步至所述实时数仓,使得所述实时数仓中存储标签类型为热标签的用户数据。在此基础上,获取客户端创建的标签规则,如果多个所述预设标签的标签类型均为热标签,则利用第一数据库引擎将所述标签规则转化为第一查询语句,并在实时数仓中执行所述第一查询语句以得到符合所述标签规则的用户群体;所述实时数仓中存储标签类型为热标签的用户数据。如果多个所述预设标签中存在标签类型为冷标签的标签,则利用第二数据库引擎将所述标签规则转化为第二查询语句,并在离线数仓中执行所述第二查询语句以得到符合所述标签规则的用户群体;所述离线数仓中存储全部标签类型的用户数据。本申请实施例针对每个预设标签会实时统计被客户端选取的频次,从而根据统计出的频次高低确定其是冷标签还是热标签,通过将热标签同步至所述实时数仓的方式实现标签的冷热分离,提高后续的分群效率。
图5为本申请实施例提供的一种具体的用户分群方法流程图。参见图5所示,该用户分群方法包括:
S31:实时统计各预设标签被客户端选取的频次。
S32:根据频次高低确定各所述预设标签的标签类型;标签类型为冷标签或热标签。
S33:将所述离线数仓中标签类型为热标签的所述预设标签对应的用户数据实时同步至所述实时数仓,使得所述实时数仓中存储标签类型为热标签的用户数据。
本实施例中,关于上述步骤S31至步骤S33的具体过程,可以参考前述实施例中公开的相应内容,在此不再进行赘述。
S34:将同步的用户数据填充至在所述实时数仓中构建的目标竖表中,使得所述实时数仓中存储标签类型为热标签的用户数据;所述目标竖表的每一行至少存储一个所述预设标签、所述预设标签的一个标签值及具有所述预设标签和所述标签值的用户标识的序列。
本实施例中,为了进一步提高查询效率,在所述实时数仓中以竖表的形式存储从所述离线数仓中同步过来用户数据。具体的,将同步的用户数据填充至在所述实时数仓中构建的目标竖表中,使得所述实时数仓中存储标签类型为热标签的用户数据;所述目标竖表的每一行至少存储一个所述预设标签、所述预设标签的一个标签值及一个包含具有所述预设标签和所述标签值的用户标识的序列。进一步的,所述目标竖表的每一行存储的用户标识的存储形式为位图格式。
图6所示为所述实时数仓中的标签存储结构示例,每行代表一个所述预设标签的一种标签值对应的用户标识(用户id)集合bitmap。在这种架构之下,假设某个所述预设标签有N个不同的标签值,那么就只需要N行就可以实现存储,例如,对于性别标签只需要存储2行(一行是男“1”,一行是女“2”),对于年龄标签只需要存储100多行(100多岁)即可。另外,bitmap结构非常节省空间,原来需要32位存储的用户id,在bitmap中只需要1位即可,且bitmap天然去重,不需要单独对用户id进行去重。
S35:获取客户端创建的标签规则;所述标签规则包含所述客户端选取的多个预设标签及标签间的逻辑关系。
本实施例中,关于上述步骤S35的具体过程,可以参考前述实施例中公开的相应内容,在此不再进行赘述。
S36:如果多个所述预设标签的标签类型均为热标签,则利用第一数据库引擎将所述标签规则转化为第一查询语句,并在实时数仓中执行所述第一查询语句以得到符合所述标签规则的用户群体;所述实时数仓中存储标签类型为热标签的用户数据。
本实施例中,在采用bitmap技术进行用户分群时,在实时数仓中查询符合所述标签规则的用户群体具体过程为在所述实时数仓的所述目标竖表中查询出符合所述标签规则的用户标识。具体的,可在所述实时数仓中执行所述第一查询语句以从所述目标竖表中查询出符合所述标签规则的用户标识。对于图7所示的标签规则,生成的bitmap SQL如下所示:
with(select groupBitmapMergeState(uids_bitmap)
from tagstar_bitmap_features
where(ftime='2022-11-19')and app_id=3and feature_id='age'and(feature_value=30))as bitmap_0,
(select groupBitmapMergeState(uids_bitmap)from tagstar_bitmap_features
where(ftime='2022-11-19')and app_id=3and feature_id='last31_play_cnt'and(feature_value>100))as bitmap_1,
(select groupBitmapMergeState(uids_bitmap)from tagstar_bitmap_features
where(ftime='2022-11-19')and app_id=3and feature_id='is_green_luxury'and feature_value IN(1))as bitmap_2
select toString(arrayJoin(bitmapToArray(bitmapAnd(bitmap_2,bitmapOr(bitmap_1,bitm ap_0)))))as uid
limit 100000
S37:如果多个所述预设标签中存在标签类型为冷标签的标签,则利用第二数据库引擎将所述标签规则转化为第二查询语句,并在离线数仓中执行所述第二查询语句以得到符合所述标签规则的用户群体;所述离线数仓中存储全部标签类型的用户数据。
本实施例中,通过实时数仓的bitmap技术方案生成用户分群,如果包含冷标签,就走原始的离线仓库SQL查询生成用户分群,基于冷热标签分离方式,可以减少存储成本,但由于标签bitmap是单独存一份在所述实时数仓中,所以只需要将用户最常用的几十个标签bitmap同步存储在所述实时数仓中即可,而其他上千个类型冷标签的标签继续存储在离线数仓中。需要说明的是,所述离线数仓以宽表的形式存储用户数据,一行代表一个用户,每列代表用户的一个所述预设标签,图8为这种情况下的标签存储结构,可参考相关技术中的SQL实现。
可见,本申请实施例先实时统计各预设标签被客户端选取的频次,然后根据频次高低确定各所述预设标签的标签类型;标签类型为冷标签或热标签,接着将所述离线数仓中标签类型为热标签的所述预设标签对应的用户数据实时同步至所述实时数仓,使得所述实时数仓中存储标签类型为热标签的用户数据。进一步的,将同步的用户数据填充至在所述实时数仓中构建的目标竖表中,使得所述实时数仓中存储标签类型为热标签的用户数据;所述目标竖表的每一行至少存储一个所述预设标签、所述预设标签的一个标签值及一个包含具有所述预设标签和所述标签值的用户标识的序列。在此基础上,获取客户端创建的标签规则,如果多个所述预设标签的标签类型均为热标签,则利用第一数据库引擎将所述标签规则转化为第一查询语句,并在实时数仓中执行所述第一查询语句以得到符合所述标签规则的用户群体;所述实时数仓中存储标签类型为热标签的用户数据。如果多个所述预设标签中存在标签类型为冷标签的标签,则利用第二数据库引擎将所述标签规则转化为第二查询语句,并在离线数仓中执行所述第二查询语句以得到符合所述标签规则的用户群体;所述离线数仓中存储全部标签类型的用户数据。本申请实施例对于类型为热标签的预设标签采用bitmap技术进行用户分群,冷标签采用原始的基于普通SQL查询的方式进行用户分群,该方案在成本可控的条件下,将用户分群的速度提升了一个数量级,绝大多数情况可以实现秒级用户分群,大大提高了用户体验。
图9为本申请实施例提供的一种用户分群方法流程图。参见图9所示,该用户分群方法包括:
S41:获取客户端创建的标签规则;所述标签规则包含所述客户端选取的多个预设标签及标签间的逻辑关系。
S42:如果多个所述预设标签的标签类型均为热标签,则利用第一数据库引擎将所述标签规则转化为第一查询语句,并在实时数仓中执行所述第一查询语句以得到符合所述标签规则的用户群体;所述实时数仓中存储标签类型为热标签的用户数据。
S43:如果多个所述预设标签中存在标签类型为冷标签的标签,则利用第二数据库引擎将所述标签规则转化为第二查询语句,并在离线数仓中执行所述第二查询语句以得到符合所述标签规则的用户群体;所述离线数仓中存储全部标签类型的用户数据。
本实施例中,关于上述步骤S41至步骤S43的具体过程,可以参考前述实施例中公开的相应内容,在此不再进行赘述。
S44:将得到的符合所述标签规则的用户群体进行打包处理得到相应的人群包。
S45:将所述人群包上传至云存储平台,以便所述客户端从所述云存储平台下载所述人群包。
本实施例中,在用户分群之后,进一步将得到的符合所述标签规则的用户群体进行打包处理得到相应的人群包,同时将所述人群包上传至云存储平台,以便所述客户端从所述云存储平台下载所述人群包。即将用户分群后的数据生成一个文本文件给到所述客户端,具体可以将最终生成的人群包等文件上传到腾讯云cos等云平台,供用户下载使用。
可见,本申请实施例先获取客户端创建的标签规则;所述标签规则包含所述客户端选取的多个预设标签及标签间的逻辑关系;如果多个所述预设标签的标签类型均为热标签,则利用第一数据库引擎将所述标签规则转化为第一查询语句,并在实时数仓中执行所述第一查询语句以得到符合所述标签规则的用户群体;所述实时数仓中存储标签类型为热标签的用户数据;如果多个所述预设标签中存在标签类型为冷标签的标签,则利用第二数据库引擎将所述标签规则转化为第二查询语句,并在离线数仓中执行所述第二查询语句以得到符合所述标签规则的用户群体;所述离线数仓中存储全部标签类型的用户数据。最后将得到的符合所述标签规则的用户群体进行打包处理得到相应的人群包,同时将所述人群包上传至云存储平台,以便所述客户端从所述云存储平台下载所述人群包,从而提高用户体验。
下面将对本申请的用户分群方案进行整体描述。图10为相应的用户分群方法示意图。
客户端创建好标签规则后,数据处理平台会在后台检测该标签规则中的预设标签是否都是热标签,如果是就走Clickhouse的bitmap技术方案实现用户分群,如果包含冷标签,就走原始的离线仓库SQL查询实现用户分群,最后将生成的文件上传到腾讯云cos,供用户下载使用。这里需要说明,如果不进行冷热标签分离,即使通过实时数仓来进行用户分群,仍然存在SQL复杂、无法做到秒级、存储空间占用多、维护复杂的弊端。同样的,如果不进行冷热标签分离,仅基于Hive等离线数据仓库SQL查询的技术方案,仍然存在SQL复杂、速度慢(分钟级别)、查询性能不稳定、维护复杂,存储空间占用多的弊端。本实施例对于类型为热标签的预设标签采用bitmap技术进行用户分群,冷标签采用原始的基于普通SQL查询的方式进行用户分群,该方案在成本可控的条件下,将用户分群的速度提升了一个数量级,绝大多数情况可以实现秒级用户分群,大大提高了用户体验。
上线本实施例的用户分群技术后,数据处理平台的圈层平均耗时大幅度下降,由原来的500s降到平均100s,如图11所示。bitmap分群相比于传统tdw离线数仓分群平均耗时低一个数量级,如图12所示,基于bitmap的方案平均只需要30秒,而传统tdw离线数仓方案平均需要200-700多秒。以某音乐软件为例,该软件中的存量用户分群切换到bitmap方案后,总耗时从原来的10小时以上减少到1.5小时。
参见图13所示,本申请实施例还相应公开了一种用户分群装置,包括:
规则获取模块21,用于获取客户端创建的标签规则;所述标签规则包含所述客户端选取的多个预设标签及标签间的逻辑关系;
第一分群模块22,用于如果多个所述预设标签的标签类型均为热标签,则在实时数仓中查询符合所述标签规则的用户群体;所述实时数仓中存储标签类型为热标签的用户数据;
第二分群模块23,用于如果多个所述预设标签中存在标签类型为冷标签的标签,则在离线数仓中查询符合所述标签规则的用户群体;所述离线数仓中存储全部标签类型的用户数据。
可见,本申请实施例先获取客户端创建的标签规则;所述标签规则包含所述客户端选取的多个预设标签及标签间的逻辑关系;如果多个所述预设标签的标签类型均为热标签,则在实时数仓中查询符合所述标签规则的用户群体;所述实时数仓中存储标签类型为热标签的用户数据;如果多个所述预设标签中存在标签类型为冷标签的标签,则在离线数仓中查询符合所述标签规则的用户群体;所述离线数仓中存储全部标签类型的用户数据。本申请实施例通过对标签进行冷热分离,利用不同的数据仓库存储不同标签类型的用户数据,以降低存储空间占用率,在此基础上针对不同标签类型采用不同的查询方案,从而将用户分群速度提升了一个数量级,实现秒级分群。
在一些具体实施例中,所述用户分群装置还可以包括:
统计模块,用于实时统计各所述预设标签被所述客户端选取的频次;
确定模块,用于根据频次高低确定各所述预设标签的标签类型;标签类型为冷标签或热标签;
在一些具体实施例中,所述用户分群装置还可以包括:同步模块,用于将所述离线数仓中标签类型为热标签的所述预设标签对应的用户数据实时同步至所述实时数仓,使得所述实时数仓中存储标签类型为热标签的用户数据;
在一些具体实施例中,所述用户分群装置还可以包括:
填充模块,用于将同步的用户数据填充至在所述实时数仓中构建的目标竖表中,使得所述实时数仓中存储标签类型为热标签的用户数据;所述目标竖表的每一行至少存储一个所述预设标签、所述预设标签的一个标签值及一个包含具有所述预设标签和所述标签值的用户标识的序列;
在一些具体实施例中,所述目标竖表的每一行存储的用户标识的存储形式可以为位图格式;在一些具体实施例中,所述第一分群模块22,还可以用于:
在所述实时数仓的所述目标竖表中查询出符合所述标签规则的用户标识。
在一些具体实施例中,所述第一分群模块22,还可以用于:
利用第一数据库引擎将所述标签规则转化为第一查询语句,并在所述实时数仓中执行所述第一查询语句以得到符合所述标签规则的用户群体;
第二分群模块23,还可以用于:
利用第二数据库引擎将所述标签规则转化为第二查询语句,并在所述离线数仓中执行所述第二查询语句以得到符合所述标签规则的用户群体。
在一些具体实施例中,所述用户分群装置还可以包括:
打包模块,用于将得到的符合所述标签规则的用户群体进行打包处理得到相应的人群包;
上传模块,用于将所述人群包上传至云存储平台,以便所述客户端从所述云存储平台下载所述人群包。
另一方面,本申请还提供了一种电子设备,该电子设备可以包括处理器和存储器。该电子设备中处理器和存储器之间的关系可以参考图1。
其中,电子设备的处理器用于执行所述存储器中存储的程序;
电子设备的存储器用于存储程序,所述程序至少用于:
获取客户端创建的标签规则;所述标签规则包含所述客户端选取的多个预设标签及标签间的逻辑关系;
如果多个所述预设标签的标签类型均为热标签,则在实时数仓中查询符合所述标签规则的用户群体;所述实时数仓中存储标签类型为热标签的用户数据;
如果多个所述预设标签中存在标签类型为冷标签的标签,则在离线数仓中查询符合所述标签规则的用户群体;所述离线数仓中存储全部标签类型的用户数据。
可选的,所述程序还用于:
实时统计各所述预设标签被所述客户端选取的频次;
根据频次高低确定各所述预设标签的标签类型;标签类型为冷标签或热标签。
将所述离线数仓中标签类型为热标签的所述预设标签对应的用户数据实时同步至所述实时数仓,使得所述实时数仓中存储标签类型为热标签的用户数据。
将同步的用户数据填充至在所述实时数仓中构建的目标竖表中,使得所述实时数仓中存储标签类型为热标签的用户数据;所述目标竖表的每一行至少存储一个所述预设标签、所述预设标签的一个标签值及一个包含具有所述预设标签和所述标签值的用户标识的序列。
可选的,所述目标竖表的每一行存储的用户标识的存储形式为位图格式。
可选的,所述在实时数仓中查询符合所述标签规则的用户群体,包括:
在所述实时数仓的所述目标竖表中查询出符合所述标签规则的用户标识。
可选的,所述在实时数仓中查询符合所述标签规则的用户群体,包括:
利用第一数据库引擎将所述标签规则转化为第一查询语句,并在所述实时数仓中执行所述第一查询语句以得到符合所述标签规则的用户群体;
所述在离线数仓中查询符合所述标签规则的用户群体,包括:
利用第二数据库引擎将所述标签规则转化为第二查询语句,并在所述离线数仓中执行所述第二查询语句以得到符合所述标签规则的用户群体。
可选的,所述程序还用于:
将得到的符合所述标签规则的用户群体进行打包处理得到相应的人群包;
将所述人群包上传至云存储平台,以便所述客户端从所述云存储平台下载所述人群包。
当然,该电子设备还可以包含通信接口、输入输出接口等,具体在此不加以限制。
进一步的,本申请实施例还公开了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,至少实现以下步骤:
获取客户端创建的标签规则;所述标签规则包含所述客户端选取的多个预设标签及标签间的逻辑关系;
如果多个所述预设标签的标签类型均为热标签,则在实时数仓中查询符合所述标签规则的用户群体;所述实时数仓中存储标签类型为热标签的用户数据;
如果多个所述预设标签中存在标签类型为冷标签的标签,则在离线数仓中查询符合所述标签规则的用户群体;所述离线数仓中存储全部标签类型的用户数据。
可选的,还包括:
实时统计各所述预设标签被所述客户端选取的频次;
根据频次高低确定各所述预设标签的标签类型;标签类型为冷标签或热标签。
将所述离线数仓中标签类型为热标签的所述预设标签对应的用户数据实时同步至所述实时数仓,使得所述实时数仓中存储标签类型为热标签的用户数据。
可选的,所述将所述离线数仓中标签类型为热标签的所述预设标签对应的用户数据实时同步至所述实时数仓之后,还包括:
将同步的用户数据填充至在所述实时数仓中构建的目标竖表中,使得所述实时数仓中存储标签类型为热标签的用户数据;所述目标竖表的每一行至少存储一个所述预设标签、所述预设标签的一个标签值及一个包含具有所述预设标签和所述标签值的用户标识的序列。
可选的,所述目标竖表的每一行存储的用户标识的存储形式为位图格式。
可选的,所述在实时数仓中查询符合所述标签规则的用户群体,包括:
在所述实时数仓的所述目标竖表中查询出符合所述标签规则的用户标识。
可选的,所述在实时数仓中查询符合所述标签规则的用户群体,包括:
利用第一数据库引擎将所述标签规则转化为第一查询语句,并在所述实时数仓中执行所述第一查询语句以得到符合所述标签规则的用户群体;
所述在离线数仓中查询符合所述标签规则的用户群体,包括:
利用第二数据库引擎将所述标签规则转化为第二查询语句,并在所述离线数仓中执行所述第二查询语句以得到符合所述标签规则的用户群体。
可选的,还包括:
将得到的符合所述标签规则的用户群体进行打包处理得到相应的人群包;
将所述人群包上传至云存储平台,以便所述客户端从所述云存储平台下载所述人群包。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的用户分群方法、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种用户分群方法,其特征在于,包括:
获取客户端创建的标签规则;所述标签规则包含所述客户端选取的多个预设标签及标签间的逻辑关系;
如果多个所述预设标签的标签类型均为热标签,则在实时数仓中查询符合所述标签规则的用户群体;所述实时数仓中存储标签类型为热标签的用户数据;
如果多个所述预设标签中存在标签类型为冷标签的标签,则在离线数仓中查询符合所述标签规则的用户群体;所述离线数仓中存储全部标签类型的用户数据。
2.根据权利要求1所述的用户分群方法,其特征在于,还包括:
实时统计各所述预设标签被所述客户端选取的频次;
根据频次高低确定各所述预设标签的标签类型;标签类型为冷标签或热标签。
3.根据权利要求1所述的用户分群方法,其特征在于,还包括:
将所述离线数仓中标签类型为热标签的所述预设标签对应的用户数据实时同步至所述实时数仓,使得所述实时数仓中存储标签类型为热标签的用户数据。
4.根据权利要求3所述的用户分群方法,其特征在于,所述将所述离线数仓中标签类型为热标签的所述预设标签对应的用户数据实时同步至所述实时数仓之后,还包括:
将同步的用户数据填充至在所述实时数仓中构建的目标竖表中,使得所述实时数仓中存储标签类型为热标签的用户数据;所述目标竖表的每一行至少存储一个所述预设标签、所述预设标签的一个标签值及一个包含具有所述预设标签和所述标签值的用户标识的序列。
5.根据权利要求4所述的用户分群方法,其特征在于,所述目标竖表的每一行存储的用户标识的存储形式为位图格式。
6.根据权利要求4所述的用户分群方法,其特征在于,所述在实时数仓中查询符合所述标签规则的用户群体,包括:
在所述实时数仓的所述目标竖表中查询出符合所述标签规则的用户标识。
7.根据权利要求1所述的用户分群方法,其特征在于,所述在实时数仓中查询符合所述标签规则的用户群体,包括:
利用第一数据库引擎将所述标签规则转化为第一查询语句,并在所述实时数仓中执行所述第一查询语句以得到符合所述标签规则的用户群体;
所述在离线数仓中查询符合所述标签规则的用户群体,包括:
利用第二数据库引擎将所述标签规则转化为第二查询语句,并在所述离线数仓中执行所述第二查询语句以得到符合所述标签规则的用户群体。
8.根据权利要求1至7任一项所述的用户分群方法,其特征在于,还包括:
将得到的符合所述标签规则的用户群体进行打包处理得到相应的人群包;
将所述人群包上传至云存储平台,以便所述客户端从所述云存储平台下载所述人群包。
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器;其中所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至8任一项所述的用户分群方法。
10.一种计算机可读存储介质,其特征在于,用于存储计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至8任一项所述的用户分群方法。
CN202310575390.4A 2023-05-19 2023-05-19 一种用户分群方法、设备及存储介质 Pending CN116595106A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310575390.4A CN116595106A (zh) 2023-05-19 2023-05-19 一种用户分群方法、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310575390.4A CN116595106A (zh) 2023-05-19 2023-05-19 一种用户分群方法、设备及存储介质

Publications (1)

Publication Number Publication Date
CN116595106A true CN116595106A (zh) 2023-08-15

Family

ID=87598771

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310575390.4A Pending CN116595106A (zh) 2023-05-19 2023-05-19 一种用户分群方法、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116595106A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116821138A (zh) * 2023-08-24 2023-09-29 腾讯科技(深圳)有限公司 一种数据处理方法及相关设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116821138A (zh) * 2023-08-24 2023-09-29 腾讯科技(深圳)有限公司 一种数据处理方法及相关设备
CN116821138B (zh) * 2023-08-24 2023-12-15 腾讯科技(深圳)有限公司 一种数据处理方法及相关设备

Similar Documents

Publication Publication Date Title
CN108255958B (zh) 数据查询方法、装置和存储介质
US9680782B2 (en) Identifying relevant content in email
CN107515878B (zh) 一种数据索引的管理方法及装置
CN110647512B (zh) 一种数据存储和分析方法、装置、设备和可读介质
EP2924594A1 (en) Data encoding and corresponding data structure in a column-store database
CN111917863B (zh) 消息推送方法、装置、电视机设备及计算机存储介质
CN104951340A (zh) 一种信息处理方法及装置
AU2017243870B2 (en) "Methods and systems for database optimisation"
CN104601736A (zh) 一种短url服务的实现方法及装置
CN105512283A (zh) 数据质量管理控制方法及装置
CN110502545B (zh) 数据存储方法、装置、设备及计算机可读存储介质
CN102054000A (zh) 数据查询方法、装置及***
US10262055B2 (en) Selection of data storage settings for an application
US20180336228A1 (en) Automated data infrastructure and data discovery architecture
CN116595106A (zh) 一种用户分群方法、设备及存储介质
CN102779138A (zh) 实时数据的硬盘存取方法
CN114116827B (zh) 一种用户画像数据的查询***及方法
CN114327857A (zh) 操作数据处理方法、装置、计算机设备和存储介质
CN113177090A (zh) 数据处理方法及装置
CN110413588B (zh) 分布式对象存储方法、装置、计算机设备和存储介质
CN112650777A (zh) 数据仓库的制作方法、装置、终端设备及计算机存储介质
CN112347355A (zh) 数据处理方法、装置、服务器及存储介质
CN111858617A (zh) 用户查找方法和装置、计算机可读存储介质、电子设备
CN105095224A (zh) 一种在移动通信网络中进行olap分析的方法、装置和***
CN104123307A (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