筛选会话的方法和装置与流程

文档序号:12824927阅读:201来源:国知局
筛选会话的方法和装置与流程

本发明涉及数据库领域,具体而言,涉及一种筛选会话的方法和装置。



背景技术:

在分布式环境下,目前常用的查询引擎有hive,impala这些结构化的带元数据的数据库。在这些结构化的带元数据的数据库中,通常,将各类事件的数据记录在各个事实数据表中。在用户访问互联网的过程中,一般有会话表(session)、页面浏览表(pageview)和订单表(order)等多种表示用户访问行为的事实数据表,这些数据表可以通过用户的会话标识(sessionid)进行关联,以形成整个会话的所有实体。

但是,由于数据表之间关联性差,当用户需要从多个维度获取多张事实数据表中满足维度或关系条件的数据时,例如过滤条件为产品是a或页面链接是b的会话时,需要对数据库中的多张数据表进行多次查询,导致会话查询过程复杂,造成资源浪费。

针对现有技术的分布式数据库中,按照或关系筛选会话的过程复杂、造成资源浪费的技术问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种筛选会话的方法和装置,以至少解决现有技术的分布式数据库中,按照或关系筛选会话的过程复杂、造成资源浪费的技术问题。

根据本发明实施例的一个方面,提供了一种筛选会话的方法,包括:获取用于筛选会话的筛选条件,其中,筛选条件包括:至少两个维度元素的或关系;从多张数据表中提取与筛选条件相关的数据表集合,其中,数据表集合中的每个数据表至少包含如下任意一项:任意一个维度元素;从数据表集合中提取筛选条件满足预设条件的会话,得到筛选后的会话。

根据本发明实施例的另一方面,还提供了一种筛选会话的装置,包括:获取单元,用于获取用于筛选会话的筛选条件,其中,筛选条件包括:至少两个维度元素的或关系;提取单元,用于从多张数据表中提取与筛选条件相关的数据表集合,其中,数据表集合中的每个数据表至少包含如下任意一项:任意一个维度元素;筛选单元,用于从数据表集合中提取筛选条件满足预设条件的会话,得到筛选后的会话。

在本发明实施例中,通过获取到用于筛选会话的筛选条件,从多张数据表中提取与筛选条件相关的数据表集合,并从数据表集合中提取筛选条件满足预设条件的会话,得到筛选后的会话。通过本申请实施例,通过根据包含维度或关系的筛选条件,提取数据表集合,进一步从数据表集合中获取筛选条件满足预设条件的会话,简化了现有技术中需要根据维度或关系多次筛选数据表,再根据筛选结果进行分析得到筛选后的会话,从而解决了现有技术的分布式数据库中,按照或关系筛选会话的过程复杂、造成资源浪费的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种筛选会话的方法的流程图;

图2是根据本发明实施例的一种筛选会话的装置的示意图;

图3是根据本发明实施例的一种可选的筛选会话的装置的示意图;

图4是根据本发明实施例的一种可选的筛选会话的装置的示意图;

图5是根据本发明实施例的一种可选的筛选会话的装置的示意图;以及

图6是根据本发明实施例的一种可选的筛选会话的装置的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚 地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:

指标:是指可以进行聚合运算的值,例如,访问页面数可以是一个指标。

维度:是多维数据库的结构性特性,是数据表中用来描述数据的分类的有组织层次结构,例如,操作系统可以是一个维度。

数据表:是数据库最重要的组成部分之一,包含用户访问网页产生的所有数据信息,例如,用户访问网页产生的访问页面,访问时长,访问页面数等相关的数据信息。

关联键:是分布式数据库的重要组成部分,是一个数据表与另一个数据表产生关系的字段,例如,可以通过id进行关联。

实施例1

根据本发明实施例,提供了一种筛选会话的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的一种筛选会话的方法的流程图,如图1所示,该方法包括如下步骤:

步骤s102,获取用于筛选会话的筛选条件,其中,筛选条件包括:至少两个维度元素的或关系。

在一种可选的方案中,可以根据用户需求设置用于筛选会话的筛选条件,例如,用户需要筛选买了产品a或访问网页链接b,买了产品c或访问页面链接d,以及买了产品c或使用手机的会话,那么获取到的筛选条件是产品名称(productname)和页面链接(pageurl)的或关系,是产品名称(productname)和访问终端的或关系。

