掌桥专利:专业的专利平台
掌桥专利
首页

数据处理方法、数据处理装置、计算机设备和介质

文献发布时间:2023-06-19 11:45:49


数据处理方法、数据处理装置、计算机设备和介质

技术领域

本公开涉及计算机技术领域,更具体地,涉及一种数据处理方法、数据处理装置、计算机设备和介质。

背景技术

相关技术中,用户向数据仓库发送查询请求时需要指定数据源和聚合表格,但随着业务的需求的变化,用户分析的维度也随之变化,会导致从一个数据源中聚合出多张聚合表格。现有数据仓库的数据表格可以认为是数据库中的物化视图或索引,用户每次发出查询请求后都需要从返回的大量的聚合表格中选择满足查询需求并且查询性能最优的表,因此需要用户对数据表格的结构和模型有清晰的认识。这样不仅增加了用户的学习成本,也增大了服务端的维护成本。

发明内容

有鉴于此,本公开提供了一种数据处理方法、数据处理装置、计算机设备和介质。

本公开的一个方面提供了一种数据处理方法,包括:获取数据源。其中,数据源包括至少一个维度项和至少一个指标项。对数据源分别进行多次聚合,以得到多个聚合表格。接收来自客户端的查询请求,从上述多个聚合表格中筛选得到符合查询请求的聚合表格。再将筛选得到的符合查询请求的聚合表格发送至客户端。

根据本公开的实施例,上述对数据源分别进行多次聚合,以得到多个聚合表格包括:对于多次聚合中的任一次聚合,从至少一个维度项中确定针对该任一次聚合的维度项,从至少一个指标项中确定针对该任一次聚合的指标项,并且,确定针对该任一次聚合的聚合函数。基于针对该任一次聚合的维度项、针对该任一次聚合的指标项、和针对该任一次聚合的聚合函数,对数据源进行聚合,以得到针对该任一次聚合的聚合表格。

根据本公开的实施例,数据源每隔预定周期进行一次数据更新和版本更新。多个聚合表格中的任一聚合表格的版本与针对该任一聚合表格的数据源的版本相同。

根据本公开的实施例,查询请求包括查询版本。上述从多个聚合表格中筛选得到符合查询请求的聚合表格包括:根据查询版本对多个聚合表格进行筛选,以得到经过第一筛选的聚合表格。

根据本公开的实施例,查询请求还包括:指定维度项和指定指标项。上述从多个聚合表格中筛选得到符合查询请求的聚合表格还包括:从经过第一筛选的聚合表格中筛选包含指定维度项和指定指标项的聚合表格,以得到经过第二筛选的聚合表格。

根据本公开的实施例,查询请求还包括过滤条件,过滤条件包括指定维度项和指定维度项的取值。上述从多个聚合表格中筛选得到符合查询请求的聚合表格还包括:对于经过第二筛选的聚合表格中的任一聚合表格,按照预定顺序搜索所述任一聚合表格中的维度项。将搜索到的每个维度项与指定维度项进行匹配,如果匹配成功,则确定该维度项的权值,并继续搜索下一维度项,如果匹配失败,则结束搜索。然后基于所确定的维度项的权值,确定该任一聚合表格的评分。在确定经过第二筛选的各聚合表格的评分后,筛选评分最高的聚合表格,以作为经过第三筛选的聚合表格。

根据本公开的实施例,上述从多个聚合表格中筛选得到符合查询请求的聚合表格还包括:从经过第三筛选的聚合表格中筛选出维度项数量最小和/或数据数量最小的聚合表格。

本公开的另一个方面提供了一种数据处理装置,包括:获取模块、聚合模块、接收模块、筛选模块和发送模块。获取模块用于获取数据源。其中,数据源包括至少一个维度项和至少一个指标项。聚合模块用于对数据源分别进行多次聚合,以得到多个聚合表格。其中,多个聚合表格各自的维度项不同,和/或,多个聚合表格各自的指标项不同。接收模块用于接收来自客户端的查询请求。筛选模块用于从多个聚合表格中筛选得到符合查询请求的聚合表格。发送模块用于将符合查询请求的聚合表格发送至客户端。

本公开的另一方面提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的方法。

本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。

本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。

