CN109408559A - 进行留存分析的方法、装置以及存储介质 - Google Patents

进行留存分析的方法、装置以及存储介质 Download PDF

Info

Publication number
CN109408559A
CN109408559A CN201811173687.3A CN201811173687A CN109408559A CN 109408559 A CN109408559 A CN 109408559A CN 201811173687 A CN201811173687 A CN 201811173687A CN 109408559 A CN109408559 A CN 109408559A
Authority
CN
China
Prior art keywords
analysis
data
arithmetic unit
result
multiple arithmetic
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
CN201811173687.3A
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.)
Beijing Yiguan Think Tank Network Technology Co Ltd
Original Assignee
Beijing Yiguan Think Tank Network Technology 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 Beijing Yiguan Think Tank Network Technology Co Ltd filed Critical Beijing Yiguan Think Tank Network Technology Co Ltd
Priority to CN201811173687.3A priority Critical patent/CN109408559A/zh
Publication of CN109408559A publication Critical patent/CN109408559A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3438Recording 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

Abstract

本发明公开了一种进行留存分析的方法、装置以及存储介质。其中,该方法包括:接收留存分析的请求;响应于请求,将需要查询的数据划分为多个不同范围的数据;将基于不同范围的数据的查询任务分别分配给多个运算装置;利用多个运算装置分别基于所分配的查询任务进行查询并获取查询结果;利用多个运算装置基于查询的结果执行合并操作,合并操作用于将与相同用户关联的用户数据合并到同一个运算装置中,从而多个运算装置分别包含与不同用户关联的用户数据;利用多个运算装置分别基于所包含的用户数据进行留存分析;以及基于多个运算装置进行留存分析的分析结果进行组合处理,并返回处理后的分析结果。

Description

