一种基于位图查询用户留存的数据处理方法与流程

文档序号:36821293发布日期:2024-01-26 16:29阅读:13来源:国知局
一种基于位图查询用户留存的数据处理方法与流程

本发明涉及数据处理,具体涉及一种基于位图查询用户留存的数据处理方法。


背景技术:

1、随着现代信息科技的快速发展以及大数据技术的日益完善与普及,越来越多的行业与公司使用大数据对自身数据进行处理分析,如利用数据来对业务发展状态及用户生命周期进行分析。在目前互联网人口红利越来越弱的条件下,用户越来越难获取,竞争也是越来越激烈,如何留住用户比获得用户更重要。在某段时间使用了产品,过了一段时间后仍旧继续使用该产品的用户,称为留存用户,留存用户占当时新增用户的比例即是用户留存率。

2、因此分析业务或应用的用户留存是衡量是否能够可持续发展的重要指标。

3、现有常用用户留存的计算方式为:预设留存粒度为天,留存周期比如次日、三日、七日,三十日留存,使用调度系统每天定时根据预设的留存周期分别计算对应周期的用户留存。比如计算次日留存用户或次日留存率,分别获取第一天的活跃用户列表与第二天的活跃用户列表,使用第一天的用户id关联第二天的用户id,第一天能关联到第二天的用户id就是第一天在第二天的留存用户,对第一天在第二天的留存用户去重求和即为留存用户数,留存用户数/第一天的用户数即为用户留存率,留存粒度为周、月、年等类似。常规用户留存计算不能自定义留存周期及留存粒度来获取对应用户留存数据,需要根据预设的留存周期提前开发对应数据模型及逻辑,当设定新的留存周期及留存粒度时需要额外开发;并且查询效率较为低下,响应业务较慢。

4、因此,本发明提供了一种基于位图查询用户留存的数据处理方法,以至少解决上述部分技术问题。


技术实现思路

1、本发明要解决的技术问题是:提供一种基于位图查询用户留存的数据处理方法,实现不受预聚合模型限制,能自定义留存周期和留存粒度计算用户留存。

2、为实现上述目的,本发明采用的技术方案如下:

3、本发明要解决的技术问题是:提供一种基于位图查询用户留存的数据处理方法,实现不受预聚合模型限制,能自定义留存周期和留存粒度计算用户留存。

4、为实现上述目的,本发明采用的技术方案如下:

5、一种基于位图查询用户留存的数据处理方法,包括以下步骤:

6、步骤1、创建一个以天为维度的日活跃用户表,将每天活跃的用户id写入日活跃用户表对应天之后;

7、步骤2、将每个用户id编码为唯一的整数,将整数转换为位图;

8、步骤3、创建一个以天为维度的日活跃用户位图表,将每天活跃的所有用户id的位图合并为一个第一位图,将第一位图写入日活跃用户位图表对应天之后;

9、步骤4、根据设定的查询时间、留存粒度和留存周期确定待计算的时间,提取日活跃用户位图表中待计算的时间内的天和对应第一位图,得到第一数据集;

10、步骤5、根据设定的留存粒度和留存周期,将待计算的时间分为不同的时间段,将每个时间段下的所有第一位图合并为一个第二位图,创建包含每个时间段和对应第二位图的第二数据集;

11、步骤6、在第二数据集每个时间段的第二位图后添加相邻下一时间段的第二位图,得到第三数据集;

12、步骤7、计算每个时间段的第二位图和相邻下一时间段的第二位图的交集,得到用户留存位图,将用户留存位图写入第三数据集中,得到第四数据集;

13、步骤8、基于每个时间段的第二位图和用户留存位图得到每个时间段的活跃用户数和下一时间段的留存用户数,由活跃用户数和留存用户数得到用户留存率。

14、进一步地,还包括构建用户定义函数,用户定义函数包括将整数转化为位图的第一函数、将多个位图合并为一个位图的第二函数、计算位图中存数的第三函数、计算两个位图交集的第四函数。

15、进一步地,步骤2中,采用第一函数将整数转换为位图;步骤3中,采用第二函数将每天活跃的所有用户id的位图合并为一个第一位图;步骤5中,采用第二函数将每个时间段下的所有第一位图合并为一个第二位图;步骤7中,采用第四函数计算每个时间段的第二位图和相邻下一时间段的第二位图的交集;步骤8中,采用第三函数分别计算每个时间段的第二位图的活跃用户和用户留存位图的留存用户。

16、进一步地,步骤2中,采用高效压缩位图作为整数转换位图的处理方式。

17、进一步地,步骤2中,整数为从1开始的自增整数。

18、进一步地,步骤2包括构建用户字典表,在用户字典表中建立用户id与字典id的一对一的映射关系,通过映射关系编码用户id每个字典id为唯一的整数。

19、进一步地,步骤4中,待计算的时间为查询时间加上查询时间的终止点之后一个留存周期的时间。