根据本公开的实施例,在用户需要查询关于某些维度、某些指标的聚合表格时,基于查询请求从预先处理得到的多个聚合表格中筛选出最符合该查询请求的聚合表格,再将该筛选得到的聚合表格返回至客户端。不必如相关技术般向客户端返回多个聚合表格,从而无需用户从返回的多个聚合表格中进行选择,使得用户尽可能快地获知感兴趣的数据且无需付出大量的学习使用成本,符合用户需求。

附图说明

通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:

图1示意性示出了根据本公开实施例的应用数据处理方法和数据处理装置的示例性系统架构;

图2示意性示出了根据本公开实施例的数据处理方法的流程图;

图3示意性示出了根据本公开另一实施例的数据处理方法的流程图;

图4示意性示出了根据本公开实施例的数据处理装置的框图;以及

图5示意性示出了根据本公开实施例的计算机设备的框图。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。

本公开的实施例提供了一种数据处理方法和数据处理装置。该方法包括准备过程、接收过程和路由过程。准备过程可以分为获取过程和聚合过程。在获取过程,获取数据源。其中,数据源包括至少一个维度项和至少一个指标项。在聚合过程,对获取到的数据源分别进行多次聚合,以得到多个聚合表格。其中,多个聚合表格各自的维度项不同,和/或,多个聚合表格各自的指标项不同。准备结束后可以进行接收过程。在接收过程,接收来自客户端的查询请求。然后进行路由过程,路由过程可以分为筛选过程和发送过程。在筛选过程,从上述多个聚合表格中筛选得到符合查询请求的聚合表格。在发送过程,将筛选得到的符合查询请求的聚合表格发送至相应的客户端。

图1示意性示出了根据本公开实施例的可以应用数据处理方法和数据处理装置的示例性系统架构100。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。

如图1所示,系统架构100可以包括终端设备101,网络102,一级服务端103,以及二级服务端104、105、106,不同层级或同一层级的不同服务端可以提供不同业务相关的数据。

网络102为用以在终端设备101和一级服务端103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。一级服务端103可以通过各种有线或无线通信链路与二级服务端104、105、106通信。

终端设备101可以是各种电子设备,包括但不限于智能手机、个人计算机、平板电脑、智能手表等,在此不做限制。

终端设备101中可以安装具有各种功能的客户端应用(以下简称“客户端”)。可以将终端设备101中的各个客户端的功能支持分解到各个层级的服务端中。例如,终端设备101中的一个客户端具有广告投放功能,用户主通过终端设备101向一级服务端103发送广告投放请求,一级服务端103通过不同二级服务端进行不同业务的广告投放。对于投放了广告的用户而言,他们在广告投放之后都会频繁的查看广告的投放效果。一级服务端103需要从各个二级服务端104、105、106收集能够表征广告投放效果的数据,并以报表的形式推送至终端设备101从而展示给用户。本例以广告投放业务场景为例,在其他例子中,可以应用于各种业务场景中,在此不做限制。

应该理解,图1中的终端设备、网络、一级服务端和二级服务端的数目、以及服务端的层级数目仅仅是示意性的。根据实际需要,可以设置为任意数目。

目前,联机实时分析(Online Analytical Processing,OLAP)技术广泛应用在数据分析与智能决策当中,上述收集数据并形成报表的过程可以应用该OLAP技术。

OLAP技术主要使用数据仓库进行数据的存储与查询。虽然各种数据仓库因为应用场景的不同,在架构设计以及实现细节都有着较大的差距,但其都允许用户从多种角度分析多维数据,其最常使用的就是上卷(Roll-Up),表示沿着某一维度按照一定的规则对数据进行聚合操作。沿着某一维度,即按照层级关系从子类维度向父类维度进行聚合。在实际的工程实践当中,为了满足不同分析维度的需要,通常需要基于同一数据源建立多张Roll-Up表(也可称为“聚合表格”),这些Roll-Up表之间具有不同的表格模式(tableschema),并用不同的命名加以区分。当用户想要从新的维度来分析数据时,如果原有的Roll-Up表不能满足需求时,需要基于用户分析的维度建立新的Roll-Up表,并基于新的Roll-Up表名构造新的请求用来获取数据。