步骤s104,从多张数据表中提取与筛选条件相关的数据表集合,其中,数据表集合中的每个数据表至少包含如下任意一项:任意一个维度元素。

在一种可选的方案中,根据获取到转换后的指标元素筛选条件,在分布式数据库包含的多张数据表中进行查询,确定包含任意一个指标元素或任意一个维度元素的多张数据表,将该多张数据表构成一个数据表集合。

例如,以维度是产品名称(productname),页面链接(pageurl)和访问终端为例, 对本发明上述实施例进行说明。可以根据用户的需要设置筛选会话的筛选条件,如果用户需要筛选买了产品a或访问网页链接b,买了产品c或访问页面链接d,以及买了产品c或使用手机的会话,则那么获取到的筛选条件是产品(product)和页面链接(pageurl)的或关系,产品(product)和访问终端的或关系。可以根据该筛选条件,在数据库包含的全部数据表中进行查询,得到包含三个维度元素的电商产品表(product),页面浏览表(pageview)和会话表(session),将电商产品表(product),页面浏览表(pageview)和会话表(session)构成数据表集合。

步骤s106,从数据表集合中提取筛选条件满足预设条件的会话,得到筛选后的会话。

在一种可选的方案中,上述预设条件可以根据用户的筛选需要进行设定,在提取到包含筛选条件的数据表集合之后,可以根据预设条件在数据表集合中进行查询,得到筛选条件满足预设条件的会话,作为筛选后的会话。

例如,仍以维度是产品名称(productname),页面链接(pageurl)和访问终端为例,对本发明上述实施例进行说明。可以根据用户的需要设置筛选会话的筛选条件,如果用户需要筛选买了产品a或访问网页链接b,买了产品c或访问页面链接d,以及买了产品c或使用手机的会话,则那么获取到的筛选条件是产品(product)和页面链接(pageurl)的或关系,产品(product)和访问终端的或关系。可以根据该筛选条件,在数据库包含的全部数据表中进行查询,得到包含三个维度元素的电商产品表(product),页面浏览表(pageview)和会话表(session),将电商产品表(product),页面浏览表(pageview)和会话表(session)构成数据表集合。可以根据预设条件对数据表集合包含的每个会话进行筛选,将筛选条件满足预设条件的会话作为筛选后的会话。

采用本申请实施例,通过获取到用于筛选会话的筛选条件,从多张数据表中提取与筛选条件相关的数据表集合,并从数据表集合中提取筛选条件满足预设条件的会话,得到筛选后的会话。通过本申请实施例,通过根据包含维度或关系的筛选条件,提取数据表集合,进一步从数据表集合中获取筛选条件满足预设条件的会话,简化了现有技术中需要根据维度或关系多次筛选数据表,再根据筛选结果进行分析得到筛选后的会话,从而解决了现有技术的分布式数据库中,按照或关系筛选会话的过程复杂、造成资源浪费的技术问题。

根据本申请上述实施例,步骤s104,从多张数据表中提取与筛选条件相关的数据表集合包括如下步骤:

步骤s1042,判断多张数据表中是否存在同时包含至少两个维度元素的数据表。

步骤s1044,在多张数据表中不存在同时包含至少两个维度元素的数据表的情况下,从多张数据表中获取包含任意一个维度元素的一组数据表,并从一组数据表中提取具有表连接关系的数据表构成数据表集合。

在一种可选的方案中,在获取到筛选条件之后,根据筛选条件,在数据库包含的多张数据表中进行查询,确定包含任意一个维度元素的多张数据表,并判断多张数据表中是否存在同时包含至少两个维度元素的数据表,如果不存在,即说明至少两个维度元素是跨表维度元素,则从数据表中获取包含任意一个维度元素且具有表连接关系的多张数据表,并将该多张数据表作为数据表集合;如果存在,即至少两个维度元素是同表维度元素,则直接在该数据表中进行筛选过滤。

可选地,判断或关系是否能在本表进行实现(即是否为同表或),如能,则直接实现,否则进行后续跨表或阶段。