进行留存分析的方法、装置以及存储介质
技术领域
本发明涉及数据处理领域,具体而言,涉及一种进行留存分析的方法、装置以及存储介质。
背景技术
现有的留存分析算法,需要分步骤、分天进行分别统计,并进行交集运算。比如用户查看1月1日到1月30日的每一天的1日、2日、3日、……、29日、30日活跃留存,则需要首先查看1月1日的活跃用户,然后查看2日的活跃用户,并与1日活跃用户进行交际计算,然后查看3日的活跃用户,并分别与1日、2日活跃用户进行交际运算,以此类推,直到全部计算完毕。当每日活跃用户较少时,该方法可行、有效,但当日活跃用户较大时,该计算方法的计算效率就会很慢,甚至导致系统崩溃,影响用户使用。
针对上述的单机进行留存分析查询效率慢以及稳定性不强的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种进行留存分析的方法、装置以及存储介质,以至少解决单机进行留存分析查询效率慢以及稳定性不强的技术问题。
根据本发明实施例的一个方面,提供了一种进行留存分析的方法,包括:接收留存分析的请求;响应于请求,将需要查询的数据划分为多个不同范围的数据;将基于不同范围的数据的查询任务分别分配给多个运算装置;利用多个运算装置分别基于所分配的查询任务进行查询并获取查询结果;利用多个运算装置基于查询的结果执行合并操作,合并操作用于将与相同用户关联的用户数据合并到同一个运算装置中,从而多个运算装置分别包含与不同用户关联的用户数据;利用多个运算装置分别基于所包含的用户数据进行留存分析;以及基于多个运算装置进行留存分析的分析结果进行组合处理,并返回处理后的分析结果。
根据本公开实施例的另一个方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时由处理器执行上面所述的方法。
根据本发明实施例的另一个方面,还提供了一种进行留存分析的装置,包括:接收模块,用于接收留存分析的请求;数据划分模块,用于响应于请求,将需要查询的数据划分为多个不同范围的数据;任务分配模块,将基于不同范围的数据的查询任务分别分配给多个运算装置;查询模块,用于利用多个运算装置分别基于所分配的查询任务进行查询并获取查询结果;合并模块,用于利用多个运算装置基于查询的结果执行合并操作,合并操作用于将与相同用户关联的用户数据合并到同一个运算装置中,从而多个运算装置分别包含与不同用户关联的用户数据;留存分析模块,用于利用多个运算装置分别基于所包含的用户数据进行留存分析;以及输出模块,用于基于多个运算装置进行留存分析的分析结果进行组合处理,并返回处理后的分析结果。
根据本发明实施例的另一个方面,还提供了一种进行留存分析的装置,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:接收留存分析的请求;响应于请求,将需要查询的数据划分为多个不同范围的数据;将基于不同范围的数据的查询任务分别分配给多个运算装置;利用多个运算装置分别基于所分配的查询任务进行查询并获取查询结果;利用多个运算装置基于查询的结果执行合并操作,合并操作用于将与相同用户关联的用户数据合并到同一个运算装置中,从而多个运算装置分别包含与不同用户关联的用户数据;利用多个运算装置分别基于所包含的用户数据进行留存分析;以及基于多个运算装置进行留存分析的分析结果进行组合处理,并返回处理后的分析结果。
在本发明实施例中,采用分布式计算的方式,通过将查询的数据进行划分并且通过多个运算装置进行分布式的查询与留存分析,达到了提高效率的目的,进而解决了单机进行留存分析查询效率慢以及稳定性不强的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是用于执行根据本公开的实施例1的第一个方面所述的用于进行留存分析的方法的计算机终端的示意图;
图2是根据本公开实施例1所述的进行留存分析的留存分析系统的示意图;
图3是根据本公开实施例1的第一个方面所述的用于进行留存分析的方法的流程示意图;
图4是根据本公开实施例1的第一个方面所述的进行留存分析的抽象算法的逻辑结构图;
图5是根据本公开实施例2所述的用于进行留存分析的装置的示意图;以及
图6是根据本公开实施例3所述的用于进行留存分析的装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,还提供了一种进行留存分析的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例1所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现进行留存分析的方法的计算机终端的硬件结构框图。如图1所示,计算机终端10可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的用于进行留存分析的方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的漏洞检测方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
进一步地,图2示出了用于实现本实施例所述的留存分析的系统200的示意图。参考图2,用户终端100通过网络向进行留存分析的系统200发送进行留存分析的请求,其中系统200可以是基于Hadoop、HDFS等的大数据分布式框架。其中系统200包括多个运算装置210、220以及230等。其中系统200中的运算装置210、220以及230等均可采用图1中所示出的硬件结构图。
在上述运行环境下,本申请提供了如图3所示的用于进行留存分析的方法。图3是根据本实施例的第一个方面所述的用于进行留存分析的方法的流程图。其中该方法可运行于留存分析系统200。参考图3所示,方法包括:
S302:接收留存分析的请求;
S304:响应于请求,将需要查询的数据划分为多个不同范围的数据;
S306:将基于不同范围的数据的查询任务分别分配给多个运算装置;
S308:利用多个运算装置分别基于所分配的查询任务进行查询并获取查询结果;
S310:利用多个运算装置基于查询的结果执行合并操作,合并操作用于将与相同用户关联的用户数据合并到同一个运算装置中,从而多个运算装置分别包含与不同用户关联的用户数据;
S312:利用多个运算装置分别基于所包含的用户数据进行留存分析;以及
S314:基于多个运算装置进行留存分析的分析结果进行组合处理,并返回处理后的分析结果。
正如上面所述,现有技术只是简单地在单机上对事件进行统计分析,但是当数据量较大时,会出现查询效率慢,甚至导致系统崩溃,进而造成用户的使用体验不佳。
为了解决现有技术中存在的问题,本实施例的底层利用Hadoop、HDFS等大数据分布式框架,从而利用多个运算装置共同完成留存分析的任务。
在本申请的实施例中,在留存分析系统200接收到用户终端100发来的留存分析的请求之后(例如,可以通过运算装置210接收用户终端发来的留存分析),响应于该请求,会将需要查询的数据划分为多个不同范围的数据。例如留存分析系统200可以通过运算装置210按照所要查询的数据的索引的数值范围,将需要查询的数据划分为多个不同范围的数据。例如,索引0~99999对应的数据为第一数据范围的数据,索引100000~199999对应的数据为第二数据范围的数据,索引200000~299999对应的数据为第三数据范围的数据,等等。
从而,在此基础上留存分析系统200(例如通过运算装置210)将基于不同范围的数据的查询任务分别分配给多个运算装置210~230等。例如,将索引1~99999对应的第一数据范围的数据相关的查询任务分配给运算装置210,将索引100001~199999对应的第二数据范围的数据相关的查询任务分配给运算装置220,将索引200001~299999对应的第三数据范围的数据分配给运算装置230,等等。
从而,留存分析系统200通过多个运算装置210~230等分别基于所分配的查询任务进行查询并获取查询结果。并且进一步的,留存分析系统200还利用多个运算装置210~230基于查询的结果执行合并操作,用于将与相同用户关联的用户数据合并到同一个运算装置中。例如,在完成查询之后,可能运算装置210~230上都会包括关于用户1的用户数据。为了进行接下来的留存分析,留存分析系统200会将与相同用户关联的用户数据合并到同一个运算装置中,例如将与用户1相关的用户数据合并到运算装置210上。从而例如,与用户1至用户1000相关的数据可以合并到运算装置210上、与用户1001至用户2000相关的数据可以合并到运算装置220上、与用户2001至用户3000相关的数据可以合并到运算装置230上,等等依次类推。从而,多个运算装置210、220以及230等分别包含有与不同用户关联的用户数据。
进一步地,在完成数据的合并操作之后,系统200利用多个运算装置210~230分别基于所包含的用户数据进行留存分析,并且基于多个运算装置210~230进行留存分析的分析结果进行组合处理,并且返回处理后的分析结果。
根据本实施例的逻辑结构图如图4所示,本实施例的留存查询的抽象算法分为三个总的步骤:输入(INPUT)、合并(COMBINE)和输出(OUTPUT)。
以图4为例,尽管示例性地图4示出了3台运算装置210~230,但是本领域技术人员应当清楚,可以通过更多的运算装置实现本实施例。
其中查询SQL在运算装置210上执行。然后运算装置210根据SQL将要查询的数据进行划分,比如划分成100份,从而针对该100份数据确定100个查询任务。然后运算装置210将查询任务进行分配,例如运算装置220和运算装置230分别分配30个查询任务,自己保留40个查询任务。然后运算装置210~230根据各自的查询任务启动现成读取自己机器上的数据,这就是输入过程(其中多个运算装置上的数据,例如运算装置210~230上的数据,是相同的)。
运算装置210~230上的每个线程在完成输入过程后,会根据数据对应的用户ID在本机之上进行合并以及之后多个运算装置之间进行合并。从而相同用户ID的数据在同一个运算装置上,并且不同运算装置上所包含的用户数据不同。然后运算装置210~230各自完成留存分析后在运算装置210上进行输出。
从而通过这种方式,无论是对用户数据进行的查询还是基于用户数据进行的留存分析操作,都可以在多个运算装置上采用分布式运算的方法实现。从而即便是在数据量较大的情况下,也可以通过实现多机查询来保障系统的稳定性,同时保证查询效率。
此外,优选地,在将需要查询的数据划分为多个不同的数据范围之前,还包括:基于与留存分析相关联的事件的预定特征,从数据源中筛选需要查询的数据。
其中,作为预定特征的实例,其可以是与留存分析相关联的事件发生时间或者是事件名称,当然也可以是其他类型的特征。从而由于在查询之前先从数据源中根据上述特征筛选出需要查询的数据,因此提高了查询效率并且缩短了查询时间。
此外,可选地,返回处理后的分析结果的操作包括:按照自定义的返回类型,返回处理后的分析结果。例如,可以利用Presto编写有序留存算法,并充分考虑现实情况,自定义算法返回类型,从而实现复杂留存分析需求,并且可以保证后续应用的灵活性。
此外,可选地,留存分析的操作,包括:确定与留存分析相关联的多个事件类型;统计用户与多个事件类型相匹配的多个用户事件;并且对于多个用户事件中相同类型的用户事件,执行以下操作:确定相同类型的用户事件是否需要进行进一步划分;以及在确定需要进一步划分的情况下,将相同类型的用户事件进一步划分为不同的事件类型。
例如,客户在实际的操作中(例如,网上购物),很可能会在一个搜索商品的操作之后后继续进行一次搜索商品的操作,或者是在一次下单操作之后继续进行一次下单操作。
这样的话,尽管从事件类型上说,都是搜索操作或者都是下单操作。但是这种情况下进行的连续多次执行的相同类型的操作仍然需要进一步划分。例如将第一次搜索商品的操作的类型确定为一次搜索,将第二次搜索商品的操作的类型确定为二次搜索。又例如,第一次下单的操作的类型确定为一次下单,将第二次下单的操作的类型确定为二次下单。从而,通过这样的划分,可以有效地将留存分析中的重复事件以及虚拟事件等进行有效地统计。并且,在算法中可以利用全局变量缓存当前事件对应的时间列表,从而提高算法的效率。
可选地,留存分析的操作,还包括:确定与留存分析相关联的多个事件类型;从多个事件类型中获取具有相同的事件特征的事件类型;以及将具有相同的事件特征的事件类型作为抽象算法的参数,并且基于抽象算法进行留存分析。
具体地,留存分析系统200会根据留存业务需求,通过改变抽象算法的参数,既先从多个事件类型中获取具有相同的事件特征的事件类型,然后将具有相同的事件特征的事件类型作为抽象算法的参数。其中相同的事件特征可以为用户留存的天数,也可以为用户属性。例如:1)按天查看留存,输出[Day,1-Retention,2-Retention,…….],其中Day表示日期中的“天”,以及相应的1日是否留存,2日是否留存等。通过这种方式,留存分析系统200可以将日留存、周留存、月留存等不同留存情况统一到一个算法。2)按用户属性分组,则输出[Attr,1-Retention,2-Retention,…….],其中Attr表示属性为“Attr”的人,以及相应的1日是否留存,2日是否留存等。从而,留存分析系统200可根据算法的不同输出,再次进行group-by,从而统计出用户的留存情况。
可选地,基于所包含的用户数据进行留存分析,还包括在多个运算装置中缓存用于查询的参数。具体地,可以利用slicestate缓存作为查询的参数的中间变量,如初始事件名称、结束事件名称、查询时间段、留存时间段等,以便提高算法效率。从而能够充分考虑留存的业务需求,在准确性的前提下尽量提高计算效率。
此外,可选地,返回处理后的分析结果,包括以列表的形式返回处理后的分析结果。例如,上面所述的抽象算法的输出过程(OUTPUT)的输出参数为列表(Day,Attr,MaxSteps,TimeDistances…)。其中Day表示日期中的“天”,Attr表示用户的属性,MaxSteps表示输出的最大补偿,以及TimeDistances表示输出的时间距离。
综上所述,根据本实施例的第一个方面,无论是对用户数据进行的查询还是基于用户数据进行的留存分析操作,都可以在多个运算装置上采用分布式运算的方法实现。从而即便是在数据量较大的情况下,也可以通过实现多机查询来保障系统的稳定性,同时提高查询的效率。
此外,根据本实施例的第二个方面,提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时由处理器执行上面所述的方法。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
参考图5所示,根据本发明实施例,提供了一种用于进行留存分析的装置500,如图5所示,该装置500包括:接收模块510,用于接收留存分析的请求;数据划分模块520,用于响应于请求,将需要查询的数据划分为多个不同范围的数据;任务分配模块530,将基于不同范围的数据的查询任务分别分配给多个运算装置;查询模块540,用于利用多个运算装置分别基于所分配的查询任务进行查询并获取查询结果;合并模块550,用于利用多个运算装置基于查询的结果执行合并操作,合并操作用于将与相同用户关联的用户数据合并到同一个运算装置中,从而多个运算装置分别包含与不同用户关联的用户数据;留存分析模块560,用于利用多个运算装置分别基于所包含的用户数据进行留存分析;以及输出模块570,用于基于多个运算装置进行留存分析的分析结果进行组合处理,并返回处理后的分析结果。
在本申请的实施例中,在接收模块510接收到用户终端发来的留存分析的请求之后(例如,可以通过运算装置接收用户终端发来的留存分析),数据划分模块520响应于该请求,会将需要查询的数据划分为多个不同范围的数据。例如数据划分模块520可以通过运算装置按照所要查询的数据的索引的数值范围,将需要查询的数据划分为多个不同范围的数据。例如,索引0~99999对应的数据为第一数据范围的数据,索引100000~199999对应的数据为第二数据范围的数据,索引200000~299999对应的数据为第三数据范围的数据,等等。
从而,在此基础上任务分配模块530将基于不同范围的数据的查询任务分别分配给多个运算装置等。例如,将索引1~99999对应的第一数据范围的数据相关的查询任务分配给第一运算装置,将索引100001~199999对应的第二数据范围的数据相关的查询任务分配给第二运算装置,将索引200001~299999对应的第三数据范围的数据分配给第三运算装置,等等。
从而,查询模块540通过多个运算装置210~230等分别基于所分配的查询任务进行查询并获取查询结果。并且进一步的,合并模块550还利用多个运算装置基于查询的结果执行合并操作,用于将与相同用户关联的用户数据合并到同一个运算装置中。例如,在完成查询之后,可能第一运算装置、第二运算装置以及第三运算装置上都会包括关于用户1的用户数据。为了进行接下来的留存分析,合并模块550会将与相同用户关联的用户数据合并到同一个运算装置中,例如将与用户相关的用户数据合并到第一运算装置上。从而例如,与用户1至用户1000相关的数据可以合并到第一运算装置上、与用户1001至用户2000相关的数据可以合并到第二运算装置上、与用户2001至用户3000相关的数据可以合并到第三运算装置上,等等依次类推。从而,第一运算装置、第二运算装置以及第三运算装置等分别包含有与不同用户关联的用户数据。
进一步地,在完成数据的合并操作之后,留存分析模块560利用第一运算装置、第二运算装置以及第三运算装置分别基于所包含的用户数据进行留存分析,并且基于第一运算装置、第二运算装置以及第三运算装置进行留存分析的分析结果进行组合处理,并且返回处理后的分析结果。
进一步地,在完成留存分析操作之后,输出模块570基于第一运算装置、第二运算装置以及第三运算装置进行留存分析的分析结果进行组合处理,并返回处理后的分析结果。
从而通过这种方式,无论是对用户数据进行的查询还是基于用户数据进行的留存分析操作,都可以在多个运算装置上采用分布式运算的方法实现。从而即便是在数据量较大的情况下,也可以通过实现多机查询来保障系统的稳定性,同时保证查询效率。
可选地,还包括筛选模块,设置于数据划分模块520之前,用于基于与留存分析相关联的事件的预定特征,从数据源中筛选需要查询的数据。
其中,作为预定特征的实例,其可以是与留存分析相关联的事件发生时间或者是事件名称,当然也可以是其他类型的特征。从而由于在查询之前先从数据源中根据上述特征筛选出需要查询的数据,因此提高了查询效率并且缩短了查询时间。
可选地,输出模块570包括自定义返回单元,用于按照自定义的返回类型,返回处理后的分析结果。例如,输出模块570可以利用Presto编写有序留存算法,并充分考虑现实情况,自定义算法返回类型,从而实现复杂留存分析需求,并且可以保证后续应用的灵活性。
可选地,留存分析模块560,包括:第一事件类型确定子模块,用于确定与留存分析相关联的多个事件类型;统计子模块,用于统计用户与多个事件类型相匹配的多个用户事件;以及类型划分子模块,用于对于多个用户事件中相同类型的用户事件,执行以下操作:确定相同类型的用户事件是否需要进行进一步划分;以及在确定需要进一步划分的情况下,将相同类型的用户事件进一步划分为不同的事件类型。
例如,客户在实际的操作中(例如,网上购物),很可能会在一个搜索商品的操作之后后继续进行一次搜索商品的操作,或者是在一次下单操作之后继续进行一次下单操作。
这样的话,尽管从事件类型上说,都是搜索操作或者都是下单操作。但是这种情况下进行的连续多次执行的相同类型的操作仍然需要进一步划分。例如将第一次搜索商品的操作的类型确定为一次搜索,将第二次搜索商品的操作的类型确定为二次搜索。又例如,第一次下单的操作的类型确定为一次下单,将第二次下单的操作的类型确定为二次下单。从而,通过这样的划分,可以有效地将留存分析中的重复事件以及虚拟事件等进行有效地统计。并且,在算法中可以利用全局变量缓存当前事件对应的时间列表,从而提高算法的效率。
可选地,留存分析模块(560)还包括:第二事件类型确定子模块,用于确定与留存分析相关联的多个事件类型;获取子模块,用于从多个事件类型中获取具有相同的事件特征的事件类型;以及留存分析子模块,用于将具有相同的事件特征的事件类型作为抽象算法的参数,并且基于抽象算法进行留存分析。
具体地,留存分析系统200会根据留存业务需求,通过改变抽象算法的参数,既第二事件类型确定子模块先从多个事件类型中获取具有相同的事件特征的事件类型,然后获取子模块将具有相同的事件特征的事件类型作为抽象算法的参数。其中相同的事件特征可以为用户留存的天数,也可以为用户属性。例如:1)按天查看留存,输出[Day,1-Retention,2-Retention,…….],其中Day表示日期中的“天”,以及相应的1日是否留存,2日是否留存等。2)按用户属性分组,则输出[Attr,1-Retention,2-Retention,…….],其中Attr表示属性为“Attr”的人,以及相应的1日是否留存,2日是否留存等。从而,留存分析系统200可根据算法的不同输出,再次进行group-by,从而统计出用户的留存情况。
可选地,留存分析模块560还包括缓存子模块,用于在多个运算装置中缓存用于查询的参数。具体地,可以利用slicestate缓存作为查询的参数的中间变量,如窗口大小等,以便提高算法效率。从而能够充分考虑留存的业务需求,在准确性的前提下尽量提高计算效率。
可选地,输出模块570包括列表子模块,用于以列表的形式返回处理后的分析结果。例如,上面的抽象算法的输出过程(OUTPUT)的输出参数为列表(Day,Attr,MaxSteps,TimeDistances…)。其中Day表示日期中的“天”,Attr表示用户的属性,MaxSteps表示输出的最大补偿,以及TimeDistances表示输出的时间距离。
实施例3
参考图6所示,根据本发明实施例,提供了一种用于进行留存分析的装置600,如图6所示,包括:处理器610;以及存储器620,与处理器610连接,用于为处理器610提供处理以下处理步骤的指令:接收留存分析的请求;响应于请求,将需要查询的数据划分为多个不同范围的数据;将基于不同范围的数据的查询任务分别分配给多个运算装置;利用多个运算装置分别基于所分配的查询任务进行查询并获取查询结果;利用多个运算装置基于查询的结果执行合并操作,合并操作用于将与相同用户关联的用户数据合并到同一个运算装置中,从而多个运算装置分别包含与不同用户关联的用户数据;利用多个运算装置分别基于所包含的用户数据进行留存分析;以及基于多个运算装置进行留存分析的分析结果进行组合处理,并返回处理后的分析结果。
可选地,在将需要查询的数据划分为多个不同的数据范围之前的操作,还包括:基于与留存分析相关联的事件的预定特征,从数据源中筛选需要查询的数据。
可选地,留存分析的操作,包括:确定与留存分析相关联的多个事件类型;统计用户与多个事件类型相匹配的多个用户事件;并且对于多个用户事件中相同类型的用户事件,执行以下操作:确定相同类型的用户事件是否需要进行进一步划分;以及在确定需要进一步划分的情况下,将相同类型的用户事件进一步划分为不同的事件类型。
可选地,留存分析的操作,还包括:确定与留存分析相关联的多个事件类型;从多个事件类型中获取具有相同的事件特征的事件类型;以及将具有相同的事件特征的事件类型作为抽象算法的参数,并且基于抽象算法进行留存分析。
可选地,基于所包含的用户数据进行留存分析的操作,还包括在多个运算装置中缓存用于查询的参数。
可选地,返回处理后的分析结果的操作,包括以列表的形式返回处理后的分析结果。
综上所述,根据本公开的技术方案,无论是对用户数据进行的查询还是基于用户数据进行的留存分析操作,都可以在多个运算装置上采用分布式运算的方法实现。从而即便是在数据量较大的情况下,也可以通过实现多机查询来来保障系统的稳定性,同时提高查询的效率。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种进行留存分析的方法,其特征在于,包括:
接收留存分析的请求;
响应于所述请求,将需要查询的数据划分为多个不同范围的数据;
将基于所述不同范围的数据的查询任务分别分配给多个运算装置;
利用所述多个运算装置分别基于所分配的查询任务进行查询并获取查询结果;
利用所述多个运算装置基于查询的结果执行合并操作,所述合并操作用于将与相同用户关联的用户数据合并到同一个运算装置中,从而所述多个运算装置分别包含与不同用户关联的用户数据;
利用所述多个运算装置分别基于所包含的用户数据进行留存分析;以及
基于所述多个运算装置进行留存分析的分析结果进行组合处理,并返回处理后的分析结果。
2.根据权利要求1所述的方法,其特征在于,在将需要查询的数据划分为多个不同的数据范围之前,还包括:
基于与所述留存分析相关联的事件的预定特征,从数据源中筛选所述需要查询的数据。
3.根据权利要求1所述的方法,其特征在于,返回所述处理后的分析结果的操作包括:按照自定义的返回类型,返回所述处理后的分析结果。
4.根据权利要求1所述的方法,其特征在于,所述留存分析的操作,包括:
确定与所述留存分析相关联的多个事件类型;
统计用户与所述多个事件类型相匹配的多个用户事件;并且对于所述多个用户事件中相同类型的用户事件,执行以下操作:
确定所述相同类型的用户事件是否需要进行进一步划分;
以及
在确定需要进一步划分的情况下,将所述相同类型的用户事件进一步划分为不同的事件类型。
5.根据权利要求1所述的方法,其特征在于,所述留存分析的操作,还包括:
确定与所述留存分析相关联的多个事件类型;
从所述多个事件类型中获取具有相同的事件特征的事件类型;
以及
将所述具有相同的事件特征的事件类型作为抽象算法的参数,并且基于所述抽象算法进行留存分析。
6.根据权利要求1所述的方法,其特征在于,基于所包含的用户数据进行留存分析,还包括在所述多个运算装置中缓存用于查询的参数。
7.根据权利要求1所述的方法,其特征在于,返回处理后的分析结果,包括以列表的形式返回处理后的分析结果。
8.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时由处理器执行权利要求1至7中任意一项所述的方法。
9.一种进行留存分析的装置(500),其特征在于,包括:
接收模块(510),用于接收留存分析的请求;
数据划分模块(520),用于响应于所述请求,将需要查询的数据划分为多个不同范围的数据;
任务分配模块(530),将基于所述不同范围的数据的查询任务分别分配给多个运算装置;
查询模块(540),用于利用所述多个运算装置分别基于所分配的查询任务进行查询并获取查询结果;
合并模块(550),用于利用所述多个运算装置基于查询的结果执行合并操作,所述合并操作用于将与相同用户关联的用户数据合并到同一个运算装置中,从而所述多个运算装置分别包含与不同用户关联的用户数据;
留存分析模块(560),用于利用所述多个运算装置分别基于所包含的用户数据进行留存分析;以及
输出模块(570),用于基于所述多个运算装置进行留存分析的分析结果进行组合处理,并返回处理后的分析结果。
10.一种进行留存分析的装置,其特征在于,包括:
处理器;以及
存储器,与所述处理器连接,用于为所述处理器提供处理以下处理步骤的指令:
接收留存分析的请求;
响应于所述请求,将需要查询的数据划分为多个不同范围的数据;
将基于所述不同范围的数据的查询任务分别分配给多个运算装置;
利用所述多个运算装置分别基于所分配的查询任务进行查询并获取查询结果;
利用所述多个运算装置基于查询的结果执行合并操作,所述合并操作用于将与相同用户关联的用户数据合并到同一个运算装置中,从而所述多个运算装置分别包含与不同用户关联的用户数据;
利用所述多个运算装置分别基于所包含的用户数据进行留存分析;以及
基于所述多个运算装置进行留存分析的分析结果进行组合处理,并返回处理后的分析结果。
CN201811173687.3A 2018-10-09 2018-10-09 进行留存分析的方法、装置以及存储介质 Pending CN109408559A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811173687.3A CN109408559A (zh) 2018-10-09 2018-10-09 进行留存分析的方法、装置以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811173687.3A CN109408559A (zh) 2018-10-09 2018-10-09 进行留存分析的方法、装置以及存储介质