用户向数据仓库发送查询请求时需要指定数据源和Roll-Up表,但随着业务的需求的变化,用户分析的维度也随之变化,会导致从一个数据源中聚合出多张聚合表格。现有数据仓库的Roll-Up表可以认为是数据库中的物化视图或索引,用户每次发出查询请求后都需要从返回的大量的Roll-Up表中选择满足查询需求并且查询性能最优的表,因此需要用户对Roll-Up表的模式(schema)和数据模型有清晰的认识,这样不仅增加了用户的学习成本,也增大了服务端的维护成本。

用户在进行查询请求时,其实并不关心指定的数据源上有多少Roll-Up表,以及每张Roll-Up表的模式,用户只需关心符合过滤条件的维度和指标下的数据结构,因此数据仓库应该具有依据请求自动路由到最优Roll-Up表的策略,以减小用户的学习使用成本。

根据本公开实施例,提供了一种用于响应用户的查询请求返回最符合用户需求的数据结果的数据处理方法,下面通过图例对该方法进行示例性说明。应注意,以下方法中各个操作的序号仅作为该操作的表示以便描述,而不应被看作表示该各个操作的执行顺序。除非明确指出,否则该方法不需要完全按照所示顺序来执行。

图2示意性示出了根据本公开实施例的数据处理方法的流程图。

如图2所示,该方法可以包括操作S201~操作S205。

在操作S201,获取数据源。

其中,数据源包括至少一个维度(key)项和至少一个指标(value)项。

例如,在广告投放的业务场景中,数据源为表格形式,可称为基础表格(BaseTable),数据源包含了所支持查询的所有维度项和指标项。如表1所示。

表1

在表1中,从表头(header)部分可以看出包括三个维度项:ID(标识信息)、Date(日期)和City(城市),以及两个指标项:Clicks(点击次数)和Cost(消费金额)。表体(body)部分列出了6个数据,每个数据包括维度项“ID”的取值、维度项“Date”的取值、维度项“City”的取值、指标项“Clicks”的取值、和指标项“Cost”的取值。本例中,不同维度项可以用来表征不同的广告效果数据,如投放广告的用户的标识信息、投放计划、投放单元、广告创意等,可以根据实际业务需要进行划分,在此不做限制。而指标项是广告投放效果的具体数据展现,如点击、展现和消费等,可以根据实际业务需要进行划分,在此不做限制。上述表1仅为示例性展示,在其他场景中,数据源中的维度项和指标项均可进行灵活变化,例如,在进行音乐推荐的业务场景中,可以将维度项划分为音乐类型、音乐人、推荐时间等,将指标项划分为播放次数、点赞次数、收藏次数等。

然后,在操作S202,对数据源分别进行多次聚合,以得到多个聚合表格。

其中,为方便用户的查询,将数据源按照不同维度项和/或指标项分别聚合为多个聚合表格。多个聚合表格各自的维度项不同,和/或,多个聚合表格各自的指标项不同。数据源包含了所支持查询的所有维度项和指标项,而聚合得到的聚合表格一般只包含了部分维度项和/或部分指标项。多个聚合表格互不相同,任意两个聚合表格之间的不同体现在如下至少一种:维度项不同、指标项不同和聚合方式不同。

接着,在操作S203,接收来自客户端的查询请求。

其中,来自客户端的查询请求可以包括能够描述用户的查询目标的一个或多个参数。

接着,在操作S204,从上述多个聚合表格中筛选得到符合查询请求的聚合表格。

其中,本操作S204从多个聚合表格中筛选得到与查询请求中的参数均相符合的聚合表格,作为针对查询请求的查询结果。

接着,在操作S205,将筛选得到的符合查询请求的聚合表格发送至客户端。

本领域技术人员可以理解,根据本公开实施例的数据处理方法在用户需要查询关于某些维度、某些指标的聚合表格时,基于查询请求从预先处理得到的多个聚合表格中筛选出最符合该查询请求的聚合表格,再将该筛选得到的聚合表格返回至客户端。不必如相关技术般向客户端返回多个聚合表格,从而无需用户从返回的多个聚合表格中进行选择,使得用户尽可能快地获知感兴趣的数据且无需付出大量的学习使用成本,符合用户需求。

