CN112269726A - 一种数据处理方法及装置 - Google Patents
一种数据处理方法及装置 Download PDFInfo
- Publication number
- CN112269726A CN112269726A CN202011137850.8A CN202011137850A CN112269726A CN 112269726 A CN112269726 A CN 112269726A CN 202011137850 A CN202011137850 A CN 202011137850A CN 112269726 A CN112269726 A CN 112269726A
- Authority
- CN
- China
- Prior art keywords
- target
- user
- behavior
- preset
- bitmap
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 32
- 230000006399 behavior Effects 0.000 claims abstract description 455
- 238000012545 processing Methods 0.000 claims abstract description 31
- 238000013500 data storage Methods 0.000 claims abstract description 26
- 230000014759 maintenance of location Effects 0.000 claims description 25
- 238000012546 transfer Methods 0.000 claims description 21
- 230000000717 retained effect Effects 0.000 claims description 16
- 230000014509 gene expression Effects 0.000 claims description 7
- 238000004458 analytical method Methods 0.000 claims description 6
- 238000007405 data analysis Methods 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 description 46
- 238000003860 storage Methods 0.000 description 43
- 238000010586 diagram Methods 0.000 description 29
- 238000000034 method Methods 0.000 description 17
- 238000004590 computer program Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000007704 transition Effects 0.000 description 3
- 230000003542 behavioural effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3438—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种数据处理方法及装置,包括:获取目标用户的与预设行为对应的用户行为数据;确定与所述目标用户的所述预设行为唯一对应的目标位图,其中,不同所述目标用户的所述预设行为对应不同的位图;利用所述目标位图存储所述用户行为数据;利用所述目标位图进行针对所述用户行为数据的分析处理,能够优化hive框架下的数据存储,进而提升数据运算的效率和灵活度,以及查询的便利性。
Description
技术领域
本申请涉及数据处理技术领域,特别涉及一种数据处理方法及装置。
背景技术
在增长黑客中,常用增长“海盗指标(Pirate Metrics)”进行增长评估,以及构建用户行为分层标签支持增长投放。以上指标/标签的计算上有两个特点:1、都涉及到用户一段时间的用户行为状态变化;2、随着实际业务发展和技术变迁,具体指标的使用和口径定义很可能会做出适应性调整。
当前,基于hive计算框架,通常采用两种模式实现增长指标的计算:1、基于每天的行为中间表进行计算,可以灵活地满足业务发展和技术变迁导致的计算变更,但是这种计算模式在某些指标的计算上非常消耗资源、计算时间难以确保。2、构建保留与计算指标相关的用户状态表,可以以较少的计算资源实现相关指标的计算,但是难以灵活适应计算指标的调整。而目前虽然在其他计算框架下,存在一些基于位图的存储和计算方法,以在一定程度上提升运算的效率和灵活性,但基础思想均是按照timebase(时间基准)去实现位图的存储和计算,即一个时刻一行记录全部用户的某个行为,一方面,在存储上,基于timebase的存储模式,20亿用户记录需要20亿bit,在hive上只能通过字符串存储,但实际上20亿位的字符串无法实现hive上的存储;另一方面,在计算和查询上,实际应用中更多是对单用户行为进行查询,timebase不能满足直观的单用户行为查询。综上,在实现本发明的过程中,发明人发现现有技术中至少存在hive框架下计算效能和灵活度低,现有位图存储方式难以在hive框架上实现以及不便查询的问题。
发明内容
有鉴于此,本申请的目的在于提供一种数据处理方法及装置,能够优化hive框架下的数据存储,进而提升数据运算的效率和灵活度,以及查询的便利性。其具体方案如下:
第一方面,本申请公开了一种数据处理方法,应用于hive框架,包括:
获取目标用户的与预设行为对应的用户行为数据;
确定与所述目标用户的所述预设行为唯一对应的目标位图,其中,不同所述目标用户的所述预设行为对应不同的位图;
利用所述目标位图存储所述用户行为数据;
利用所述目标位图进行针对所述用户行为数据的分析处理。
可选的,所述利用所述目标位图存储所述用户行为数据,包括:
基于预设的映射关系,确定与所述用户行为数据对应的行为标识以得到相应的目标行为标识;
将所述目标行为标识存储至所述目标位图。
可选的,所述将所述目标行为标识存储至所述目标位图,包括:
将所述目标行为标识直接添加至所述目标位图的预设位置。
可选的,所述利用所述目标位图进行针对所述用户行为数据的分析处理,包括:
针对任一所述目标用户对应的所述目标位图,确定最后一个存储至所述目标位图的行为标识对应的行为时间数据与第一目标时间段的第一时间间隔以及与第二目标时间段的第二时间间隔;
分别利用所述第一时间间隔和所述第二时间间隔以及所述目标位图判断所述目标用户在所述第一目标时间段以及所述第二目标时间段是否存在所述预设行为;
若所述目标用户在所述第一目标时间段以及所述第二目标时间段均存在所述预设行为,则确定所述目标用户为留存用户;其中,所述第二目标时间段为所述第一目标时间段的下一时间段;
统计所述留存用户的第一用户数量;
统计在所述第一目标时间段存在所述预设行为的所述目标用户的第二用户数量;
利用所述第一用户数量和所述第二用户数量确定用户留存率。
可选的,所述将所述目标行为标识存储至所述目标位图,包括:
若所述目标位图中的最近行为标识表示所述目标用户在上一时间段不存在该预设行为,则将所述目标位图中的预设行为标识加1,并将所述最近行为标识更新为所述目标行为标识;
若所述目标位图中的最近行为标识表示所述目标用户在上一时间段存在该预设行为,则对所述最近行为标识、所述预设行为标识进行转移记录,以迁移至所述目标位图中的第一预设历史行为区域,并将所述预设行为标识置0,然后将所述最近行为标识更新为所述目标行为标识。
可选的,所述利用所述目标位图存储所述用户行为数据,包括:
将存在所述预设行为的行为时间数据存储至所述目标位图,将不存在所述预设行为的所述行为时间数据丢弃。
可选的,所述利用所述目标位图进行针对所述用户行为数据的分析处理,包括:
利用第一目标时间段以及第二目标时间段对应的正则表达式对任一所述目标用户的所述目标位图进行匹配,若在所述目标位图中匹配到所述第一目标时间段和所述第二目标时间段,则判定该目标位图对应的所述目标用户为留存用户,其中,所述第二目标时间段为所述第一目标时间段的下一时间段;
统计所述留存用户的第一用户数量;
统计匹配到所述第一目标时间段的所述目标位图的数量以得到第二用户数量;
利用所述第一用户数量和所述第二用户数量确定用户留存率。
可选的,所述利用所述目标位图存储所述用户行为数据,包括:
基于所述用户行为数据更新所述目标位图的最近行为区域中的目标数据;其中,所述目标数据表示当前第一预设分组间隔内所述目标用户的所述预设行为;
确定出当前行为时间数据与第一预设基准时间之间的第一目标时间间隔,利用所述第一预设分组间隔判断所述第一目标时间间隔是否满足预设数据转移条件,若所述第一目标时间间隔满足所述预设数据转移条件,则将所述目标数据转移至所述目标位图中的第二预设历史行为区域。
可选的,所述利用所述目标位图进行针对所述用户行为数据的分析处理,包括:
针对任一目标用户,确定目标时间段对应的所述目标位图中的分组位图片段;
利用所述目标时间段、所述分组位图片段、所述第一预设分组间隔以及所述第一预设基准时间进行位运算,确定所述目标时间段以及所述目标时间段的下一时间段所述目标用户是否存在所述预设行为;
若所述目标用户在所述目标时间段以及所述目标时间段的下一时间段均存在所述预设行为,则确定所述目标用户为留存用户;其中,所述分组位图片段为存储所述目标时间段对应的所述目标数据的位图片段;
统计所述留存用户的第一用户数量;
统计在所述目标时间段存在所述预设行为的第二用户数量;
利用所述第一用户数量和所述第二用户数量确定用户留存率。
可选的,所述确定与所述目标用户的所述预设行为唯一对应的目标位图,包括:
确定出当前行为时间数据与第二预设基准时间之间的第二目标时间间隔,利用第二预设分组间隔判断所述第二目标时间间隔是否满足预设MAP创建条件;
若所述第二目标时间间隔满足所述预设MAP创建条件,则创建对应的MAP结构;其中,所述MAP结构包括用于存储VALUE值的所述目标位图的位图片段,并且,所述VALUE值用于表示所述第二预设分组间隔内所述目标用户的所述预设行为;将当前所述第二预设分组间隔内的预设时刻确定为所述MAP结构的KEY值;相应的,所述利用所述目标位图存储所述用户行为数据,包括:利用所述用户行为数据确定出所述MAP结构的VALUE值,然后将该VALUE值存储至所述位图片段;
若所述第二目标时间间隔没有满足所述预设MAP创建条件,则从已存在的MAP结构中确定出与所述目标用户的所述预设行为对应的MAP结构以得到目标MAP结构;相应的,所述利用所述目标位图存储所述用户行为数据,包括:利用所述用户行为数据更新所述目标MAP结构的VALUE值。
可选的,所述利用所述目标位图进行针对所述用户行为数据的分析处理,包括:
针对任一目标用户的所述目标位图,确定目标时间段对应MAP结构;
利用所述目标时间段、该MAP结构中的位图片段、所述第二预设分组间隔以及所述第二预设基准时间进行位运算,确定所述目标时间段以及所述目标时间段的下一时间段所述目标用户是否存在所述预设行为;
若所述目标用户在所述目标时间段以及所述目标时间段的下一时间段均存在所述预设行为,则确定当前目标用户为留存用户;
统计所述留存用户的第一用户数量;
统计在所述目标时间段的存在所述预设行为的第二用户数量;
利用所述第一用户数量和所述第二用户数量确定用户留存率。
第二方面,本申请公开了一种数据处理装置,应用于hive框架,包括:
用户数据获取模块,用于获取目标用户的与预设行为对应的用户行为数据;
目标位图确定模块,用于确定与所述目标用户的所述预设行为唯一对应的目标位图,其中,不同所述目标用户的所述预设行为对应不同的位图;
用户数据存储模块,用于利用所述目标位图存储所述用户行为数据;
用户数据分析模块,用于利用所述目标位图进行针对所述用户行为数据的分析处理。
第三方面,本申请公开了一种电子设备,包括处理器和存储器;其中,
所述存储器,用于保存计算机程序;
所述处理器,用于执行所述计算机程序以实现前述的数据处理方法。
第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述的数据处理方法。
可见,本申请先获取目标用户的与预设行为对应的用户行为数据,然后确定与所述目标用户的所述预设行为唯一对应的目标位图,其中,不同所述目标用户的所述预设行为对应不同的位图,之后利用所述目标位图存储所述用户行为数据,最后利用所述目标位图进行针对所述用户行为数据的分析处理。也即,本申请中目标用户的预设行为对应的用户行为数据存储于该预设行为唯一对应的目标位图中,不同用户的该预设行为对应不同的位图,并且,利用这样的目标位图进行针对用户行为数据的分析处理,能够优化hive框架下的数据存储,进而提升数据运算的效率和灵活度,以及查询的便利性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为申请提供的数据处理方案所适用的***框架示意图;
图2为本申请公开的一种数据处理方法流程图;
图3为本申请公开的一种具体的用户行为数据存储示意图;
图4为本申请公开的一种具体的用户行为数据存储示意图;
图5为本申请公开的一种具体的用户行为数据运算示意图;
图6为本申请公开的一种具体的用户行为数据存储示意图;
图7为本申请公开的一种具体的数据处理方法流程图;
图8为本申请公开的一种具体的用户行为数据存储示意图;
图9为本申请公开的一种具体的数据处理方法流程图;
图10为本申请公开的一种基于日期编码位图的多维度组合示意图;
图11为本申请公开的一种具体的用户行为数据存储示意图;
图12为本申请公开的一种具体的用户行为数据存储示意图;
图13为本申请公开的一种具体的用户行为数据存储示意图;
图14为本申请公开的一种具体的用户行为数据存储示意图;
图15为本申请公开的一种具体的用户行为数据存储示意图;
图16为本申请公开的一种具体的数据处理方法流程图;
图17为本申请公开的一种具体的用户行为数据存储示意图;
图18为本申请提供的一种数据处理装置结构示意图;
图19为本申请提供的一种电子设备结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
当前,基于hive计算框架,通常采用两种模式实现增长指标的计算:1、基于每天的行为中间表进行计算,可以灵活地满足业务发展和技术变迁导致的计算变更,但是这种计算模式在某些指标的计算上非常消耗资源、计算时间难以确保。2、构建保留与计算指标相关的用户状态表,可以以较少的计算资源实现相关指标的计算,但是难以灵活适应计算指标的调整。而目前虽然在其他计算框架下,存在一些基于位图的存储和计算方法,以在一定程度上提升运算的效率和灵活性,但基础思想均是按照timebase去实现位图的存储和计算,即一个时刻一行记录全部用户的某个行为,一方面,在存储上,基于timebase的存储模式,20亿用户记录需要20亿bit,在hive上只能通过字符串存储,但实际上20亿位的字符串无法实现hive上的存储;另一方面,在计算和查询上,实际应用中更多是对单用户行为进行查询,timebase不能满足直观的单用户行为查询。综上,在实现本发明的过程中,发明人发现现有技术中至少存在hive框架下计算效能和灵活度低,现有位图存储方式难以在hive框架上实现以及不便查询的问题。
本申请的数据存储方案中,采用的***框架具体可以参见图1所示,具体可以包括:后台服务器01和与后台服务器01建立通信连接的若干数量的用户终端02。
其中,用户终端02包括智能手机、平板电脑、台式计算机等。
本申请中,用户终端02用于将采集到的用户行为数据上传至后台服务器01,相应的,后台服务器01用于执行数据处理方法步骤,包括获取目标用户的与预设行为对应的用户行为数据;确定与所述目标用户的所述预设行为唯一对应的目标位图,其中,不同所述目标用户的所述预设行为对应不同的位图;利用所述目标位图存储所述用户行为数据;利用所述目标位图进行针对所述用户行为数据的分析处理。
参见图2所示,本申请实施例公开了一种数据处理方法,应用于hive框架,包括:
步骤S11:获取目标用户的与预设行为对应的用户行为数据。
在具体的实施方式中,可以对历史用户数据进行存储,也可以对实时产生的用户数据进行存储。
其中,所述用户行为数据可以包括行为时间数据以及行为时间数据对应行为状态,也即,包括时间段以及时间段内是否存在预设行为。
步骤S12:确定与所述目标用户的所述预设行为唯一对应的目标位图,其中,不同所述目标用户的所述预设行为对应不同的位图。
也即,本实施例中任一目标用户的任一行为均对应唯一的位图。不同用户的同一行为存储在不同的位图上。
并且,在具体的实施方式中,本实施例可以查找是否存在所述目标用户的所述预设行为唯一对应的目标位图,若不存在,则添加所述目标实体的所述预设行为对应的数据记录,所述数据记录包括用户标识、所述目标位图、以及所述预设行为对应的首次操作日期。
也即,若所述目标用户首次出现所述预设行为,则添加所述目标用户的所述预设行为的数据记录,否则,从已存在的位图中确定出所述目标用户的与所述预设行为对应的目标位图。
步骤S13:利用所述目标位图存储所述用户行为数据。
步骤S14:利用所述目标位图进行针对所述用户行为数据的分析处理。
在具体的实施方式中,本实施例可以基于预设的映射关系,确定与所述用户行为数据对应的行为标识以得到相应的目标行为标识;将所述目标行为标识存储至所述目标位图。其中,所述预设的映射关系可以为存在预设行为则对应的目标行为标识为1,否则为0。
在第一种具体的实施方式中,可以将所述目标行为标识直接添加至所述目标位图的预设位置。比如,所述目标位图的头部或者尾部。
下面以某款软件产品的用户行为数据存储为例,对本实施方式进行说明。
假设这款软件产品为音乐软件,用户可以登录该音乐软件进行包括但不限于听歌、收藏、对喜欢的歌手送花等行为。后台服务器可以获取目标用户的预设行为的用户行为数据,具体的,可以基于对用户操作流水的查询,得到目标用户某一时间段下的操作行为数据,进而得到目标用户与预设行为对应的用户行为数据,若本地不存在与该目标用户的该预设行为唯一对应的目标位图,则添加该目标用户的该预设行为对应的数据记录,数据记录包括该目标用户的用户标识、与该目标用户的该预设行为唯一对应的目标位图、以及该预设操作类型对应的首次操作日期即该时间段。否则,从已存在的位图中确定出目标用户的与所述预设行为对应的目标位图。基于预设的映射关系,确定与所述用户行为数据对应的行为标识以得到相应的目标行为标识,然后将所述目标行为标识直接添加至所述目标位图的预设位置。例如,参见图3所示,图3为本申请实施例公开的一种具体的用户行为数据存储示意图。基于对用户操作流水的查询,得到目标用户某一时间段下的操作行为,进而得到目标用户与预设行为对应的用户行为数据,包括该时间段以及该时间段是否存在该预设行为,对于新用户,即过去没有该预设行为的用户,添加对应的数据记录。记录该时间段为用户首次操作时间,确定出对应的目标行为标识为1,将该目标行为标识添加至该用户的该预设行为对应bitmap;对于老用户,即过去有该预设行为的用户,在对应的上个时间段的bitmap上修改:对于该时间段内有该预设行为的用户,在对应的bitmap左侧增加1,对于没有该预设行为的用户,在对应的bitmap左侧增加0。参见图4所示,图4为本申请实施例公开的一种具体的用户行为数据存储示意图,对于用户ID=25的用户,若该用户在20200104有登陆行为,则该用户登录行为对应的bitmap更新为“1101”,否则该用户登录行为对应的bitmap更新为“0101”。
进一步的,在上述存储方式的基础上,可以实现相应指标的计算,例如:
(1)计算目标时间段的新增用户。目标时间段的新增用户为首次操作时间为该目标时间段的用户,通过存储的数据记录,可以得到首次操作时间为目标时间段的用户标识,以计算出新增用户。如图4所示,通过首次登陆日期可以表示用户ID=25的用户为20200101的新用户。可以理解的是,计算20200101的新增用户,可以确定出首次登陆日期为20200101的数据记录中的用户标识,以得到20200101的新增用户。
(2)计算目标时间段的操作用户。确定出当前目标位图存储的最后一个操作行为对应的操作时间段,得到最终时间段,计算待计算目标时间段与所述最终时间段的时间间隔d,利用substring(bitmap,d+1,1)计算目标时间段的操作用户,substring(bitmap,d+1,1)为1的用户为目标时间段的操作用户,bitmap为目标位图。如图5所示,图5为本申请实施例公开的一种具体的用户行为数据运算示意图,当目标位图对应的最终时间段为20200104,计算20200102登陆的用户,其中,时间间隔d=diff(20200104,20200102)=2,从而确定出用户ID=24为目标用户。
(3)用户留存率的计算。用户留存率为目标时间段且该目标时间段的下一时间段均有对应操作行为的操作用户数/目标时间段的操作用户数。比如,登录行为。
在具体的实施方式中,可以针对任一所述目标用户对应的所述目标位图,确定最后一个存储至所述目标位图的行为标识对应的行为时间数据与第一目标时间段的第一时间间隔以及与第二目标时间段的第二时间间隔;分别利用所述第一时间间隔和所述第二时间间隔以及所述目标位图判断所述目标用户在所述第一目标时间段以及所述第二目标时间段是否存在所述预设行为;若所述目标用户在所述第一目标时间段以及所述第二目标时间段均存在所述预设行为,则确定所述目标用户为留存用户;其中,所述第二目标时间段为所述第一目标时间段的下一时间段;统计所述留存用户的第一用户数量;统计在所述第一目标时间段存在所述预设行为的所述目标用户的第二用户数量;利用所述第一用户数量和所述第二用户数量确定用户留存率。
具体的,用户留存率的计算可以通过如下公式计算。
也即,用户留存率的计算可以基于(2)的计算实现。
其中,若以一天为一个时间段,则用户留存率即为次日留存率。
在第二种具体的实施方式中,若所述目标位图中的最近行为标识表示所述目标用户在上一时间段不存在该预设行为,则将所述目标位图中的预设行为标识加1,并将所述最近行为标识更新为所述目标行为标识;若所述目标位图中的最近行为标识表示所述目标用户在上一时间段存在该预设行为,则对所述最近行为标识、所述预设行为标识进行转移记录,以迁移至所述目标位图中的第一预设历史行为区域,并将所述预设行为标识置0,然后将所述最近行为标识更新为所述目标行为标识。
其中,在一些实施例中,所述对所述最近行为标识、所述预设行为标识进行转移记录,以迁移至所述目标位图中的第一预设历史行为区域,具体可以为将所述最近行为标识、所述预设行为标识直接迁移至所述目标位图中的第一预设历史行为区域。在另外一些实施例中,可以将所述预设行为标识转换为所述预设行为对应的所述目标行为标识的表示形式,得到对应的转换后数据,将所述最近行为标识和所述转换后数据迁移至所述第一预设历史行为区域。
可以理解的是,本实施例基于RLE(即run-length encoding,行程长度编码)压缩编码对预设行为对应的用户行为数据进行压缩存储,避免了由于预设行为稀疏导致的存储成本高、降低计算效率的问题。
例如,在实际用户业务中,一般用户的操作行为是比较稀疏的,按照前述第一种具体的实施方式进行存储,实际上会构建比较大的稀疏矩阵,导致存储成本相对比较大,也影响计算效率。在业务的实际发展中,操作沉默用户(一段时间没该操作的用户)的占比会越来越大,因此可以基于RLE行程长度编码压缩算法进行存储优化。具体的,目标位图的存储包括3部分:最近行为标识、预设行为标识以及历史行为,在实际用户业务场景下,目标位图可以包括(1)最近行为标识,用于表示最近时间段操作状态(数据类型为binary),记为status;(2)预设行为标识,对中间沉默状态应用RLE编码压缩存储(数据类型为smallint),记为zero;(3)历史行为(数据类型为string),记为bitmap,参见图6所示,图6为本申请实施例公开的一种具体的用户行为数据存储示意图。具体存储实现为:可以基于对用户操作流水的查询,得到用户某一时间段下的操作行为,进而得到目标用户与预设行为对应的用户行为数据,包括该时间段以及该时间段是否存在该预设行为,对于新用户,即过去没有该预设行为的用户,添加新的数据记录。记录该时间段为用户首次操作时间,对应的status标识为1。对于老用户,即过去有过该预设行为的用户,在其上个时间段的status/zero/bitmap上修改。对于上个时间段status为1的用户,更新bitmap为concat(status,repeat(“0”,zero),bitmap),更新zero=0,status更新为当前时间段的行为标识;对于上个时间段status为0的用户,zero更新为zero+1,status更新为当前时间段的行为标识。
可以理解的是,RLE编码压缩会一定程度缩减记录存储,计算上与前述第一种具体的实施方式中的目标位图计算实现类似,但是在某些计算上,需要对位图进行解析后才能进行。
可见,本申请实施例获取目标用户的与预设行为对应的用户行为数据,然后确定与所述目标用户的所述预设行为唯一对应的目标位图,其中,不同所述目标用户的所述预设行为对应不同的位图,之后利用所述目标位图存储所述用户行为数据,最后利用所述目标位图进行针对所述用户行为数据的分析处理。也即,本申请中目标用户的预设行为对应的用户行为数据存储于该预设行为唯一对应的目标位图中,不同用户的该预设行为对应不同的位图。,并且,利用这样的目标位图进行针对用户行为数据的分析处理,能够优化hive框架下的数据存储,进而提升数据运算的效率和灵活度,以及查询的便利性。
需要说明的是,本申请提供的位图存储与运算模式,可以应用于包括但不限于用户行为、内容/道具生产/消费、商品/物品销售/供应等相关数据体系构建。并且,不限与依赖hive,可以基于Spark/Pyhton/C/C++作出类似的数据体系建设。
参见图7所示,本申请实施例公开了一种具体的数据处理方法,应用于hive框架,包括:
步骤S21:获取目标用户的与预设行为对应的用户行为数据。
步骤S22:确定与所述目标用户的所述预设行为唯一对应的目标位图,其中,不同所述目标用户的所述预设行为对应不同的位图。
步骤S23:将存在所述预设行为的行为时间数据存储至所述目标位图,将不存在所述预设行为的所述行为时间数据丢弃。
也即,本申请实施例只将存在预设行为的行为时间数据存储至所述目标位图中。
可以理解的是,基于日期编码能够相当程度地缩减存储,特别是对于运行时间较长的业务,例如,参见图8所示,图8为本申请实施例公开的一种具体的用户行为数据存储示意图,bitmap字段不再记录的“01”编码,而是记录用户操作日期。
步骤S24:利用所述目标位图进行针对所述用户行为数据的分析处理。
在上述存储方式的基础上,可以实现相应指标的计算,例如:
(1)计算目标时间段的新增用户,目标时间段的新增用户为首次操作时间为该目标时间段的用户,通过存储的数据记录,可以得到首次操作时间为目标时间段的用户标识,以计算出新增用户。如图8所示,通过首次登陆日期可以表示用户ID=25的用户为20200101的新用户。可以理解的是,计算20200101的新增用户,可以确定出首次登陆日期为20200101的数据记录中的用户标识,以得到20200101的新增用户。
(2)计算目标时间段的操作用户。通过对bitmap字段进行正则表达式匹配,确定是否存在该目标时间段,若匹配到则为目标时间段的操作用户。如图8中,计算20200102登陆的用户,通过对bitmap字段正则表达式匹配,确定是否存在“20200102”,若匹配到,则为20200102登陆的用户。
(3)计算用户留存率,可以利用第一目标时间段以及第二目标时间段对应的正则表达式对任一所述目标用户的所述目标位图进行匹配,若在所述目标位图中匹配到所述第一目标时间段和所述第二目标时间段,则判定该目标位图对应的所述目标用户为留存用户,其中,所述第二目标时间段为所述第一目标时间段的下一时间段;统计所述留存用户的第一用户数量;统计匹配到所述第一目标时间段的所述目标位图的数量以得到第二用户数量;利用所述第一用户数量和所述第二用户数量确定用户留存率。
参见图9所示,本申请实施例公开了一种具体的数据处理方法,应用于hive框架,包括:
步骤S31:获取目标用户的与预设行为对应的用户行为数据。
步骤S32:确定与所述目标用户的所述预设行为唯一对应的目标位图,其中,不同所述目标用户的所述预设行为对应不同的位图。
步骤S33:基于所述用户行为数据更新所述目标位图的最近行为区域中的目标数据;其中,所述目标数据表示当前第一预设分组间隔内所述目标用户的所述预设行为。
其中,本实施中的所述目标数据可以为十进制数据,也即,本实施例可以基于十进制分组编码的方式对所述用户行为数据进行存储。
在一种具体的实施方式中,若当前行为时间数据对应的时间段内存在预设行为,可以利用式2^mod(diff(d1,D1),Δ1)+bitmap更新所述目标数据,否则不对所述目标数据进行更新。其中,d1为当前用户行为数据中的行为时间数据,D1为第一预设基准时间,diff(d1,D1)为行为时间数据与第一预设基准时间的第一目标时间间隔,Δ1为第一预设分组间隔,bitmap表示所述最近行为区域,bitmap中存储所述目标数据。
在另一种具体的实施方式中,若当前行为时间数据对应的时间段内存在预设行为,可以利用式bitmap<<1+1更新所述最近行为区域中的目标数据,否则利用bitmap<<1更新所述最近行为区域中的目标数据。
并且,在另外一些实施例中,可以根据实际需求,所述目标数据可以为其他进制的数据。
步骤S34:确定出当前行为时间数据与第一预设基准时间之间的第一目标时间间隔,利用所述第一预设分组间隔判断所述第一目标时间间隔是否满足预设数据转移条件,若所述第一目标时间间隔满足所述预设数据转移条件,则将所述目标数据转移至所述目标位图中的第二预设历史行为区域。
在具体的实施方式中,可以利用mod(diff(d1,D1),Δ1)=Δ1-1判断所述第一目标时间间隔是否满足预设数据转移条件。当mod(diff(d1,D1),Δ1)=Δ1-1成立,则判定所述第一目标时间间隔满足所述预设数据转移条件。
需要指出的是,虽然基于日期编码能够相当程度地缩减存储,但是在用户活跃差异会很大的情况下,例如APP上线时间长,有些用户基本沉默,有些用户经常操作,在数据积累下,会导致出现明显的数据不均衡,在基于日期编码下,只登陆过一天的用户,其bitmap字段只占用8字节,而高活跃用户可能会占用几万字节,影响存储的平衡性以及并行计算能力,并且基于日期编码的bitmap在多维度组合的情况下,即多个bitmap需要合并为一个bitmap时,涉及到相当的计算量,参见图10所示,图10为本申请实施例公开的一种基于日期编码位图的多维度组合示意图。而且基于日期编码的bitmap在相关指标计算上,较多地使用正则表达式,因此在计算效率上存在瓶颈。而基于十进制分组编码的实现,可以利用位运算来实现计算效能的优化。
例如,参见图11所示,图11为本申请实施例公开的一种具体的用户行为数据存储示意图。以第一预设分组间隔内的用户行为数据为一个分组,每个分组由一个十进制int构成,在历史行为区域,每个分组间以‘|’间隔。第一预设分组间隔为8。具体的,设置第一预设基准时间D1,如19700101,和第一预设分组间隔Δ1,如Δ1=8;可以基于对用户操作流水的查询,得到用户某一时间段下的操作行为,进而得到目标用户与预设行为对应的用户行为数据,包括该时间段以及该时间段是否存在该预设行为,对于新用户,即过去没有该预设行为的用户,添加新的数据记录。记录该时间段为用户首次操作时间,对应的目标位图中最近行为区域即图11中的bitmap标识为1;对于老用户,即过去有过该预设行为的用户,在其上个时间段的bitmap上修改。在一种具体的实施方式中,对于该时间段内有该预设行为的用户,将其bitmap更新为2^mod(diff(d1,D1),Δ1)+bitmap,当前获取到的预设行为对应的时间段为d1,对于没有该预设行为的用户,其bitmap不变,具体可参见图12所示,图12为本申请实施例公开的一种具体的用户行为数据存储示意图。若第一目标时间间隔满足预设数据转移条件,具体的,mod(diff(d1,D1),Δ1)=Δ1-1,则转移至bitmap到bitmap_his,并清空最近行为区域的数据,bitmap_his更新为concat(bitmap,‘|’,bitmap_his),bitmap更新为空字符,具体可参见图13所示,图13为本申请实施例公开的一种具体的用户行为数据存储示意图。在另一种具体的实施方式中,对于该时间段内有该预设行为的用户,将其bitmap更新为bitmap<<1+1,对于没有该预设行为的用户,将其bitmap更新为bitmap<<1,具体可参见图14所示,图14为本申请实施例公开的一种具体的用户行为数据存储示意图。若第一目标时间间隔满足预设数据转移条件,则转移bitmap到bitmap_his,并清空最近行为区域的数据,具体可参见图15所示,图15为本申请实施例公开的一种具体的用户行为数据存储示意图。
步骤S35:利用所述目标位图进行针对所述用户行为数据的分析处理。
在具体的实施方式中,基于十进制分组编码的存储方式,针对用户行为数据对应的计算可以大部分利用位运算。
(1)计算目标时间段的新增用户,如图15所示,通过记录的首次登陆日期可以确定用户ID=25的用户为20191201的新用户。
(2)计算目标时间段的操作用户,可以先确定出目标时间段对应的目标位图中的分组位图片段,然后利用该分组位图片段进行目标时间段的操作用户的计算,如图12所示,计算20200104对应的操作用户,若2^mod(diff(d1,D1),Δ1)&bitmap>0,则为20200104时间段的操作用户。第一预设基准时间D1=20191201,目标时间段d1=20200104的用户,2^mod(diff(20200104,20191201),8)=4,而4&12>0,因此该用户为20200104的操作用户,其中&表示按位与运算。
(3)用户留存率的计算,在具体的实施方式中,可以针对任一目标用户,确定目标时间段对应的所述目标位图中的分组位图片段;利用所述目标时间段、所述分组位图片段、所述第一预设分组间隔以及所述第一预设基准时间进行位运算,确定所述目标时间段以及所述目标时间段的下一时间段所述目标用户是否存在所述预设行为;若所述目标用户在所述目标时间段以及所述目标时间段的下一时间段均存在所述预设行为,则确定所述目标用户为留存用户;其中,所述分组位图片段为存储所述目标时间段对应的所述目标数据的位图片段;统计所述留存用户的第一用户数量;统计在所述目标时间段存在所述预设行为的第二用户数量;利用所述第一用户数量和所述第二用户数量确定用户留存率。
也即,用户留存率的计算,可以基于(2)的计算实现,2^mod(diff(d1,D1),Δ1)&bitmap'>0则为留存用户,其中,bitmap'为目标时间段d1对应的分组位图片段,用户留存率计算为:
参见图16所示,本申请实施例公开的一种具体的数据处理方法,应用于hive框架,包括:
步骤S41:获取目标用户的与预设行为对应的用户行为数据。
步骤S42:确定出当前行为时间数据与第二预设基准时间之间的第二目标时间间隔,利用第二预设分组间隔判断所述第二目标时间间隔是否满足预设MAP创建条件。
也即,本申请实施例可以确定出当前获取到的行为时间数据与第二预设基准时间之间的间隔,以判断是否满足预设MAP创建条件。
步骤S43:若所述第二目标时间间隔满足所述预设MAP创建条件,则创建对应的MAP结构;其中,所述MAP结构包括用于存储VALUE值的所述目标位图的位图片段,并且,所述VALUE值用于表示所述第二预设分组间隔内所述目标用户的所述预设行为;所述目标位图与所述目标用户的所述预设行为唯一对应,不同所述目标用户的所述预设行为对应不同的位图。
在具体的实施方式中,可以当mod(diff(d2,D2),Δ2)=Δ2-1成立时,判定所述第二目标时间间隔满足所述预设MAP创建条件,其中,d2为当前行为时间数据,D2为所述第二预设基准时间,Δ2为第二预设分组间隔,diff(d2,D2)为当前行为时间数据与第二预设基准时间的第二目标时间间隔。
并且,所述VALUE值可以为十进制数。
步骤S44:将当前所述第二预设分组间隔内的预设时刻确定为所述MAP结构的KEY值。
在具体方式中,所述预设时刻可以为当前所述第二预设分组间隔对应的初始时刻。
步骤S45:利用所述用户行为数据确定出所述MAP结构的VALUE值,然后将该VALUE值存储至所述位图片段。
步骤S46:若所述第二目标时间间隔没有满足所述预设MAP创建条件,则从已存在的MAP结构中确定出与所述目标用户的所述预设行为对应的MAP结构以得到目标MAP结构。
步骤S47:利用所述用户行为数据更新所述目标MAP结构的VALUE值。
其中,关于更新MAP结构的VALUE值的具体步骤可以参考前述实施例中十进制分组编码存储方式中公开的更新最近行为区域中的目标数据的内容,在此不再进行赘述。参见图17所示,图17为本申请公开的一种具体的行为用户行为数据存储示意图。
步骤S48:利用所述目标位图进行针对所述用户行为数据的分析处理。
在具体的实施方式中,可以针对任一目标用户,确定目标时间段对应的所述目标位图中的分组位图片段;利用所述目标时间段、所述分组位图片段、所述第一预设分组间隔以及所述第一预设基准时间进行位运算,确定所述目标时间段以及所述目标时间段的下一时间段所述目标用户是否存在所述预设行为;若所述目标用户在所述目标时间段以及所述目标时间段的下一时间段均存在所述预设行为,则确定所述目标用户为留存用户;其中,所述分组位图片段为存储所述目标时间段对应的所述目标数据的位图片段;统计所述留存用户的第一用户数量;统计在所述目标时间段存在所述预设行为的第二用户数量;利用所述第一用户数量和所述第二用户数量确定用户留存率。
关于利用所述目标时间段、所述分组位图片段、所述第一预设分组间隔以及所述第一预设基准时间进行位运算的具体过程可以参考上一实施例公开的内容。
需要指出的是,基于十进制分组编码的位图存储依赖于字符串,存在两个问题:1、存储量问题,基于字符串存储消耗较大;2、不利于查询检索,而基于日期编码的位图最便于查询检索。基于hive下的map数据结构,可以更好地优化数据存储和查询检索问题。map结构存储实现与基于十进制分组编码实现类似,不同之处在于map结构存储使用map<Int,Bigint/Int>记录每组的预设时刻比如开始时刻以及十进制编码,在Hive里面,int占用4byte,支持预设分组间隔Δ<32,bigint占用8byte,支持预设分组间隔Δ<64。可以理解的是,map<Int,Int>,占用4+4byte,map<Int,bigint>,占用4+8byte,也即,map<Int,Int>一个分组占用8bytes,map<Int,bigint>一个分组占用12bytes。根据length(2Δ)可知,当Δ<23时,基于十进制分组编码存储较优,否则map数据结构存储较优。例如,若Δ=23,可知2^23=8388608,使用十进制分组编码占位7+1byte(还有分隔符|),同理,2^24使用十进制分组编码占位8+1byte(还有分隔符|),而使用map<Int,Int>,占用8byte。若Δ=8,2^8=256,使用十进制分组编码占位3+1byte(还有分隔符|),由此可见,当Δ=8,十进制分组编码的存储占用低于map<Int,Int>。
参见图18所示,本申请实施例公开了一种数据处理装置,应用于hive框架,包括:
用户数据获取模块11,用于获取目标用户的与预设行为对应的用户行为数据;
目标位图确定模块12,用于确定与所述目标用户的所述预设行为唯一对应的目标位图,其中,不同所述目标用户的所述预设行为对应不同的位图;
用户数据存储模块13,用于利用所述目标位图存储所述用户行为数据;
用户数据分析模块14,用于利用所述目标位图进行针对所述用户行为数据的分析处理。
可见,本申请实施例获取目标用户的与预设行为对应的用户行为数据,然后确定与所述目标用户的所述预设行为唯一对应的目标位图,其中,不同所述目标用户的所述预设行为对应不同的位图,之后利用所述目标位图存储所述用户行为数据,最后利用所述目标位图进行针对所述用户行为数据的分析处理。也即,本申请中目标用户的预设行为对应的用户行为数据存储于该预设行为唯一对应的目标位图中,不同用户的该预设行为对应不同的位图。,并且,利用这样的目标位图进行针对用户行为数据的分析处理,能够优化hive框架下的数据存储,进而提升数据运算的效率和灵活度,以及查询的便利性。
在第一种具体的实施方式中,所述用户数据存储模块13包括:
行为标识确定子模块,用于基于预设的映射关系,确定与所述用户行为数据对应的行为标识以得到相应的目标行为标识。
行为标识存储子模块,用于将所述目标行为标识存储至所述目标位图。
在一些实施例中,所述行为标识存储子模块,具体用于将所述目标行为标识直接添加至所述目标位图的预设位置。
相应的,所述用户数据分析模块14,具体用于针对任一所述目标用户对应的所述目标位图,确定最后一个存储至所述目标位图的行为标识对应的行为时间数据与第一目标时间段的第一时间间隔以及与第二目标时间段的第二时间间隔;分别利用所述第一时间间隔和所述第二时间间隔以及所述目标位图判断所述目标用户在所述第一目标时间段以及所述第二目标时间段是否存在所述预设行为;若所述目标用户在所述第一目标时间段以及所述第二目标时间段均存在所述预设行为,则确定所述目标用户为留存用户;其中,所述第二目标时间段为所述第一目标时间段的下一时间段;统计所述留存用户的第一用户数量;统计在所述第一目标时间段存在所述预设行为的所述目标用户的第二用户数量;利用所述第一用户数量和所述第二用户数量确定用户留存率。
在另外一些实施例中,所述行为标识存储子模块,具体包括最近行为标识判断子模块、预设行为标识更新子模块、标识数据转移子模块以及最近行为标识更新子模块,其中,
所述最近行为标识判断子模块,用于利用所述目标位图中的最近行为标识判断所述目标用户在上一时间段是否存在该预设行为。
所述预设行为标识更新子模块,用于若所述目标位图中的最近行为标识表示所述目标用户在上一时间段不存在该预设行为,则将所述目标位图中的预设行为标识加1。相应的,所述最近行为标识更新子模块,用于将所述最近行为标识更新为所述目标行为标识。
所述标识数据转移子模块,用于若所述目标位图中的最近行为标识表示所述目标用户在上一时间段存在该预设行为,则对所述最近行为标识、所述预设行为标识进行转移记录,以迁移至所述目标位图中的第一预设历史行为区域。相应的所述预设行为标识更新子模块,用于将所述预设行为标识置0;所述最近行为标识更新模块,用于将所述最近行为标识更新为所述目标行为标识。
在第二种具体的实施方式中,所述用户数据存储模块13,具体用于将存在所述预设行为的行为时间数据存储至所述目标位图,将不存在所述预设行为的所述行为时间数据丢弃。
相应的,所述用户数据分析模块14,具体用于利用第一目标时间段以及第二目标时间段对应的正则表达式对任一所述目标用户的所述目标位图进行匹配,若在所述目标位图中匹配到所述第一目标时间段和所述第二目标时间段,则判定该目标位图对应的所述目标用户为留存用户,其中,所述第二目标时间段为所述第一目标时间段的下一时间段;统计所述留存用户的第一用户数量;统计匹配到所述第一目标时间段的所述目标位图的数量以得到第二用户数量;利用所述第一用户数量和所述第二用户数量确定用户留存率。
在第三种具体的实施方式中,所述用户数据存储模块13包括:
目标数据存储子模块,用于基于所述用户行为数据更新所述目标位图的最近行为区域中的目标数据;其中,所述目标数据表示当前第一预设分组间隔内所述目标用户的所述预设行为。
第一目标时间间隔确定子模块,用于确定出行为时间数据与第一预设基准时间之间的第一目标时间间隔。
数据转移条件判断子模块,用于利用所述第一预设分组间隔判断所述第一目标时间间隔是否满足预设数据转移条件。
数据目标数据转移子模块,用于若数据转移条件判断子模块判定所述第一目标时间间隔满足所述预设数据转移条件,则将所述目标数据转移至所述目标位图中的第二预设历史行为区域。
相应的,所述用户数据分析模块14,具体用于针对任一目标用户,确定目标时间段对应的所述目标位图中的分组位图片段;利用所述目标时间段、所述分组位图片段、所述第一预设分组间隔以及所述第一预设基准时间进行位运算,确定所述目标时间段以及所述目标时间段的下一时间段所述目标用户是否存在所述预设行为;若所述目标用户在所述目标时间段以及所述目标时间段的下一时间段均存在所述预设行为,则确定所述目标用户为留存用户;其中,所述分组位图片段为存储所述目标时间段对应的所述目标数据的位图片段;统计所述留存用户的第一用户数量;统计在所述目标时间段存在所述预设行为的第二用户数量;利用所述第一用户数量和所述第二用户数量确定用户留存率。
在第四种具体的实施方式中,所述目标位图确定模块12,包括:
第二目标时间间隔确定子模块,用于确定出当前行为时间数据与第二预设基准时间之间的第二目标时间间隔。
MAP创建条件判断子模块,用于利用第二预设分组间隔判断所述第二目标时间间隔是否满足预设MAP创建条件。
MAP创建子模块,用于若所述MAP创建条件判断模块判定所述第二目标时间间隔满足所述预设MAP创建条件,则创建对应的MAP结构;其中,所述MAP结构包括用于存储VALUE值的所述目标位图的位图片段,并且,所述VALUE值用于表示所述第二预设分组间隔内所述目标用户对应的所述预设行为;将当前所述第二预设分组间隔内的预设时刻确定为所述MAP结构的KEY值。相应的,所述用户数据存储模块13,具体用于利用所述用户行为数据确定出所述MAP结构的VALUE值,然后将该VALUE值存储至所述位图片段;
MAP确定子模块,用于若所述MAP创建条件判断模块判定所述第二目标时间间隔没有满足所述预设MAP创建条件,则从已存在的MAP结构中确定出与所述目标用户的所述预设行为对应的MAP结构以得到目标MAP结构。相应的,所述用户数据存储模块13,具体用于利用所述用户行为数据更新所述目标MAP结构的VALUE值。
在具体的实施方式中,所述目标位图确定模块12,具体包括:
目标位图查找模块,用于查找是否存在所述目标位图。
数据记录添加模块,用于若目标位图查找模块查找不到所述目标位图,则添加所述目标用户的所述设行为的数据记录,所述数据记录包括用户标识、所述目标位图、以及所述预设行为对应的首次操作日期。
进一步的,本申请实施例还提供了一种电子设备。图19是根据一示例性实施例示出的电子设备20结构图,图中的内容不能被认为是对本申请的使用范围的任何限制。
图19为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的数据处理方法中的相关步骤。另外,本实施例中的电子设备20具体可以为服务器。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作***221、计算机程序222及视频数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作***221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量行为数据223的运算与处理,其可以是WindowsServer、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的数据处理方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223可以包括电子设备20收集到的各种行为数据。
进一步的,本申请实施例还公开了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的数据处理方法步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种数据处理方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (12)
1.一种数据处理方法,其特征在于,应用于hive框架,包括:
获取目标用户的与预设行为对应的用户行为数据;
确定与所述目标用户的所述预设行为唯一对应的目标位图,其中,不同所述目标用户的所述预设行为对应不同的位图;
利用所述目标位图存储所述用户行为数据;
利用所述目标位图进行针对所述用户行为数据的分析处理。
2.根据权利要求1所述的数据处理方法,其特征在于,所述利用所述目标位图存储所述用户行为数据,包括:
基于预设的映射关系,确定与所述用户行为数据对应的行为标识以得到相应的目标行为标识;
将所述目标行为标识存储至所述目标位图。
3.根据权利要求2所述的数据处理方法,其特征在于,所述将所述目标行为标识存储至所述目标位图,包括:
将所述目标行为标识直接添加至所述目标位图的预设位置。
4.根据权利要求3所述的数据处理方法,其特征在于,所述利用所述目标位图进行针对所述用户行为数据的分析处理,包括:
针对任一所述目标用户对应的所述目标位图,确定最后一个存储至所述目标位图的行为标识对应的行为时间数据与第一目标时间段的第一时间间隔以及与第二目标时间段的第二时间间隔;
分别利用所述第一时间间隔和所述第二时间间隔以及所述目标位图判断所述目标用户在所述第一目标时间段以及所述第二目标时间段是否存在所述预设行为;
若所述目标用户在所述第一目标时间段以及所述第二目标时间段均存在所述预设行为,则确定所述目标用户为留存用户;其中,所述第二目标时间段为所述第一目标时间段的下一时间段;
统计所述留存用户的第一用户数量;
统计在所述第一目标时间段存在所述预设行为的所述目标用户的第二用户数量;
利用所述第一用户数量和所述第二用户数量确定用户留存率。
5.根据权利要求2所述的数据处理方法,其特征在于,所述将所述目标行为标识存储至所述目标位图,包括:
若所述目标位图中的最近行为标识表示所述目标用户在上一时间段不存在该预设行为,则将所述目标位图中的预设行为标识加1,并将所述最近行为标识更新为所述目标行为标识;
若所述目标位图中的最近行为标识表示所述目标用户在上一时间段存在该预设行为,则对所述最近行为标识、所述预设行为标识进行转移记录,以迁移至所述目标位图中的第一预设历史行为区域,并将所述预设行为标识置0,然后将所述最近行为标识更新为所述目标行为标识。
6.根据权利要求1所述的数据处理方法,其特征在于,所述利用所述目标位图存储所述用户行为数据,包括:
将存在所述预设行为的行为时间数据存储至所述目标位图,将不存在所述预设行为的所述行为时间数据丢弃。
7.根据权利要求6所述的数据处理方法,其特征在于,所述利用所述目标位图进行针对所述用户行为数据的分析处理,包括:
利用第一目标时间段以及第二目标时间段对应的正则表达式对任一所述目标用户的所述目标位图进行匹配,若在所述目标位图中匹配到所述第一目标时间段和所述第二目标时间段,则判定该目标位图对应的所述目标用户为留存用户,其中,所述第二目标时间段为所述第一目标时间段的下一时间段;
统计所述留存用户的第一用户数量;
统计匹配到所述第一目标时间段的所述目标位图的数量以得到第二用户数量;
利用所述第一用户数量和所述第二用户数量确定用户留存率。
8.根据权利要求1所述的数据处理方法,其特征在于,所述利用所述目标位图存储所述用户行为数据,包括:
基于所述用户行为数据更新所述目标位图的最近行为区域中的目标数据;其中,所述目标数据表示当前第一预设分组间隔内所述目标用户的所述预设行为;
确定出当前行为时间数据与第一预设基准时间之间的第一目标时间间隔,利用所述第一预设分组间隔判断所述第一目标时间间隔是否满足预设数据转移条件,若所述第一目标时间间隔满足所述预设数据转移条件,则将所述目标数据转移至所述目标位图中的第二预设历史行为区域。
9.根据权利要求8所述的数据处理方法,其特征在于,所述利用所述目标位图进行针对所述用户行为数据的分析处理,包括:
针对任一目标用户,确定目标时间段对应的所述目标位图中的分组位图片段;
利用所述目标时间段、所述分组位图片段、所述第一预设分组间隔以及所述第一预设基准时间进行位运算,确定所述目标时间段以及所述目标时间段的下一时间段所述目标用户是否存在所述预设行为;
若所述目标用户在所述目标时间段以及所述目标时间段的下一时间段均存在所述预设行为,则确定所述目标用户为留存用户;其中,所述分组位图片段为存储所述目标时间段对应的所述目标数据的位图片段;
统计所述留存用户的第一用户数量;
统计在所述目标时间段存在所述预设行为的第二用户数量;
利用所述第一用户数量和所述第二用户数量确定用户留存率。
10.根据权利要求1所述的数据处理方法,其特征在于,所述确定与所述目标用户的所述预设行为唯一对应的目标位图,包括:
确定出当前行为时间数据与第二预设基准时间之间的第二目标时间间隔,利用第二预设分组间隔判断所述第二目标时间间隔是否满足预设MAP创建条件;
若所述第二目标时间间隔满足所述预设MAP创建条件,则创建对应的MAP结构;其中,所述MAP结构包括用于存储VALUE值的所述目标位图的位图片段,并且,所述VALUE值用于表示所述第二预设分组间隔内所述目标用户的所述预设行为;将当前所述第二预设分组间隔内的预设时刻确定为所述MAP结构的KEY值;相应的,所述利用所述目标位图存储所述用户行为数据,包括:利用所述用户行为数据确定出所述MAP结构的VALUE值,然后将该VALUE值存储至所述位图片段;
若所述第二目标时间间隔没有满足所述预设MAP创建条件,则从已存在的MAP结构中确定出与所述目标用户的所述预设行为对应的MAP结构以得到目标MAP结构;相应的,所述利用所述目标位图存储所述用户行为数据,包括:利用所述用户行为数据更新所述目标MAP结构的VALUE值。
11.根据权利要求10所述的数据处理方法,其特征在于,所述利用所述目标位图进行针对所述用户行为数据的分析处理,包括:
针对任一目标用户的所述目标位图,确定目标时间段对应MAP结构;
利用所述目标时间段、该MAP结构中的位图片段、所述第二预设分组间隔以及所述第二预设基准时间进行位运算,确定所述目标时间段以及所述目标时间段的下一时间段所述目标用户是否存在所述预设行为;
若所述目标用户在所述目标时间段以及所述目标时间段的下一时间段均存在所述预设行为,则确定当前目标用户为留存用户;
统计所述留存用户的第一用户数量;
统计在所述目标时间段的存在所述预设行为的第二用户数量;
利用所述第一用户数量和所述第二用户数量确定用户留存率。
12.一种数据处理装置,其特征在于,应用于hive框架,包括:
用户数据获取模块,用于获取目标用户的与预设行为对应的用户行为数据;
目标位图确定模块,用于确定与所述目标用户的所述预设行为唯一对应的目标位图,其中,不同所述目标用户的所述预设行为对应不同的位图;
用户数据存储模块,用于利用所述目标位图存储所述用户行为数据;
用户数据分析模块,用于利用所述目标位图进行针对所述用户行为数据的分析处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011137850.8A CN112269726A (zh) | 2020-10-22 | 2020-10-22 | 一种数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011137850.8A CN112269726A (zh) | 2020-10-22 | 2020-10-22 | 一种数据处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112269726A true CN112269726A (zh) | 2021-01-26 |
Family
ID=74341763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011137850.8A Pending CN112269726A (zh) | 2020-10-22 | 2020-10-22 | 一种数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112269726A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113420263A (zh) * | 2021-06-30 | 2021-09-21 | 北京百度网讯科技有限公司 | 数据统计方法、装置、设备和存储介质 |
CN117435756A (zh) * | 2023-12-18 | 2024-01-23 | 云筑信息科技(成都)有限公司 | 一种基于位图查询用户留存的数据处理方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106815875A (zh) * | 2016-12-06 | 2017-06-09 | 腾讯科技(深圳)有限公司 | 信息位图的编码、解码方法及装置 |
CN106997431A (zh) * | 2016-01-22 | 2017-08-01 | 阿里巴巴集团控股有限公司 | 一种数据处理方法及装置 |
CN108415952A (zh) * | 2018-02-02 | 2018-08-17 | 北京腾云天下科技有限公司 | 用户数据存储方法、标签计算方法及计算设备 |
US20190164319A1 (en) * | 2017-11-27 | 2019-05-30 | Uber Technologies, Inc. | Graphical user interface map feature for a network service |
CN111415200A (zh) * | 2020-03-20 | 2020-07-14 | 腾讯音乐娱乐科技(深圳)有限公司 | 数据处理方法及装置 |
-
2020
- 2020-10-22 CN CN202011137850.8A patent/CN112269726A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106997431A (zh) * | 2016-01-22 | 2017-08-01 | 阿里巴巴集团控股有限公司 | 一种数据处理方法及装置 |
CN106815875A (zh) * | 2016-12-06 | 2017-06-09 | 腾讯科技(深圳)有限公司 | 信息位图的编码、解码方法及装置 |
US20190164319A1 (en) * | 2017-11-27 | 2019-05-30 | Uber Technologies, Inc. | Graphical user interface map feature for a network service |
CN108415952A (zh) * | 2018-02-02 | 2018-08-17 | 北京腾云天下科技有限公司 | 用户数据存储方法、标签计算方法及计算设备 |
CN111415200A (zh) * | 2020-03-20 | 2020-07-14 | 腾讯音乐娱乐科技(深圳)有限公司 | 数据处理方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113420263A (zh) * | 2021-06-30 | 2021-09-21 | 北京百度网讯科技有限公司 | 数据统计方法、装置、设备和存储介质 |
CN113420263B (zh) * | 2021-06-30 | 2023-08-04 | 北京百度网讯科技有限公司 | 数据统计方法、装置、设备和存储介质 |
CN117435756A (zh) * | 2023-12-18 | 2024-01-23 | 云筑信息科技(成都)有限公司 | 一种基于位图查询用户留存的数据处理方法 |
CN117435756B (zh) * | 2023-12-18 | 2024-03-26 | 云筑信息科技(成都)有限公司 | 一种基于位图查询用户留存的数据处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10447772B2 (en) | Managed function execution for processing data streams in real time | |
US11720537B2 (en) | Bucket merging for a data intake and query system using size thresholds | |
US11392416B2 (en) | Automated reconfiguration of real time data stream processing | |
US11222066B1 (en) | Processing data using containerized state-free indexing nodes in a containerized scalable environment | |
US10776355B1 (en) | Managing, storing, and caching query results and partial query results for combination with additional query results | |
US11269939B1 (en) | Iterative message-based data processing including streaming analytics | |
US11106734B1 (en) | Query execution using containerized state-free search nodes in a containerized scalable environment | |
US10552287B2 (en) | Performance metrics for diagnosing causes of poor performing virtual machines | |
US10984044B1 (en) | Identifying buckets for query execution using a catalog of buckets stored in a remote shared storage system | |
US11250056B1 (en) | Updating a location marker of an ingestion buffer based on storing buckets in a shared storage system | |
US11636116B2 (en) | User interface for customizing data streams | |
US20220156267A1 (en) | Revising catalog metadata based on parsing queries | |
US11567993B1 (en) | Copying buckets from a remote shared storage system to memory associated with a search node for query execution | |
US11550847B1 (en) | Hashing bucket identifiers to identify search nodes for efficient query execution | |
US11562023B1 (en) | Merging buckets in a data intake and query system | |
US20220121628A1 (en) | Streaming synthesis of distributed traces from machine logs | |
EP2924594B1 (en) | Data encoding and corresponding data structure in a column-store database | |
US20200372007A1 (en) | Trace and span sampling and analysis for instrumented software | |
US11392578B1 (en) | Automatically generating metadata for a metadata catalog based on detected changes to the metadata catalog | |
US11663219B1 (en) | Determining a set of parameter values for a processing pipeline | |
CN111177201B (zh) | 一种数据流处理的方法以及相关装置 | |
US11996868B2 (en) | Adaptive delta compression for timeseries data | |
US11789950B1 (en) | Dynamic storage and deferred analysis of data stream events | |
US11809395B1 (en) | Load balancing, failover, and reliable delivery of data in a data intake and query system | |
CN112269726A (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: 20210126 |