Publications (1)

Publication Number Publication Date
CN109408559A true CN109408559A (zh) 2019-03-01

Family

ID=65466894

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811173687.3A Pending CN109408559A (zh) 2018-10-09 2018-10-09 进行留存分析的方法、装置以及存储介质

Country Status (1)

Country Link
CN (1) CN109408559A (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541858A (zh) * 2010-12-07 2012-07-04 腾讯科技(深圳)有限公司 基于映射和规约的数据均衡性处理方法、装置及系统
US8775464B2 (en) * 2012-10-17 2014-07-08 Brian J. Bulkowski Method and system of mapreduce implementations on indexed datasets in a distributed database environment
US20150074672A1 (en) * 2013-09-10 2015-03-12 Robin Systems, Inc. Asynchronous scheduling informed by job characteristics and anticipatory provisioning of data for real-time, parallel processing
US9323775B2 (en) * 2010-06-19 2016-04-26 Mapr Technologies, Inc. Map-reduce ready distributed file system
CN106528778A (zh) * 2016-11-04 2017-03-22 广州华多网络科技有限公司 用户留存类数据获取方法及装置
CN106570174A (zh) * 2016-11-10 2017-04-19 中广热点云科技有限公司 运行于cmmb超级热点业务平台的大数据分析方法及系统
CN106611013A (zh) * 2015-10-27 2017-05-03 中国电信股份有限公司 信息查询方法及系统
CN106708965A (zh) * 2016-12-01 2017-05-24 北京奇虎科技有限公司 一种数据的处理方法和装置
CN107766454A (zh) * 2017-09-26 2018-03-06 深圳市金立通信设备有限公司 一种数据处理方法、服务器及计算机可读存储介质
CN107944059A (zh) * 2017-12-29 2018-04-20 深圳市中润四方信息技术有限公司西安分公司 一种基于流计算的用户行为分析方法及系统
CN108062313A (zh) * 2016-11-07 2018-05-22 北京京东尚科信息技术有限公司 用于留存用户分析的方法、电子设备和服务器

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9323775B2 (en) * 2010-06-19 2016-04-26 Mapr Technologies, Inc. Map-reduce ready distributed file system
CN102541858A (zh) * 2010-12-07 2012-07-04 腾讯科技(深圳)有限公司 基于映射和规约的数据均衡性处理方法、装置及系统
US8775464B2 (en) * 2012-10-17 2014-07-08 Brian J. Bulkowski Method and system of mapreduce implementations on indexed datasets in a distributed database environment
US20150074672A1 (en) * 2013-09-10 2015-03-12 Robin Systems, Inc. Asynchronous scheduling informed by job characteristics and anticipatory provisioning of data for real-time, parallel processing
CN106611013A (zh) * 2015-10-27 2017-05-03 中国电信股份有限公司 信息查询方法及系统
CN106528778A (zh) * 2016-11-04 2017-03-22 广州华多网络科技有限公司 用户留存类数据获取方法及装置
CN108062313A (zh) * 2016-11-07 2018-05-22 北京京东尚科信息技术有限公司 用于留存用户分析的方法、电子设备和服务器
CN106570174A (zh) * 2016-11-10 2017-04-19 中广热点云科技有限公司 运行于cmmb超级热点业务平台的大数据分析方法及系统
CN106708965A (zh) * 2016-12-01 2017-05-24 北京奇虎科技有限公司 一种数据的处理方法和装置
CN107766454A (zh) * 2017-09-26 2018-03-06 深圳市金立通信设备有限公司 一种数据处理方法、服务器及计算机可读存储介质
CN107944059A (zh) * 2017-12-29 2018-04-20 深圳市中润四方信息技术有限公司西安分公司 一种基于流计算的用户行为分析方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张铁蕾: ""小白的数据进阶之路(上)——从Shell脚本到MapReduce"", 《HTTP://ZHANGTIELEI.COM/POSTS/BLOG-HADOOP-MAPRED.HTML》 *
王颖颖: ""基于Hadoop的用户行为分析系统的设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Similar Documents

Publication Publication Date Title
CN109150607A (zh) 用于区块链网络的分级管控方法及装置
CN104462314B (zh) 电网数据处理方法及装置
CN108090208A (zh) 融合数据处理方法及装置
CN109857667A (zh) 接口自动化测试方法、测试装置、测试设备及存储介质
CN110362377A (zh) 虚拟机的调度方法和装置
CN109918205A (zh) 一种边缘设备调度方法、系统、装置及计算机存储介质
CN107203424A (zh) 一种在分布式集群中调度深度学习作业的方法和装置
CN110134516A (zh) 金融数据处理方法、装置、设备及计算机可读存储介质
CN110297855A (zh) 报表动态展示方法、装置、计算机设备及存储介质
CN109582452A (zh) 一种容器调度方法、调度装置及电子设备
CN108846294A (zh) 基于区块链的食品数据存储方法及装置
CN107784017A (zh) 地图资源点的聚合方法和装置
CN110019337A (zh) 确定数据库中有效分区的方法、装置和系统
CN109033355A (zh) 进行漏斗分析的方法、装置以及存储介质
CN109409923A (zh) 销售区域的分配方法、计算机可读存储介质及终端设备
CN108304591A (zh) 一种标签的定制方法、系统及终端设备
CN110266555A (zh) 用于分析网站服务请求的方法
CN106686081A (zh) 一种数据库服务系统的资源分配方法和装置
CN110020004A (zh) 一种数据计算方法及引擎
CN110399309A (zh) 一种测试数据生成方法及装置
CN110457124A (zh) 针对业务线程的处理方法及其装置、电子设备和介质
CN106294106A (zh) Web应用系统的测试方法及装置
CN104268293B (zh) 数据库中的不可累加指标处理方法和装置
CN109146128A (zh) 业务数据处理方法、装置及服务器
CN109543104A (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

Application publication date: 20190301

RJ01 Rejection of invention patent application after publication