例如,以维度是产品名称(productname),页面链接(pageurl)和访问终端为例,对本发明上述实施例进行说明。可以根据用户的需要设置筛选会话的筛选条件,如果用户需要筛选买了产品a或访问网页链接b,买了产品c或访问页面链接d,以及买了产品c或使用手机的会话,则那么获取到的筛选条件是产品(product)和页面链接(pageurl)的或关系,产品(product)和访问终端的或关系。可以根据该筛选条件,在数据库包含的全部数据表中进行查询,得到包含三个维度元素的电商产品表(product),页面浏览表(pageview)和会话表(session),如果数据表中不存在同时包含三个维度元素的数据表,并且电商产品表(product),页面浏览表(pageview)和会话表(session)之间具有表连接关系,则将电商产品表(product),页面浏览表(pageview)和会话表(session)作为数据表集合。

此处需要说明的是,用户访问页面产生的访问数据通常会存储在不同的数据库和数据表中,因此,通常情况下,不存在同时包含至少两个维度元素的数据表,在这种情况下,现有技术的筛选会话的方式过程复杂,筛选时间长。

根据本申请上述实施例,在步骤s1044,从一组数据表中提取具有表连接关系的数据表构成数据表集合之前,上述方法还包括如下步骤:

步骤s1046,获取一组数据表中每个数据表的连接键值。

在一种可选的情况中,具有表连接关系的数据表中每个数据表都存在一个或多个连接键值,可以是特定的字段指标。

例如,以维度是产品名称(productname),页面链接(pageurl)和访问终端为例,对本发明上述实施例进行说明。可以根据用户的需要设置筛选会话的筛选条件,如果用户需要筛选买了产品a或访问网页链接b,买了产品c或访问页面链接d,以及买了产品c或使用手机的会话,则那么获取到的筛选条件是产品(product)和页面链接(pageurl)的或关系,产品(product)和访问终端的或关系。可以根据该筛选条件,在数据库包含的全部数据表中进行查询,得到包含三个维度元素的电商产品表(product),页面浏览表(pageview)和会话表(session),获取到上述三个表的连接键值,即会话标识(sessionid)。

步骤s1048,根据每个数据表的连接键值,将一组数据表进行连接,得到具有表连接关系的数据表。

在一种可选的方案中,获取每个数据表的连接键值之后,根据连接键值的内容,将多张数据表进行连接,得到具有表连接关系的数据表。

例如,以维度是产品名称(productname),页面链接(pageurl)和访问终端为例,对本发明上述实施例进行说明。可以根据用户的需要设置筛选会话的筛选条件,如果用户需要筛选买了产品a或访问网页链接b,买了产品c或访问页面链接d,以及买了产品c或使用手机的会话,则那么获取到的筛选条件是产品(product)和页面链接(pageurl)的或关系,产品(product)和访问终端的或关系。可以根据该筛选条件,在数据库包含的全部数据表中进行查询,得到包含三个维度元素的电商产品表(product),页面浏览表(pageview)和会话表(session),获取到上述三个表的连接键值,即会话标识(sessionid),并通过会话标识(sessionid)将电商产品表(product),页面浏览表(pageview)和会话表(session)进行连接,将相同会话标识(sessionid)的内容进行合并。

此处需要说明的是,延迟或判断,因为所有维度过滤,最后会生成相关的解析树,并逐节点(表)进行连接,在连接的过程中,一旦发现满足或关系,则进行或关系判断,由于表连接都会带有不同的粒度(groupby字段),所以需要在延迟或连接前,先派生一个或关系是否满足的列。

根据本申请上述实施例,步骤s106,从数据表集合中提取筛选条件满足预设条件的会话,得到筛选后的会话包括如下步骤:

步骤s1062,读取数据表集合中每个会话包含的至少两个维度元素对应的数据。

步骤s1064,判断任意一个会话包含的至少两个维度元素中每一个维度元素对应的数据是否大于等于预设值。

步骤s1066,在任意一个会话包含的任意一个维度元素对应的数据大于等于预设 值的情况下,确定任意一个会话为筛选后的会话。

具体地,上述预设值可以是1。

在一种可选的方案中,在得到数据表集合之后,从数据表集合包含的多张数据表中读取每个会话包含的每个维度元素对应的数据,其中,每个维度元素对应的数据为该维度元素是否满足条件的派生列,例如,维度元素为产品名称,如果会话标识为1的会话的产品名称是a,满足条件,则产品名称对应的数据为1;如果会话标识为1的会话的产品名称是k,不满足条件,则产品名称对应的数据为0。