根据本公开的实施例,以一次聚合过程为例,示例性地说明上述对数据源分别进行多次聚合,以得到多个聚合表格的过程。对于多次聚合中的任一次聚合,首先,从数据源所包含的至少一个维度项中确定针对该次聚合的维度项,从数据源所包含的至少一个指标项中确定针对该次聚合的指标项,并且还确定针对该次聚合的聚合函数。然后,基于针对该次聚合的维度项、针对该次聚合的指标项、和针对该次聚合的聚合函数,对数据源进行聚合,以得到针对该次聚合的聚合表格。

示例性地,在对数据源进行数据导入的时候,为便于数据分析,可以按照维度项的取值进行升序排列或降序排列,如有多个维度项,则按照预先定义的顺序,依次作为排序依据。如上文中的表1,预先定义维度项的顺序为“ID”→“Date”→“City”。优先按照维度项“ID”的取值对多个数据进行升序排列,对于维度项“ID”的取值相同的数据,再按照维度项“Date”的取值进行升序排列,对于维度项“Date”的取值相同的数据,再按照维度项“City”的取值进行升序排列。其中,依据各维度项的取值的类型的不同,使用适合其类型的排序规则,如整型按照大小排序,日期类型按照时间先后排序等。

在对数据源进行一次聚合时,首先确定针对本次聚合操作的维度项包括维度项K

表2

对该数据源进行第一次聚合,得到如表3所示的聚合表格。针对本次聚合的维度项为“Date”,针对本次聚合的指标项为“Cost”,针对本次聚合的聚合函数为求和函数。

表3

对该数据源进行第二次聚合,得到如表4所示的聚合表格。针对本次聚合的维度项为“City”,针对本次聚合的指标项为“Cost”,针对本次聚合的聚合函数也为求和函数。

表4

在本公开的实施例中,由于数据源所监控的数据会随着时间推移而不断产生,故数据源每隔预定周期进行一次数据更新和版本(version)更新。例如,第一次数据灌入所形成的数据源的基本表格,作为版本1的数据源,第二次数据灌入所形成的数据源的基本表格,作为版本2的数据源,以此类推。在进行聚合操作时,聚合得到的聚合表格与聚合操作所针对的数据源具有相同的版本。例如,如果上文中的表3是针对版本1的数据源聚合得到的,则设置表3的版本号为版本1。

根据本公开的实施例,来自客户端的查询请求可以包括查询版本。上述从多个聚合表格中筛选得到符合查询请求的聚合表格的过程可以包括:根据查询版本对多个聚合表格进行筛选,以得到经过第一筛选的聚合表格。例如,服务端中数据源的最新版本为版本3,用户希望查看最新版本的聚合数据,则查询请求中包括表征“版本3”的参数。如服务端包括分布式部署的第一服务器、第二服务器和第三服务器,其中第一服务器和第二服务器已经更新至版本3,而由于机器之间的延迟,第三服务器目前仅更新至版本2。当包含表征“版本3”的参数的查询请求被分配至第一服务器或第二服务器时,第一服务器或第二服务器基于该查询请求筛选出版本号为“版本3”的聚合表格,并向用户返回筛选出的聚合表格。而当包含表征“版本3”的参数的查询请求被分配至第三服务器时,第三服务器基于该查询请求发现当前不具有版本号为“版本3”的聚合表格,则向用户返回“未找到查询结果”的提示信息。通过对查询版本的精确筛选,可以避免因不同机器之间的数据更新不同步而导致的数据聚合结果不一致的问题。可以将第一筛选称为基于版本规则的筛选。

根据本公开的实施例,查询请求还可以包括:指定维度项和指定指标项。指定维度项可以有一个或多个,指定指标项可以有一个或多个。指定维度项和指定指标项表征进行查询的用户所关注的维度项和指标项。上述从多个聚合表格中筛选得到符合查询请求的聚合表格的过程还可以包括:从经过第一筛选的聚合表格中筛选包含指定维度项和指定指标项的聚合表格,以得到经过第二筛选的聚合表格。可以将第二筛选称为基于查询项规则的筛选。

可以理解,经过第二筛选的聚合表格中包含了用户所关注的维度项和指标项,但同时有可能还包含一些非用户关注的维度项和指标项。并且如果排序方式不当,会导致用户查找其所关注的维度项和指标项的效率不高。为此,还可以进一步对经过第二筛选的聚合表格进行第三筛选,根据本公开的实施例,查询请求还可以包括过滤条件,过滤条件包括指定维度项和指定维度项的取值。指定维度项可以有一个或多个。

