CN114925099A - 漏斗数据的查询方法、装置及电子设备 - Google Patents
漏斗数据的查询方法、装置及电子设备 Download PDFInfo
- Publication number
- CN114925099A CN114925099A CN202210646207.0A CN202210646207A CN114925099A CN 114925099 A CN114925099 A CN 114925099A CN 202210646207 A CN202210646207 A CN 202210646207A CN 114925099 A CN114925099 A CN 114925099A
- Authority
- CN
- China
- Prior art keywords
- data
- funnel
- query time
- user
- aggregation function
- 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 54
- 238000004220 aggregation Methods 0.000 claims abstract description 156
- 230000002776 aggregation Effects 0.000 claims abstract description 156
- 238000012545 processing Methods 0.000 claims abstract description 39
- 230000004931 aggregating effect Effects 0.000 claims abstract description 18
- 230000006870 function Effects 0.000 claims description 122
- 230000006399 behavior Effects 0.000 claims description 108
- 230000015654 memory Effects 0.000 claims description 30
- 238000000605 extraction Methods 0.000 abstract description 7
- 238000004891 communication Methods 0.000 description 8
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000007547 defect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000006116 polymerization reaction Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000002904 solvent Substances 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
-
- 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/221—Column-oriented storage; Management thereof
-
- 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/25—Integrating or interfacing systems involving database management systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据查询技术领域,具体涉及漏斗数据的查询方法、装置及电子设备,所述方法包括获取目标数据的查询时间;基于所述查询时间提取各个用户的行为数据并对所述行为数据进行聚合处理,得到所述各个用户对应的漏斗数据,所述漏斗数据包括所述查询时间内的总体漏斗数据以及所述查询时间内各个目标日期的个体漏斗数据;对所有所述用户对应的漏斗数据进行聚合,得到所有所述用户在查询时间内的总体漏斗数据以及所述查询时间内各个目标日期的漏斗数据,以确定所述目标数据。通过两次聚合处理即可得到总体漏斗数据以及各个目标日期的漏斗数据,避免了多余数据的提取及处理,减少了数据处理量,提高了漏斗数据的查询效率。
Description
技术领域
本发明涉及数据查询技术领域,具体涉及漏斗数据的查询方法、装置及电子设备。
背景技术
ClickHouse是用于在线分析处理查询(Online Analytical Processing,简称为OLAP)的MPP架构的列式存储数据库(Database Management System,简称为DBMS),能够使用SQL查询实时生成分析数据报告。ClickHouse自带的漏斗函数一次调用只能得到一段日期内总的漏斗数据,如果想要得到一段日期内总的漏斗数据及这段日期内每一天的漏斗数据,则需要先用总的日期范围先调用一次ClickHouse自带的漏斗函数,然后在从起始开始轮询,对每一天的数据都调用一次漏斗函数,这样才能得总体及每一天的漏斗数据。
例如,若想查询1月1日到1月31日的漏斗数据及这中间每一天的漏斗数据,那么就要查询一个开始日期为1月1日,结束日期为2月7日的漏斗sql,然后再查询开始日期为1月1日,结束日期为2月8日的漏斗sql,然后再查询开始日期为1月2日,结束日期为1月9日的漏斗sql;依此类推,直到完成查询开始日期为1月31日,结束日期为2月7日的漏斗sql。这样的方式会使得where条件重复查询了很多数据,性能非常差。然而,这种通过ClickHouse自带的漏斗函数获取总体及每一天漏斗的技术方案最大的问题在于,重复查询了许多数据,导致查询效率较低。
发明内容
有鉴于此,本发明实施例提供了一种漏斗数据的查询方法、装置及电子设备,以解决漏斗数据查询效率低的问题。
根据第一方面,本发明实施例提供了一种漏斗数据的查询方法,包括:
获取目标数据的查询时间;
基于所述查询时间提取各个用户的行为数据并对所述行为数据进行聚合处理,得到所述各个用户对应的漏斗数据,所述漏斗数据包括所述查询时间内的总体漏斗数据以及所述查询时间内各个目标日期的个体漏斗数据;
对所有所述用户对应的漏斗数据进行聚合,得到所有所述用户在查询时间内的总体漏斗数据以及所述查询时间内各个目标日期的漏斗数据,以确定所述目标数据。
本发明实施例提供的漏斗数据的查询方法,利用查询时间能够获得各个用户的在该查询时间内对应的全量行为数据,对其进行一次聚合处理后得到总体漏斗数据以及各个目标日期的个体漏斗数据,再对一次聚合结果进行二次聚合,得到所有用户在查询时间内的总体漏斗数据以及查询时间内各个目标日期的漏斗数据,通过两次聚合处理即可得到总体漏斗数据以及各个目标日期的漏斗数据,避免了多余数据的提取及处理,减少了数据处理量,提高了漏斗数据的查询效率。
结合第一方面,在第一方面第一实施方式中,所述基于所述查询时间提取各个用户的行为数据并对所述行为数据进行聚合处理,得到所述各个用户对应的漏斗数据,包括:
调用第一聚合函数提取所述查询时间内各个用户的行为数据并对所述行为数据进行聚合处理,得到所述各个用户对应的漏斗数据,所述第一聚合函数为注册至ClickHouse数据库中目标子类的自定义聚合函数,所述第一聚合函数用于对各个用户的行为数据进行聚合。
本发明实施例提供的漏斗数据的查询方法,利用ClickHouse数据库内的自定义聚合函数实现一次聚合,由于该第一聚合函数为自定义函数,那么能够使得其依据需求进行数据的聚合处理,避免了由于自带的漏斗函数所带来的缺陷,提高了漏斗数据的处理效率。
结合第一方面第一实施方式,在第一方面第二实施方式中,所述调用第一聚合函数提取所述查询时间内各个用户的行为数据并对所述行为数据进行聚合处理,得到所述各个用户对应的漏斗数据,包括:
调用所述第一聚合函数提取所述各个用户的所述行为数据;
对于各个所述行为数据,基于所述第一聚合函数对所述行为数据按照所述查询时间计算所述总体漏斗数据;
基于所述行为数据对应的目标日期,利用所述第一聚合函数计算所述目标日期的漏斗数据。
结合第一方面第二实施方式,在第一方面第三实施方式中,所述调用所述第一聚合函数提取所述各个用户的所述行为数据,包括:
基于所述第一聚合函数启动多线程提取所述用户的行为数据;
将所述多线程提取出的行为数据依据所述用户进行合并,得到所述各个用户的所述行为数据。
本发明实施例提供的漏斗数据的查询方法,启动多线程进行用户行为数据的提取,能够提高行为数据的提取效率。
结合第一方面,在第一方面第四实施方式中,所述对所有所述用户对应的漏斗数据进行聚合,得到所有所述用户在查询时间内的总体漏斗数据以及所述查询时间内各个目标日期的漏斗数据,以确定所述目标数据,包括:
调用第二聚合函数对所有所述用户对应的漏斗数据进行聚合,得到所有所述用户在查询时间内的总体漏斗数据以及所述查询时间内各个目标日期的漏斗数据,以确定所述目标数据,所述第二聚合函数为注册至ClickHouse数据库中目标子类的自定义聚合函数,所述第二聚合函数用于对所有用户的一次聚合结果进行聚合。
本发明实施例提供的漏斗数据的查询方法,利用ClickHouse数据库内的自定义聚合函数实现二次聚合,由于该第二聚合函数为自定义函数,那么能够使得其依据需求进行数据的聚合处理,避免了由于自带的漏斗函数所带来的循环调用的缺陷,提高了漏斗数据的处理效率。
结合第一方面第四实施方式,在第一方面第五实施方式中,所述调用第二聚合函数对所有所述用户对应的漏斗数据进行聚合,得到所有所述用户在查询时间内的总体漏斗数据以及所述查询时间内各个目标日期的漏斗数据,以确定所述目标数据,包括:
调用所述第二聚合函数将各个所述用户对应的漏斗数据添加到待聚合列表中;
利用所述第二聚合函数对所述待聚合列表中的数据进行聚合处理,得到所述目标数据。
本发明实施例提供的漏斗数据的查询方法,将漏斗数据添加到待聚合列表中,利用待聚合列表进行数据的聚合处理,便于数据的管理,提高了数据聚合的处理效率。
结合第一方面第五实施方式,在第一方面第七实施方式中,所述调用所述第二聚合函数将各个所述用户对应的漏斗数据添加到待聚合列表中,包括:
调用所述第二聚合函数,将各个所述用户对应的漏斗数据分别加入到对应的列表中;
基于所述第二聚合函数对各个所述列表中的数据进行合并,确定所述待聚合列表。
根据第二方面,本发明实施例还提供了一种漏斗数据的查询装置,包括:
获取模块,用于获取目标数据的查询时间;
第一聚合模块,用于基于所述查询时间提取各个用户的行为数据并对所述行为数据进行聚合处理,得到所述各个用户对应的漏斗数据,所述漏斗数据包括所述查询时间内的总体漏斗数据以及所述查询时间内各个目标日期的个体漏斗数据;
第二聚合模块,用于对所有所述用户对应的漏斗数据进行聚合,得到所有所述用户在查询时间内的总体漏斗数据以及所述查询时间内各个目标日期的漏斗数据,以确定所述目标数据。
根据第三方面,本发明实施例提供了一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面或者第一方面的任意一种实施方式中所述的漏斗数据的查询方法。
根据第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行第一方面或者第一方面的任意一种实施方式中所述的漏斗数据的查询方法。
需要说明的是,本发明实施例提供的漏斗数据的查询装置、电子设备及计算机可读存储介质的相应有益效果,请参见上文漏斗数据的查询方法的对应有益效果的描述,在此不再赘述。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的漏斗数据的查询方法的流程图;
图2是根据本发明实施例的漏斗数据的查询方法的流程图;
图3是根据本发明实施例的漏斗数据的查询装置的结构框图;
图4是本发明实施例提供的电子设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明实施例中的漏斗数据的查询方法,通过提取获得各个用户在查询时间内的全量行为数据,在得到这些全量行为数据之后,对其进行聚合分析,得到对应于各个用户的总体漏斗数据,以及各个目标日期的个体漏斗数据;再对所有用户的总体漏斗数据以及各个目标日期的个体漏斗数据进行再次聚合,得到查询时间内所有用户的总体漏斗数据以及各个目标日期的漏斗数据。该方法是在提取出的全量行为数据的基础上,进行二次聚合处理,得到总体漏斗数据及各个目标日期的个体漏斗数据。
作为本实施例的一种可选应用场景,对于目标应用,需要获得所有访问该目标应用的漏斗数据。例如,可以实现设置漏斗的层级,第一层级为首页,第二层级为详情页,第三层级为订单页。因此,电子设备通过提取查询时间内访问该目标应用的各个用户的行为数据。通过对行为数据进行聚合,分析得到对应于各个用户的总体漏斗数据以及个体漏斗数据,即各个用户在查询时间内的总体漏斗数据以及各个目标日期的个体漏斗数据;再次基础上,再对所有用户的漏斗数据进行二次聚合,得到目标数据。即,可以得到目标应用在查询时间内的漏斗层级以及各个目标日期的漏斗层级。
当然,上述应用场景仅仅作为本发明实施例的一种示例,并不限定本发明的保护范围,具体应用场景是根据实际需求进行设置的。
根据本发明实施例,提供了一种漏斗数据的查询方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种漏斗数据的查询方法,可用于电子设备,如电脑、手机、平板电脑等,图1是根据本发明实施例的漏斗数据的查询方法的流程图,如图1所示,该流程包括如下步骤:
S11,获取目标数据的查询时间。
目标数据的查询时间为用户输入至电子设备的,或电子设备从其他设备中获得的。例如,在电子设备中提供有查询时间的设置界面,该设置界面具有查询时间的选择下拉菜单,用户通过在该下拉菜单中进行起止时间的选择,相应地,电子设备获取到目标数据的查询时间。或者,在设置界面具有查询时间的输入区域,用于在该输入区域内进行起止时间的输入,相应地,获取到查询时间。
S12,基于查询时间提取各个用户的行为数据并对行为数据进行聚合处理,得到各个用户对应的漏斗数据。
其中,所述漏斗数据包括查询时间内的总体漏斗数据以及查询时间内各个目标日期的个体漏斗数据。
电子设备在获取到查询时间之后,利用该查询时间进行各个用户的行为数据的提取。其中,用户的所有行为数据可以是存储在电子设备中的,也可以是存储在第三方设备中。若存储在电子设备中,那么电子设备利用该查询时间进行行为数据的筛选,提取出查询时间内各个用户的行为数据;若存储在第三方设备中,电子设备利用该查询时间向第三方设备发送查询指令,以使得第三方设备利用该查询时间进行行为数据的筛选,提取出查询时间内各个用户的行为数据。
在一些可选实施方式中,在进行行为数据筛选时,除了结合查询时间还可以结合查询条件。例如,在上述S11中所述的设置界面中还提供有查询条件的设置区域,用户通过在该设置界面中进行查询条件中进行条件的输入,即可获得查询条件。在此基础上,电子设备即可基于查询时间以及查询条件对行为数据得到筛选后的行为数据。
由于行为数据包括用户访问某一目标应用,或浏览某一网页时的用户行为数据,包括但不限于时间、操作数据等等。电子设备得到各个用户的行为数据之后,即可依据相应的维度对其进行聚合处理,得到各个用户在查询时间内的总体漏斗数据以及查询时间内各个目标日期的个体漏斗数据。对应于每个用户而言,总体漏斗数据为在查询时间内的所有行为数据对应的聚合结果,个体漏斗数据为各个目标日期的行为数据对应的聚合结果。目标日期可以是查询时间内的某一天,或某一时间段等等,在此对其并不做任何限定。
关于该步骤具体将在下文中进行详细描述。
S13,对所有用户对应的漏斗数据进行聚合,得到所有用户在查询时间内的总体漏斗数据以及查询时间内各个目标日期的漏斗数据,以确定目标数据。
在得到各个用户的总体漏斗数据以及个体漏斗数据之后,再对其分别进行二次聚合,得到所有用户的总体漏斗数据,以及所有用户在各个目标日期的漏斗数据,确定出目标数据。其中,目标数据为所有用户在查询时间内的总体漏斗数据以及查询时间内各个目标日期的漏斗数据。
关于该步骤具体将在下文中进行详细描述。
本实施例提供的漏斗数据的查询方法,利用查询时间能够获得各个用户的在该查询时间内对应的全量行为数据,对其进行一次聚合处理后得到总体漏斗数据以及各个目标日期的个体漏斗数据,再对一次聚合结果进行二次聚合,得到所有用户在查询时间内的总体漏斗数据以及查询时间内各个目标日期的漏斗数据,通过两次聚合处理即可得到总体漏斗数据以及各个目标日期的漏斗数据,避免了多余数据的提取及处理,减少了数据处理量,提高了漏斗数据的查询效率。
在本实施例中提供了一种漏斗数据的查询方法,可用于电子设备,如电脑、手机、平板电脑等,图2是根据本发明实施例的漏斗数据的查询方法的流程图,如图2所示,该流程包括如下步骤:
S21,获取目标数据的查询时间。
详细请参见图1所示实施例的S11,在此不再赘述。
S22,基于查询时间提取各个用户的行为数据并对行为数据进行聚合处理,得到各个用户对应的漏斗数据。
其中,所述漏斗数据包括查询时间内的总体漏斗数据以及查询时间内各个目标日期的个体漏斗数据。
在本实施例中,电子设备利用ClickHouse数据库中的自定义聚合函数对行为数据进行聚合处理,其中,自定义聚合函数包括第一聚合函数以及第二聚合函数,第一聚合函数用于对各个用户的行为数据进行聚合,第二聚合函数用于对所有用户的一次聚合结果进行聚合处理。
关于两个自定义聚合函数的实现过程包括环境搭建、基于ClickHouse数据库的源码修改以及编译等等。具体地,
(1)工具安装
安装Git和CMake和Ninja:
sudo apt-get install git cmake ninja-build;
安装Clang:
sudo bash-c"$(wget-O-https://apt.llvm.org/llvm.sh)";
(2)拉取ClickHouse源码
从github下载ClickHouse源码,版本为V21.7.9.7-stable,ClickHouse github地址:[email protected]:ClickHouse/ClickHouse.git;
(3)实现两个自定义聚合函数:第一聚合函数polarisWindowFunnel和第二聚合函数polarisWindowFunnelStepAggregate
实现ClickHouse自定义聚合函数需要实现AggregateFunctions目录下的IAggregateFunction接口,其中一个是IAggregateFunction.cpp文件,子类要在这个文件中注册自定义聚合函数;
另一个是IAggregateFunction.h文件,子类要在这个文件中写函数逻辑,这里面可以利用add,merge,insertResultInto这3个方法实现数据聚合。
add方法:对于输入的每一条数据,都会调用一次add方法。其中columns代表多个列,可通过下标访问某一列,例如column[0],下标从0开始;row_num代表行号,表示当前是第几条数据,下标从0开始。通过这个方法,对每一条数据进行聚合处理。
merge方法:ClickHouse为了实现高性能的计算,使用了多线程,每个线程都会有一个聚合的结果,所以需要把每个线程的聚合结果合并起来。
insertResultInto方法:这个方法会对最终的merge方法的结果进行输出。
(4)编译ClickHouse,生成可执行文件
实现自定义聚合函数的各个方法之后,需要对ClickHouse源码重新编译打包,进入源码src目录下,执行如下命令:
mkdir build
cd build
cmake..
ninja
编译打包执行完成后,就生成了一个名为clickhouse的可执行文件,运行./clickhouse命令,可启动ClickHouse服务,然后就可以在sql中调用我们上面2个自定义聚合函数实现高性能的总体漏斗数据及目标日期的漏斗数据查询。
电子设备通过调用上述的两个自定义聚合函数,对用户的行为数据进行分析,确定出目标数据。具体地,电子设备调用第一聚合函数提取查询时间内各个用户的行为数据并对行为数据进行聚合处理,得到各个用户对应的漏斗数据。其中,所述第一聚合函数为注册至ClickHouse数据库中目标子类的自定义聚合函数。
基于此,上述S22包括以下步骤:
S221,调用第一聚合函数提取各个用户的行为数据。
如上文所述,第一聚合函数用于对用户的行为数据进行聚合,基于此,电子设备首先需要利用该第一聚合函数提取各个用户的行为数据。对行为数据的提取,可以是针对各个用户分别进行提取,也可以是利用多线程同时进行提取等等。
在一些可选实施方式中,上述S221包括:
(1)基于第一聚合函数启动多线程提取用户的行为数据。
(2)将多线程提取出的行为数据依据用户进行合并,得到各个用户的行为数据。
具体地,电子设备启动多线程利用第一聚合函数中的add方法将一个用户的每一条行为数据都放到列表集合中。再利用第一聚合函数中的merge方法将多个线程的对应的一个用户的行为数据合并到一起,并且将行为按照时间升序排序,得到各个用户的行为数据。通过启动多线程进行用户行为数据的提取,能够提高行为数据的提取效率。
S222,对于各个行为数据,基于第一聚合函数对行为数据按照查询时间计算总体漏斗数据。
电子设备利用第一聚合函数中定义的漏斗处理逻辑,针对各个用户在查询时间内的所有行为数据进行漏斗数据的计算,得到总体漏斗数据。
S223,基于行为数据对应的目标日期,利用第一聚合函数计算目标日期的漏斗数据。
如上文所述,行为数据中包括有时间,基于此,电子设备可以利用行为数据对应的时间,提取各个用户在目标日期的行为数据。基于目标日期的行为数据利用第一聚合函数内的自定义逻辑进行目标日期的漏斗数据的计算。
S23,对所有用户对应的漏斗数据进行聚合,得到所有用户在查询时间内的总体漏斗数据以及查询时间内各个目标日期的漏斗数据,以确定目标数据。
电子设备通过调用第二聚合函数对所有用户对应的漏斗数据进行聚合,得到所有用户在查询时间内的总体漏斗数据以及查询时间内各个目标日期的漏斗数据,以确定所述目标数据。其中,所述第二聚合函数为注册至ClickHouse数据库中目标子类的自定义聚合函数,所述第二聚合函数用于对所有用户的一次聚合结果进行再次聚合。
基于此,上述S23包括如下步骤:
S231,调用第二聚合函数将各个用户对应的漏斗数据添加到待聚合列表中。
各个用户对应的漏斗数据包括各个用户在查询时间内的总体漏斗数据以及查询时间内各个目标日期的漏斗数据,电子设备调用第二聚合函数将这些漏斗数据添加到待聚合列表中,以便于管理。
在一些可选实施方式中,上述S231包括:
(1)调用第二聚合函数,将各个用户对应的漏斗数据分别加入到对应的列表中。
(2)基于第二聚合函数对各个列表中的数据进行合并,确定待聚合列表。
电子设备利用第二聚合函数中的add方法将每个用户的漏斗数据添加到List集合中;再利用第二聚合函数中的merge方法将多个线程的List集合中的每个用户的漏斗数据合并到一个List中,确定待聚合列表。
S232,利用第二聚合函数对待聚合列表中的数据进行聚合处理,得到目标数据。
电子设备利用第二聚合函数中的insertResultInto方法对带聚合列表进行循环,对每个用户的漏斗数据归类统计到总体及目标日期上,得出总体及目标日期的漏斗数据,即得到目标数据。进一步地,电子设备将目标数据一次性返回给用户,使得用户获知查询时间内的目标数据。
通过将漏斗数据添加到待聚合列表中,利用待聚合列表进行数据的聚合处理,便于数据的管理,提高了数据聚合的处理效率。
本实施例提供的漏斗数据的查询方法,利用ClickHouse数据库内的自定义聚合函数实现聚合,由于该第一聚合函数以及第二聚合函数均为自定义函数,那么能够使得其依据需求进行数据的聚合处理,避免了由于自带的漏斗函数所带来的缺陷,提高了漏斗数据的处理效率。通过利用对ClickHouse数据库进行源码修改后的自定义聚合函数,实现通过一次sql调用即可实现高性能的总体及具体日期的漏斗数据查询。
在本实施例中还提供了一种漏斗数据的查询装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种漏斗数据的查询装置,如图3所示,包括:
获取模块31,用于获取目标数据的查询时间;
第一聚合模块32,用于基于所述查询时间提取各个用户的行为数据并对所述行为数据进行聚合处理,得到所述各个用户对应的漏斗数据,所述漏斗数据包括所述查询时间内的总体漏斗数据以及所述查询时间内各个目标日期的个体漏斗数据;
第二聚合模块33,用于对所有所述用户对应的漏斗数据进行聚合,得到所有所述用户在查询时间内的总体漏斗数据以及所述查询时间内各个目标日期的漏斗数据,以确定所述目标数据。
在一些可选实施方式中,第一聚合模块32包括:
第一调用单元,用于调用第一聚合函数提取所述查询时间内各个用户的行为数据并对所述行为数据进行聚合处理,得到所述各个用户对应的漏斗数据,所述第一聚合函数为注册至ClickHouse数据库中目标子类的自定义聚合函数,所述第一聚合函数用于对各个用户的行为数据进行聚合。
在一些可选实施方式中,第一调用单元包括:
第一调用子单元,用于调用所述第一聚合函数提取所述各个用户的所述行为数据;
第一计算子单元,用于对于各个所述行为数据,基于所述第一聚合函数对所述行为数据按照所述查询时间计算所述总体漏斗数据;
第二计算子单元,用于基于所述行为数据对应的目标日期,利用所述第一聚合函数计算所述目标日期的漏斗数据。
在一些可选实施方式中,第一调用子单元,包括:
提取子单元,用于基于所述第一聚合函数启动多线程提取所述用户的行为数据;
第一合并子单元,用于将所述多线程提取出的行为数据依据所述用户进行合并,得到所述各个用户的所述行为数据。
在一些可选实施方式中,第二聚合模块33包括:
第二调用单元,用于调用第二聚合函数对所有所述用户对应的漏斗数据进行聚合,得到所有所述用户在查询时间内的总体漏斗数据以及所述查询时间内各个目标日期的漏斗数据,以确定所述目标数据,所述第二聚合函数为注册至ClickHouse数据库中目标子类的自定义聚合函数,所述第二聚合函数用于对所有用户的聚合进行聚合。
在一些可选实施方式中,第二调用单元包括:
第二调用子单元,用于调用所述第二聚合函数将各个所述用户对应的漏斗数据添加到待聚合列表中;
聚合子单元,用于利用所述第二聚合函数对所述待聚合列表中的数据进行聚合处理,得到所述目标数据。
在一些可选实施方式中,第二调用子单元包括:
第三调用子单元,用于调用所述第二聚合函数,将各个所述用户对应的漏斗数据分别加入到对应的列表中;
第二合并子单元,用于基于所述第二聚合函数对各个所述列表中的数据进行合并,确定所述待聚合列表。
本实施例中的漏斗数据的查询装置是以功能单元的形式来呈现,这里的单元是指ASIC电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
上述各个模块的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本发明实施例还提供一种电子设备,具有上述图3所示的漏斗数据的查询装置。
请参阅图4,图4是本发明可选实施例提供的一种电子设备的结构示意图,如图4所示,该电子设备可以包括:至少一个处理器41,例如CPU(Central Processing Unit,中央处理器),至少一个通信接口43,存储器44,至少一个通信总线42。其中,通信总线42用于实现这些组件之间的连接通信。其中,通信接口43可以包括显示屏(Display)、键盘(Keyboard),可选通信接口43还可以包括标准的有线接口、无线接口。存储器44可以是高速RAM存储器(Random Access Memory,易挥发性随机存取存储器),也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器44可选的还可以是至少一个位于远离前述处理器41的存储装置。其中处理器41可以结合图3所描述的装置,存储器44中存储应用程序,且处理器41调用存储器44中存储的程序代码,以用于执行上述任一方法步骤。
其中,通信总线42可以是外设部件互连标准(peripheral componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry standardarchitecture,简称EISA)总线等。通信总线42可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器44可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard diskdrive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);存储器44还可以包括上述种类的存储器的组合。
其中,处理器41可以是中央处理器(英文:central processing unit,缩写:CPU),网络处理器(英文:network processor,缩写:NP)或者CPU和NP的组合。
其中,处理器41还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specific integrated circuit,缩写:ASIC),可编程逻辑器件(英文:programmable logic device,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic arraylogic,缩写:GAL)或其任意组合。
可选地,存储器44还用于存储程序指令。处理器41可以调用程序指令,实现如本申请任一实施例中所示的漏斗数据的查询方法。
本发明实施例还提供了一种非暂态计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的漏斗数据的查询方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard DiskDrive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种漏斗数据的查询方法,其特征在于,包括:
获取目标数据的查询时间;
基于所述查询时间提取各个用户的行为数据并对所述行为数据进行聚合处理,得到所述各个用户对应的漏斗数据,所述漏斗数据包括所述查询时间内的总体漏斗数据以及所述查询时间内各个目标日期的个体漏斗数据;
对所有所述用户对应的漏斗数据进行聚合,得到所有所述用户在查询时间内的总体漏斗数据以及所述查询时间内各个目标日期的漏斗数据,以确定所述目标数据。
2.根据权利要求1所述的方法,其特征在于,所述基于所述查询时间提取各个用户的行为数据并对所述行为数据进行聚合处理,得到所述各个用户对应的漏斗数据,包括:
调用第一聚合函数提取所述查询时间内各个用户的行为数据并对所述行为数据进行聚合处理,得到所述各个用户对应的漏斗数据,所述第一聚合函数为注册至ClickHouse数据库中目标子类的自定义聚合函数,所述第一聚合函数用于对各个用户的行为数据进行聚合。
3.根据权利要求2所述的方法,其特征在于,所述调用第一聚合函数提取所述查询时间内各个用户的行为数据并对所述行为数据进行聚合处理,得到所述各个用户对应的漏斗数据,包括:
调用所述第一聚合函数提取所述各个用户的所述行为数据;
对于各个所述行为数据,基于所述第一聚合函数对所述行为数据按照所述查询时间计算所述总体漏斗数据;
基于所述行为数据对应的目标日期,利用所述第一聚合函数计算所述目标日期的漏斗数据。
4.根据权利要求3所述的方法,其特征在于,所述调用所述第一聚合函数提取所述各个用户的所述行为数据,包括:
基于所述第一聚合函数启动多线程提取所述用户的行为数据;
将所述多线程提取出的行为数据依据所述用户进行合并,得到所述各个用户的所述行为数据。
5.根据权利要求1所述的方法,其特征在于,所述对所有所述用户对应的漏斗数据进行聚合,得到所有所述用户在查询时间内的总体漏斗数据以及所述查询时间内各个目标日期的漏斗数据,以确定所述目标数据,包括:
调用第二聚合函数对所有所述用户对应的漏斗数据进行聚合,得到所有所述用户在查询时间内的总体漏斗数据以及所述查询时间内各个目标日期的漏斗数据,以确定所述目标数据,所述第二聚合函数为注册至ClickHouse数据库中目标子类的自定义聚合函数,所述第二聚合函数用于对所有用户的一次聚合结果进行聚合。
6.根据权利要求5所述的方法,其特征在于,所述调用第二聚合函数对所有所述用户对应的漏斗数据进行聚合,得到所有所述用户在查询时间内的总体漏斗数据以及所述查询时间内各个目标日期的漏斗数据,以确定所述目标数据,包括:
调用所述第二聚合函数将各个所述用户对应的漏斗数据添加到待聚合列表中;
利用所述第二聚合函数对所述待聚合列表中的数据进行聚合处理,得到所述目标数据。
7.根据权利要求6所述的方法,其特征在于,所述调用所述第二聚合函数将各个所述用户对应的漏斗数据添加到待聚合列表中,包括:
调用所述第二聚合函数,将各个所述用户对应的漏斗数据分别加入到对应的列表中;
基于所述第二聚合函数对各个所述列表中的数据进行合并,确定所述待聚合列表。
8.一种漏斗数据的查询装置,其特征在于,包括:
获取模块,用于获取目标数据的查询时间;
第一聚合模块,用于基于所述查询时间提取各个用户的行为数据并对所述行为数据进行聚合处理,得到所述各个用户对应的漏斗数据,所述漏斗数据包括所述查询时间内的总体漏斗数据以及所述查询时间内各个目标日期的个体漏斗数据;
第二聚合模块,用于对所有所述用户对应的漏斗数据进行聚合,得到所有所述用户在查询时间内的总体漏斗数据以及所述查询时间内各个目标日期的漏斗数据,以确定所述目标数据。
9.一种电子设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1-7中任一项所述的漏斗数据的查询方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行权利要求1-7中任一项所述的漏斗数据的查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210646207.0A CN114925099A (zh) | 2022-06-08 | 2022-06-08 | 漏斗数据的查询方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210646207.0A CN114925099A (zh) | 2022-06-08 | 2022-06-08 | 漏斗数据的查询方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114925099A true CN114925099A (zh) | 2022-08-19 |
Family
ID=82812419
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210646207.0A Pending CN114925099A (zh) | 2022-06-08 | 2022-06-08 | 漏斗数据的查询方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114925099A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874926A (zh) * | 2018-05-31 | 2018-11-23 | 康键信息技术(深圳)有限公司 | 海量数据查询方法、装置、计算机设备和存储介质 |
CN109993553A (zh) * | 2017-12-30 | 2019-07-09 | ***通信集团山西有限公司 | 基于逆向漏斗的数据分析方法、装置、设备及介质 |
CN110675194A (zh) * | 2019-09-29 | 2020-01-10 | 北京思维造物信息科技股份有限公司 | 一种漏斗分析方法、装置、设备及可读介质 |
CN111523921A (zh) * | 2019-12-31 | 2020-08-11 | 支付宝实验室(新加坡)有限公司 | 漏斗分析方法、分析设备、电子设备及可读存储介质 |
US20200401589A1 (en) * | 2019-06-21 | 2020-12-24 | Shopify Inc. | Systems and methods for bitmap filtering when performing funnel queries |
CN112650743A (zh) * | 2020-12-30 | 2021-04-13 | 咪咕文化科技有限公司 | 一种漏斗数据分析方法、***、电子设备及存储介质 |
-
2022
- 2022-06-08 CN CN202210646207.0A patent/CN114925099A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109993553A (zh) * | 2017-12-30 | 2019-07-09 | ***通信集团山西有限公司 | 基于逆向漏斗的数据分析方法、装置、设备及介质 |
CN108874926A (zh) * | 2018-05-31 | 2018-11-23 | 康键信息技术(深圳)有限公司 | 海量数据查询方法、装置、计算机设备和存储介质 |
US20200401589A1 (en) * | 2019-06-21 | 2020-12-24 | Shopify Inc. | Systems and methods for bitmap filtering when performing funnel queries |
CN110675194A (zh) * | 2019-09-29 | 2020-01-10 | 北京思维造物信息科技股份有限公司 | 一种漏斗分析方法、装置、设备及可读介质 |
CN111523921A (zh) * | 2019-12-31 | 2020-08-11 | 支付宝实验室(新加坡)有限公司 | 漏斗分析方法、分析设备、电子设备及可读存储介质 |
CN112650743A (zh) * | 2020-12-30 | 2021-04-13 | 咪咕文化科技有限公司 | 一种漏斗数据分析方法、***、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
王志主编: "大数据技术基础", 31 January 2021, 武汉:华中科技大学出版社, pages: 142 - 145 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110795455B (zh) | 依赖关系解析方法、电子装置、计算机设备及可读存储介质 | |
CN111104421A (zh) | 一种基于数据接口标准配置的数据查询方法及装置 | |
CN107239392B (zh) | 一种测试方法、装置、终端及存储介质 | |
CN110162544B (zh) | 异构数据源数据获取方法及装置 | |
CN108304329B (zh) | 一种测试用例的设计方法、装置、终端及可读存储介质 | |
CN108388509B (zh) | 一种软件测试方法、计算机可读存储介质及终端设备 | |
CN108460068B (zh) | 报表导入导出的方法、装置、存储介质及终端 | |
CN113127347A (zh) | 一种接口测试方法、装置、设备及可读存储介质 | |
CN110750440A (zh) | 数据测试方法及终端设备 | |
CN115729817A (zh) | 测试用例库的生成及优化方法、装置、电子设备和存储介质 | |
CN110704404A (zh) | 一种数据质量校验方法、装置、*** | |
CN114064503A (zh) | 一种ui自动化测试方法、装置、电子设备及存储介质 | |
CN112699027A (zh) | 一种接口测试方法、装置、设备及可读存储介质 | |
CN105022746A (zh) | 一种字库生成的方法、服务器及*** | |
CN114925099A (zh) | 漏斗数据的查询方法、装置及电子设备 | |
CN113448867B (zh) | 一种软件压力测试方法及装置 | |
CN111352825B (zh) | 数据接口的测试方法、装置及服务器 | |
CN108334313A (zh) | 用于大型soc研发的持续集成方法、装置及代码管理*** | |
CN114116712A (zh) | 扩展字段处理方法、装置、电子设备及存储介质 | |
CN113609152A (zh) | 数据处理方法、装置及计算设备 | |
CN108073594B (zh) | 一种生成热力图的方法及装置 | |
CN109471764B (zh) | 一种***信息快速读取方法、装置、终端及存储介质 | |
CN112540754B (zh) | 基于b/s架构的构件复用方法、装置、电子设备及存储介质 | |
CN108829592B (zh) | 快速访问寄存器和表项的验证方法、装置和验证设备 | |
CN114416585A (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 |