例如,以维度是产品名称(productname),页面链接(pageurl)和访问终端为例,对本发明上述实施例进行说明。如果用户需要筛选买了产品a或访问页面链接b或使用手机的会话,在将电商产品表(product),页面浏览表(pageview)和会话表(session)进行连接,将相同会话标识(sessionid)的内容进行合并之后,读取每个会话标识对应的产品名称(productname),页面链接(pageurl)和访问终端,例如,会话标识为1的会话的产品名称是a,则产品名称维度对应的数据为1等于预设值1,页面链接是d,则页面链接对应的数据为0小于预设值1,访问终端是电脑,则访问终端维度对应的数据是0小于预设值1,因此确定会话标识为1的会话是筛选后的会话;会话标识为2的会话的产品名称是c,则产品名称维度对应的数据为0小于预设值1,页面链接是b,则页面链接对应的数据为1等于预设值1,访问终端是电脑,则访问终端维度对应的数据是0小于预设值1,因此确定会话标识为2的会话是筛选后的会话;会话标识为3的会话的产品名称是是c,则产品名称维度对应的数据为0小于预设值1,页面链接是d,则页面链接对应的数据为0小于预设值1,访问终端是手机,则访问终端维度对应的数据是1等于预设值1,因此确定会话标识为3的会话是筛选后的会话;会话标识为4的会话的产品名称是c,则产品名称维度对应的数据为0小于预设值1,页面链接是d,则页面链接对应的数据为0小于预设值1,访问终端是电脑,则访问终端维度对应的数据是0小于预设值1,因此确定会话标识为4的会话不是筛选后的会话。

根据本申请上述实施例,步骤s1062,读取数据表集合中每个会话包含的至少两个维度元素对应的数据包括如下步骤:

步骤s10622,提取数据表集合中至少两个维度元素中每一个维度元素对应的数据。

步骤s10624,根据每一个维度元素的聚合类型,将每一个维度元素对应的数据进行聚合运算,得到至少两个维度元素对应的数据。

具体地,上述聚合类型可以是求和,求平均,率值等。

在一种可选的方案中,在多张数据表进行表连接之后,提取多张数据表中每个会话包含的每个维度元素对应的数据,派生每个维度元素对应的数据是否满足的列,如 ismobile表示,根据维度元素的聚合类型,进行聚合运算,得到每个维度元素对应的数据。

例如,以维度是产品名称(productname),页面链接(pageurl)和访问终端为例,对本发明上述实施例进行说明。在将电商产品表(product),页面浏览表(pageview)和会话表(session)进行连接,将相同会话标识(sessionid)的内容进行合并之后,读取每个会话标识对应的产品名称(productname),页面链接(pageurl)和访问终端,例如,会话标识为1的会话的产品名称是a和b,则派生1和1,页面链接不是c也不是d,则派生0和0,访问终端不是手机,则派生,并且每个维度元素的类型均为求和,则对同一个会话的派生列进行求和,得到至少两个维度元素的数据。

可选地,根据上述方法生成的sql查询语句:

此处需要说明的是,对于该跨表或过滤条件,派生相关的或关系是否满足列,如上面示例的productname_statisfied_a表示productname对于a条件是否满足,可采用casewhenelseend的sql语法进行条件判断,并且在表连接时,进行或关系判断,看连接后的表,是否满足所有或关系,或是存在所有或关系的派生列,若满足,则进行或关系判断,并移除掉或关系过滤记录,防止后续判断的性能开销,若否,则继续保留,待下一表连接时进行判断,最终所有表连接完成后,或关系自然就消除了。

实施例2

根据本发明实施例,提供了一种筛选会话的装置实施例,如图2所示,该装置包括:获取单元21,提取单元23和筛选单元25。

其中,获取单元21用于获取用于筛选会话的筛选条件,其中,筛选条件包括:至少两个维度元素的或关系。

在一种可选的方案中,可以根据用户需求设置用于筛选会话的筛选条件,例如,用户需要筛选买了产品a或访问网页链接b,买了产品c或访问页面链接d,以及买了产品c或使用手机的会话,那么获取到的筛选条件是产品名称(productname)和页面链接(pageurl)的或关系,是产品名称(productname)和访问终端的或关系。