上述从多个聚合表格中筛选得到符合查询请求的聚合表格的过程还可以包括:对于经过第二筛选的聚合表格中的任一聚合表格,按照预定顺序搜索所述任一聚合表格中的维度项。将搜索到的每个维度项与指定维度项进行匹配,如果匹配成功,则确定该维度项的权值,并继续搜索下一维度项,如果匹配失败,则结束搜索。然后基于所确定的维度项的权值,确定该任一聚合表格的评分。在确定经过第二筛选的各聚合表格的评分后,筛选评分最高的聚合表格,以作为经过第三筛选的聚合表格。一个聚合表格的评分越高,说明在该聚合表格中按照预定顺序能够越快找到所有指定维度项以及所有指定维度项的取值。可以将第三筛选称为基于过滤、排序规则的筛选。

进一步地,根据本公开的实施例,上述从多个聚合表格中筛选得到符合查询请求的聚合表格还可以包括:从经过第三筛选的聚合表格中筛选出维度项数量最小和/或数据数量最小的聚合表格。例如维度项是按列设置的,则选取对应于维度项的列数更少的聚合表格,因为对应于维度项的列数更少的聚合表格具有更高的聚合粒度,数据量更少,查询效率更高。同理地,聚合表格中的行数表示了数据数量,则选择行数更少聚合表格,数据量少,查询效率更高。

下面参考图3,结合具体例子对上文中的各实施例进行示例性说明。

图3示意性示出了根据本公开另一实施例的数据处理方法的流程图。在图3所示的例子中,数据源如表1所示,其中的不同维度项按列分布,不同指标项也按列分布,不同数据按行分布。下文中将对应于维度项的列称为维度列,将对应于指标项的列称为指标列。针对表1所示的数据源聚合得到多个聚合表格。

如图3所示,该方法可以包括操作S301~操作S307。

在操作S301,接收来自客户端的查询请求。

在操作S302,根据查询请求中的查询版本,基于版本规则对多个聚合表格进行第一筛选。

为了实现对数据的并发访问,一般在数据仓库中实现了多版本并发控制(Multi-Version Concurrency Control,MVCC),以避免用户在请求时获取到不一致的数据。因此用户在请求时会包含一个当前请求的版本号,根据本公开的数据处理方法会依据此版本号对聚合表格进行选择,如果一个聚合表格当前能提供查询的版本号不小于请求的版本号,则满足规则,进入下一个规则判定,否则排除该聚合表格。

然后,在操作S303,根据查询请求中的指定维度项和指定指标项,基于查询项规则对经过第一筛选的聚合表格进行第二筛选。

其中,判断聚合表格是否包含所有的指定维度项和指定指标项,如果包含则进入下一个规则判定,否则排除该聚合表格。

接着,在操作S304,根据查询请求中的过滤条件,基于过滤、排序规则对经过第二筛选的聚合表格进行第三筛选。

其中,同一数据源的多个聚合表格有不同的维度列或指标列,并按照维度列进行排序,指标列进行聚合。类似于数据库的B-索引,查询过滤条件的列按照聚合表格的维度列顺序进行最左匹配,匹配的列更多时具有更加高效的查询效率。

例如经过第二筛选的聚合表格包括两个聚合表格,分别如表5和表6所示。

表5

表6

例如查询请求中的过滤条件包括:“ID”=1,“Date”=2017。对于表5所示的聚合表格,按照从左至右的顺序进行搜索,对于搜索到的每一列,判断该列对应的维度项与过滤条件中的每个指定维度项是否匹配,并根据匹配结果来确定该列的权值。在搜索完毕后,利用各列的权值计算表5所示的聚合表格的评分。同理地,对于表6所示的聚合表格,按照从左至右的顺序进行搜索,对于搜索到的每一列,判断该列对应的维度项与过滤条件中的每个指定维度项是否匹配,并根据匹配结果来确定该列的权值。在搜索完毕后,利用各列的权值计算表6所示的聚合表格的评分。

示例性地,上述计算每个聚合表格的评分的方式如下:

For column:schema//从左至右按列遍历表结构,对于遍历到的每一列执行如下操作