20、进一步地,步骤6包括:步骤61、根据时间排序,在第二数据集每个时间段的第二位图后添加两列自增序号,第一列自增序号为序号1,第二列自增序号为序号2,序号1从1开始,序号2从0开始;步骤62、提取序号1等于序号2的两个第二位图,将提取的两个第二位图依次添加至序号1对应的时间段之后,得到第三数据集。

21、进一步地,步骤8包括:步骤81、根据当前时间段的第二位图得到当前时间段的活跃用户数;步骤82、根据用户留存位图得到下一时间段的留存用户数;步骤83、下一时间段的留存用户数除以当前时间段的活跃用户数得到对应的用户留存率。

22、进一步地,留存粒度为以天、周、月或年为单位的日期维度。

23、与现有技术相比,本发明具有以下有益效果:

24、本发明通过将用户id进行编码转化为整数和位图,生成包括有存储每天活跃用户的日活跃用户位图表,当用户自定义时间范围、留存周期和留存粒度时,根据以上自定义信息从日活跃用户位图表对位图求并集、交集和位图基数,得到留存用户数及用户留存率。本发明解决了现有调度系统预聚合方式不能自定义留存周期和留存粒度的弊端,并且采用位图存储大大降低了数据存储空间,提高了查询效率。

25、本发明采用位图存储,存储占用小,通过位图的交并集提高用户留存的查询效率;对用户id进行编码,支持非整数型用户id的位图计算;计算留存用户及用户留存,快速响应业务需求。



技术特征:

1.一种基于位图查询用户留存的数据处理方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种基于位图查询用户留存的数据处理方法,其特征在于,还包括构建用户定义函数,用户定义函数包括将整数转化为位图的第一函数、将多个位图合并为一个位图的第二函数、计算位图中存数的第三函数、计算两个位图交集的第四函数。

3.根据权利要求2所述的一种基于位图查询用户留存的数据处理方法,其特征在于,步骤2中,采用第一函数将整数转换为位图;步骤3中,采用第二函数将每天活跃的所有用户id的位图合并为一个第一位图;步骤5中,采用第二函数将每个时间段下的所有第一位图合并为一个第二位图;步骤7中,采用第四函数计算每个时间段的第二位图和相邻下一时间段的第二位图的交集;步骤8中,采用第三函数分别计算每个时间段的第二位图的活跃用户和用户留存位图的留存用户。

4.根据权利要求1所述的一种基于位图查询用户留存的数据处理方法,其特征在于,步骤2中,采用高效压缩位图作为整数转换位图的处理方式。

5.根据权利要求1所述的一种基于位图查询用户留存的数据处理方法,其特征在于,步骤2中,整数为从1开始的自增整数。

6.根据权利要求1所述的一种基于位图查询用户留存的数据处理方法,其特征在于,步骤2包括构建用户字典表,在用户字典表中建立用户id与字典id的一对一的映射关系,通过映射关系编码用户id,每个字典id为唯一的整数。

7.根据权利要求1所述的一种基于位图查询用户留存的数据处理方法,其特征在于,步骤4中,待计算的时间为查询时间加上查询时间的终止点之后一个留存周期的时间。

8.根据权利要求1所述的一种基于位图查询用户留存的数据处理方法,其特征在于,步骤6包括:步骤61、根据时间排序,在第二数据集每个时间段的第二位图后添加两列自增序号,第一列自增序号为序号1,第二列自增序号为序号2,序号1从1开始,序号2从0开始;步骤62、提取序号1等于序号2的两个第二位图,将提取的两个第二位图依次添加至序号1对应的时间段之后,得到第三数据集。

9.根据权利要求1所述的一种基于位图查询用户留存的数据处理方法,其特征在于,步骤8包括:步骤81、根据当前时间段的第二位图得到当前时间段的活跃用户数;步骤82、根据用户留存位图得到下一时间段的留存用户数;步骤83、下一时间段的留存用户数除以当前时间段的活跃用户数得到对应的用户留存率。

10.根据权利要求1所述的一种基于位图查询用户留存的数据处理方法,其特征在于,留存粒度为以天、周、月或年为单位的日期维度。


技术总结
本发明公开了一种基于位图查询用户留存的数据处理方法,所述方法通过将用户id进行编码转化为整数和位图,生成存储有每天活跃用户的日活跃用户位图表,当用户自定义时间范围、留存周期和留存粒度时,根据以上自定义信息从日活跃用户位图表对位图求并集、交集和位图基数,得到留存用户数及用户留存率。本发明解决了现有调度系统预聚合方式不能自定义留存周期和留存粒度的弊端,并且采用位图存储大大降低了数据存储空间,提高了查询效率。

技术研发人员:向才锋,陶赵文,张自平,刘毅强
受保护的技术使用者:云筑信息科技(成都)有限公司
技术研发日:
技术公布日:2024/1/25
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1