提取单元23用于从多张数据表中提取与筛选条件相关的数据表集合,其中,数据表集合中的每个数据表至少包含如下任意一项:任意一个维度元素。

在一种可选的方案中,根据获取到转换后的指标元素筛选条件,在分布式数据库包含的多张数据表中进行查询,确定包含任意一个指标元素或任意一个维度元素的多 张数据表,将该多张数据表构成一个数据表集合。

例如,以维度是产品名称(productname),页面链接(pageurl)和访问终端为例,对本发明上述实施例进行说明。可以根据用户的需要设置筛选会话的筛选条件,如果用户需要筛选买了产品a或访问网页链接b,买了产品c或访问页面链接d,以及买了产品c或使用手机的会话,则那么获取到的筛选条件是产品(product)和页面链接(pageurl)的或关系,产品(product)和访问终端的或关系。可以根据该筛选条件,在数据库包含的全部数据表中进行查询,得到包含三个维度元素的电商产品表(product),页面浏览表(pageview)和会话表(session),将电商产品表(product),页面浏览表(pageview)和会话表(session)构成数据表集合。

筛选单元25用于从数据表集合中提取筛选条件满足预设条件的会话,得到筛选后的会话。

在一种可选的方案中,上述预设条件可以根据用户的筛选需要进行设定,在提取到包含筛选条件的数据表集合之后,可以根据预设条件在数据表集合中进行查询,得到筛选条件满足预设条件的会话,作为筛选后的会话。

例如,仍以维度是产品名称(productname),页面链接(pageurl)和访问终端为例,对本发明上述实施例进行说明。可以根据用户的需要设置筛选会话的筛选条件,如果用户需要筛选买了产品a或访问网页链接b,买了产品c或访问页面链接d,以及买了产品c或使用手机的会话,则那么获取到的筛选条件是产品(product)和页面链接(pageurl)的或关系,产品(product)和访问终端的或关系。可以根据该筛选条件,在数据库包含的全部数据表中进行查询,得到包含三个维度元素的电商产品表(product),页面浏览表(pageview)和会话表(session),将电商产品表(product),页面浏览表(pageview)和会话表(session)构成数据表集合。可以根据预设条件对数据表集合包含的每个会话进行筛选,将筛选条件满足预设条件的会话作为筛选后的会话。

采用本申请实施例,通过获取到用于筛选会话的筛选条件,从多张数据表中提取与筛选条件相关的数据表集合,并从数据表集合中提取筛选条件满足预设条件的会话,得到筛选后的会话。通过本申请实施例,通过根据包含维度或关系的筛选条件,提取数据表集合,进一步从数据表集合中获取筛选条件满足预设条件的会话,简化了现有技术中需要根据维度或关系多次筛选数据表,再根据筛选结果进行分析得到筛选后的会话,从而解决了现有技术的分布式数据库中,按照或关系筛选会话的过程复杂、造成资源浪费的技术问题。

根据本申请上述实施例,如图3所示,提取单元23包括:第一判断模块31和提取模块33。

其中,第一判断模块31用于判断多张数据表中是否存在同时包含至少两个维度元素的数据表。

提取模块33用于在多张数据表中不存在同时包含至少两个维度元素的数据表的情况下,从多张数据表中获取包含任意一个维度元素的一组数据表,并从一组数据表中提取具有表连接关系的数据表构成数据表集合。

在一种可选的方案中,在获取到筛选条件之后,根据筛选条件,在数据库包含的多张数据表中进行查询,确定包含任意一个维度元素的多张数据表,并判断多张数据表中是否存在同时包含至少两个维度元素的数据表,如果不存在,即说明至少两个维度元素是跨表维度元素,则从数据表中获取包含任意一个维度元素且具有表连接关系的多张数据表,并将该多张数据表作为数据表集合;如果存在,即至少两个维度元素是同表维度元素,则直接在该数据表中进行筛选过滤。

可选地,判断或关系是否能在本表进行实现(即是否为同表或),如能,则直接实现,否则进行后续跨表或阶段。