Do:

If column in query_colunms:

weight=weight<<1+w(i)//如果一列为过滤条件中包含的维度列,当前评分等于上一次的评分左移1位后加上该列的权值

else:

break//如果一列不是过滤条件中包含的维度列,则跳出循环

Done

其中,weight表示聚合表格的最终评分,其初始值为0,coulmn表示聚合表格中的每一列,query_columns表示查询请求的过滤条件中包含的维度列。w(i)表示第i列基于过滤匹配所确定的权值,i为正整数,该值依据选择性(或者匹配程度)进行设置,选择性更强(或匹配程度越高)就有更高的权值,比如可以设置完全匹配的权值为5,包含但未完全匹配的的权值为4,等等,以此类推,在此不做限制。

对应于表5的聚合表格,按照从左至右的顺序,表5的第一列与过滤条件中的“ID”相匹配,确定w(1)=5,此时weight=0+5=5。继续搜索至第二列,第二列与过滤条件中的“Date”相匹配,确定w(2)=5,此时weight=10+5=15。继续搜索至第三列,第三列与过滤条件不匹配,结束搜索。最终评分为15。对应于表6的聚合表格,按照从左至右的顺序,表6的第一列与过滤条件中的“ID”相匹配,确定w(1)=5,此时weight=0+5=5。继续搜索至第二列,第二列与过滤条件不匹配,结束搜索。最终评分为5。表5所示的聚合表格的评分大于表6所示的聚合表格的评分,则筛选表5所示的聚合表格作为符合查询请求的聚合表格。

如果经过第三筛选后还有多个聚合表格,则继续参考图3。

接着,在操作S305,选取维度列更少的聚合表格。

在操作S305之后如果还剩余多个聚合表格,则执行操作S306。

接着,在操作S306,选取行数更少的聚合表格。其中,行数更少表示数据数量更少。

接着,在操作S307,将最终筛选得到的聚合表格发送至客户端。

可以理解,根据本公开的数据处理方法设计了一种数据仓库在查询时的自动路由策略,该策略包含多个规则,该策略向用户屏蔽了多张聚合表格,降低了用户的学习和使用成本。通过该策略可以找到满足查询请求并且最高效的聚合表格。

图4示意性示出了根据本公开实施例的数据处理装置的框图。

如图4所示,数据处理装置400包括:获取模块410、聚合模块420、接收模块430、筛选模块440和发送模块450。

获取模块410用于获取数据源。

其中,数据源包括至少一个维度项和至少一个指标项。

聚合模块420用于对数据源分别进行多次聚合,以得到多个聚合表格。

接收模块430用于接收来自客户端的查询请求。

筛选模块440用于从多个聚合表格中筛选得到符合查询请求的聚合表格。

发送模块450用于将符合查询请求的聚合表格发送至客户端。

需要说明的是,装置部分实施例中各模块/单元/子单元等的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。

根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

例如,获取模块410、聚合模块420、接收模块430、筛选模块440和发送模块450中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获取模块410、聚合模块420、接收模块430、筛选模块440和发送模块450中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块410、聚合模块420、接收模块430、筛选模块440和发送模块450中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

图5示意性示出了根据本公开实施例的适于实现上文描述的方法的计算机设备的框图。图5示出的计算机设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图5所示,根据本公开实施例的计算机设备500包括处理器501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。处理器501例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器501还可以包括用于缓存用途的板载存储器。处理器501可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

在RAM 503中,存储有设备500操作所需的各种程序和数据。处理器501、ROM 502以及RAM 503通过总线504彼此相连。处理器501通过执行ROM 502和/或RAM 503中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 502和RAM 503以外的一个或多个存储器中。处理器501也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。

根据本公开的实施例,设备500还可以包括输入/输出(I/O)接口505,输入/输出(I/O)接口505也连接至总线504。设备500还可以包括连接至I/O接口505的以下部件中的一项或多项:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。

根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被处理器501执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。

本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。

根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 502和/或RAM 503和/或ROM 502和RAM 503以外的一个或多个存储器。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。

以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

相关技术
  • PET 数据处理方法、PET 数据处理装置、计算机可读的存储介质、以及数据处理方法
  • 数据处理方法、数据处理装置、计算机设备和存储介质
技术分类

06120113047579