例如,以维度是产品名称(productname),页面链接(pageurl)和访问终端为例,对本发明上述实施例进行说明。可以根据用户的需要设置筛选会话的筛选条件,如果用户需要筛选买了产品a或访问网页链接b,买了产品c或访问页面链接d,以及买了产品c或使用手机的会话,则那么获取到的筛选条件是产品(product)和页面链接(pageurl)的或关系,产品(product)和访问终端的或关系。可以根据该筛选条件,在数据库包含的全部数据表中进行查询,得到包含三个维度元素的电商产品表(product),页面浏览表(pageview)和会话表(session),如果数据表中不存在同时包含三个维度元素的数据表,并且电商产品表(product),页面浏览表(pageview)和会话表(session)之间具有表连接关系,则将电商产品表(product),页面浏览表(pageview)和会话表(session)作为数据表集合。

此处需要说明的是,用户访问页面产生的访问数据通常会存储在不同的数据库和数据表中,因此,通常情况下,不存在同时包含至少两个维度元素的数据表,在这种情况下,现有技术的筛选会话的方式过程复杂,筛选时间长。

根据本申请上述实施例,如图4所示,上述装置还包括:获取模块41和连接模块43。

其中,获取模块41用于获取一组数据表中每个数据表的连接键值。

在一种可选的情况中,具有表连接关系的数据表中每个数据表都存在一个或多个连接键值,可以是特定的字段指标。

例如,以维度是产品名称(productname),页面链接(pageurl)和访问终端为例,对本发明上述实施例进行说明。可以根据用户的需要设置筛选会话的筛选条件,如果用户需要筛选买了产品a或访问网页链接b,买了产品c或访问页面链接d,以及买了产品c或使用手机的会话,则那么获取到的筛选条件是产品(product)和页面链接(pageurl)的或关系,产品(product)和访问终端的或关系。可以根据该筛选条件,在数据库包含的全部数据表中进行查询,得到包含三个维度元素的电商产品表(product),页面浏览表(pageview)和会话表(session),获取到上述三个表的连接键值,即会话标识(sessionid)。

连接模块43用于根据每个数据表的连接键值,将一组数据表进行连接,得到具有表连接关系的数据表。

在一种可选的方案中,获取每个数据表的连接键值之后,根据连接键值的内容,将多张数据表进行连接,得到具有表连接关系的数据表。

例如,以维度是产品名称(productname),页面链接(pageurl)和访问终端为例,对本发明上述实施例进行说明。可以根据用户的需要设置筛选会话的筛选条件,如果用户需要筛选买了产品a或访问网页链接b,买了产品c或访问页面链接d,以及买了产品c或使用手机的会话,则那么获取到的筛选条件是产品(product)和页面链接(pageurl)的或关系,产品(product)和访问终端的或关系。可以根据该筛选条件,在数据库包含的全部数据表中进行查询,得到包含三个维度元素的电商产品表(product),页面浏览表(pageview)和会话表(session),获取到上述三个表的连接键值,即会话标识(sessionid),并通过会话标识(sessionid)将电商产品表(product),页面浏览表(pageview)和会话表(session)进行连接,将相同会话标识(sessionid)的内容进行合并。

此处需要说明的是,延迟或判断,因为所有维度过滤,最后会生成相关的解析树,并逐节点(表)进行连接,在连接的过程中,一旦发现满足或关系,则进行或关系判断,由于表连接都会带有不同的粒度(groupby字段),所以需要在延迟或连接前,先派生一个或关系是否满足的列。

根据本申请上述实施例,如图5所示,筛选单元25包括:读取模块51,第二判断模块53和确定模块55。

其中,读取模块51用于读取数据表集合中每个会话包含的至少两个维度元素对应 的数据。

第二判断模块53用于判断任意一个会话包含的至少两个维度元素中每一个维度元素对应的数据是否大于等于预设值。

确定模块55用于在任意一个会话包含的任意一个维度元素对应的数据大于等于预设值的情况下,确定任意一个会话为筛选后的会话。

具体地,上述预设值可以是1。

在一种可选的方案中,在得到数据表集合之后,从数据表集合包含的多张数据表中读取每个会话包含的每个维度元素对应的数据,其中,每个维度元素对应的数据为该维度元素是否满足条件的派生列,例如,维度元素为产品名称,如果会话标识为1的会话的产品名称是a,满足条件,则产品名称对应的数据为1;如果会话标识为1的会话的产品名称是k,不满足条件,则产品名称对应的数据为0。

例如,以维度是产品名称(productname),页面链接(pageurl)和访问终端为例,对本发明上述实施例进行说明。如果用户需要筛选买了产品a或访问页面链接b或使用手机的会话,在将电商产品表(product),页面浏览表(pageview)和会话表(session)进行连接,将相同会话标识(sessionid)的内容进行合并之后,读取每个会话标识对应的产品名称(productname),页面链接(pageurl)和访问终端,例如,会话标识为1的会话的产品名称是a,则产品名称维度对应的数据为1等于预设值1,页面链接是d,则页面链接对应的数据为0小于预设值1,访问终端是电脑,则访问终端维度对应的数据是0小于预设值1,因此确定会话标识为1的会话是筛选后的会话;会话标识为2的会话的产品名称是c,则产品名称维度对应的数据为0小于预设值1,页面链接是b,则页面链接对应的数据为1等于预设值1,访问终端是电脑,则访问终端维度对应的数据是0小于预设值1,因此确定会话标识为2的会话是筛选后的会话;会话标识为3的会话的产品名称是是c,则产品名称维度对应的数据为0小于预设值1,页面链接是d,则页面链接对应的数据为0小于预设值1,访问终端是手机,则访问终端维度对应的数据是1等于预设值1,因此确定会话标识为3的会话是筛选后的会话;会话标识为4的会话的产品名称是c,则产品名称维度对应的数据为0小于预设值1,页面链接是d,则页面链接对应的数据为0小于预设值1,访问终端是电脑,则访问终端维度对应的数据是0小于预设值1,因此确定会话标识为4的会话不是筛选后的会话。

根据本申请上述实施例,如图6所示,读取模块51包括:提取子模块61和处理子模块63。

其中,提取子模块61用于提取数据表集合中至少一个维度元素中每一个维度元素对应的数据。

处理子模块63用于根据每一个维度元素的聚合类型,将每一个维度元素对应的数据进行聚合运算,得到至少两个维度元素对应的数据。

具体地,上述聚合类型可以是求和,求平均,率值等。

在一种可选的方案中,在多张数据表进行表连接之后,提取多张数据表中每个会话包含的每个维度元素对应的数据,派生每个维度元素对应的数据是否满足的列,如ismobile表示,根据维度元素的聚合类型,进行聚合运算,得到每个维度元素对应的数据。

例如,以维度是产品名称(productname),页面链接(pageurl)和访问终端为例,对本发明上述实施例进行说明。在将电商产品表(product),页面浏览表(pageview)和会话表(session)进行连接,将相同会话标识(sessionid)的内容进行合并之后,读取每个会话标识对应的产品名称(productname),页面链接(pageurl)和访问终端,例如,会话标识为1的会话的产品名称是a和b,则派生1和1,页面链接不是c也不是d,则派生0和0,访问终端不是手机,则派生,并且每个维度元素的类型均为求和,则对同一个会话的派生列进行求和,得到至少两个维度元素的数据。

可选地,根据上述方法生成的sql查询语句:

此处需要说明的是,对于该跨表或过滤条件,派生相关的或关系是否满足列,如上面示例的productname_statisfied_a表示productname对于a条件是否满足,可采用casewhenelseend的sql语法进行条件判断,并且在表连接时,进行或关系判断,看连接后的表,是否满足所有或关系,或是存在所有或关系的派生列,若满足,则进行或关系判断,并移除掉或关系过滤记录,防止后续判断的性能开销,若否,则继续保留,待下一表连接时进行判断,最终所有表连接完成后,或关系自然就消除了。

筛选会话的装置包括处理器和存储器,上述获取单元,提取单元和筛选单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元。上述筛选条件,数据表集合和预设条件都可以存储在存储器中。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数解析文本内容。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。

本申请还提供了一种计算机程序产品的实施例,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:获取用于筛选会话的筛选条件,其中,筛选条件包括:至少两个维度元素的或关系;从多张数据表中提取与筛选条件相关的数据表集合,其中,数据表集合中的每个数据表至少包含如下任意一项:任意一个维度元素;从数据表集合中提取筛选条件满足预设条件的会话,得到筛选后的会话。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1