CN107092529B - Olap服务方法、装置及*** - Google Patents

Olap服务方法、装置及*** Download PDF

Info

Publication number
CN107092529B
CN107092529B CN201710074233.XA CN201710074233A CN107092529B CN 107092529 B CN107092529 B CN 107092529B CN 201710074233 A CN201710074233 A CN 201710074233A CN 107092529 B CN107092529 B CN 107092529B
Authority
CN
China
Prior art keywords
query
query result
cache
olap service
unit
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.)
Active
Application number
CN201710074233.XA
Other languages
English (en)
Other versions
CN107092529A (zh
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 Xingxuan Technology Co Ltd
Original Assignee
Beijing Xingxuan 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 Xingxuan Technology Co Ltd filed Critical Beijing Xingxuan Technology Co Ltd
Priority to CN201710074233.XA priority Critical patent/CN107092529B/zh
Publication of CN107092529A publication Critical patent/CN107092529A/zh
Application granted granted Critical
Publication of CN107092529B publication Critical patent/CN107092529B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供一种OLAP服务***,一种OLAP服务代理方法、装置及电子设备,以及一种OLAP服务方法、装置及电子设备,涉及联机分析处理技术领域。其中,所述OLAP服务***包括OLAP服务代理装置和多个OLAP服务装置,当OLAP服务的客户端提交查询请求后,通过OLAP服务代理装置接收该请求,并从多个OLAP服务装置中选取一个OLAP服务装置,作为处理该请求的OLAP服务装置,然后将该请求转发至被选取的OLAP服务装置。本发明实施例提供的技术方案,可以有效提高OLAP服务的查询性能及可靠性,从而达到提高OLAP服务可用性的效果。

Description

OLAP服务方法、装置及***
技术领域
本发明实施例涉及联机分析处理技术领域,尤其涉及一种OLAP服务***;相应的,本发明实施例还涉及一种OLAP服务代理方法、装置及电子设备,以及一种OLAP服务方法、装置及电子设备。
背景技术
联机分析处理(OLAP,On-Line Analytical Processing)是数据分析的重要途径之一。通过OLAP服务进行数据分析,能够针对多维数据进行操作,并满足从业务到具体数据存储的解耦需求。
请参见图1,该图为现有技术下OLAP服务***的常规部署方式。由图可见,该部署方式为单点部署OLAP服务装置的方式。在该部署方式下,OLAP服务过程如下所述:1)多个客户端可并发地将其数据分析请求发送到一个OLAP服务装置;2)该OLAP服务装置接收到数据分析请求之后,根据请求进行相应的数据模型的加载、验证及解析处理,然后,把相应的查询请求发送给数据库;3)数据库根据该OLAP服务装置发送的查询请求进行数据查询,查询完成后将结果反馈给该OLAP服务装置。
然而,该部署方式下的OLAP服务存在服务可用性较差的问题。具体而言,服务可用性体现在可靠性和查询性能两个方面。在查询性能方面,当客户端压力较大的情况下,单点部署的OLAP服务装置的查询性能将会显著降低。在可靠性方面,一旦单点部署的OLAP服务装置发生故障,就会使得面向多个客户端的OLAP服务变得不可用。
发明内容
本发明实施例提供一种OLAP服务***,用以解决现有技术中OLAP服务可用性差的问题。
第一方面,本发明实施例中提供了一种OLAP服务***,包括:
OLAP服务代理装置和多个OLAP服务装置;所述OLAP服务代理装置,用于接收查询请求,并从所述多个OLAP服务装置中选取一个OLAP服务装置,作为处理所述查询请求的OLAP服务装置,以及,将所述查询请求转发至被选取的OLAP服务装置。
第二方面,本发明实施例提供了一种OLAP服务代理方法,包括:
接收查询请求;
从多个OLAP服务装置中选取一个OLAP服务装置,作为处理所述查询请求的OLAP服务装置;
将所述查询请求转发至被选取的OLAP服务装置。
第三方面,本发明实施例提供了一种OLAP服务代理装置,包括:
查询请求接收单元,用于接收查询请求;
OLAP服务装置选取单元,用于从多个OLAP服务装置中选取一个OLAP服务装置,作为处理所述查询请求的OLAP服务装置;
查询请求转发单元,用于将所述查询请求转发至被选取的OLAP服务装置。
第四方面,本发明实施例提供了一种OLAP服务方法,包括:
接收查询请求;
在查询结果缓存区内存储有所述查询请求对应的第一查询结果时,从所述查询结果缓存区内读取所述第一查询结果;
向所述查询请求的发起方回送所述第一查询结果。
第五方面,本发明实施例提供了一种OLAP服务装置,包括:
查询请求接收单元,用于接收查询请求;
缓存数据读取单元,用于在查询结果缓存区内存储有所述查询请求对应的第一查询结果时,从所述查询结果缓存区内读取所述第一查询结果;
查询结果回送单元,用于向所述查询请求的发起方回送所述第一查询结果。
第六方面,本发明实施例提供了一种电子设备,包括:
处理器;以及
存储器,用于存储实现OLAP服务方法的程序,该设备通电并通过所述处理器运行该OLAP服务方法的程序后,执行下述步骤:接收查询请求;在查询结果缓存区内存储有所述查询请求对应的第一查询结果时,从所述查询结果缓存区内读取所述第一查询结果;向所述查询请求的发起方回送所述第一查询结果。
第七方面,本发明实施例提供了又一种电子设备,包括:
处理器;以及
存储器,用于存储实现OLAP服务代理方法的程序,该设备通电并通过所述处理器运行该OLAP服务代理方法的程序后,执行下述步骤:接收查询请求;从多个OLAP服务装置中选取一个OLAP服务装置,作为处理所述查询请求的OLAP服务装置;将所述查询请求转发至被选取的OLAP服务装置。
本发明实施例提供的一种OLAP服务***,包括OLAP服务代理装置和多个OLAP服务装置,当OLAP服务的客户端提交查询请求后,通过OLAP服务代理装置接收该请求,并从多个OLAP服务装置中选取一个OLAP服务装置,作为处理该请求的OLAP服务装置,然后将该请求转发至被选取的OLAP服务装置;这种处理方式,OLAP服务代理装置通过一定的策略将多个客户端请求分发至不同的OLAP服务装置进行处理,避免由一个OLAP服务装置处理所有请求;因此,可以有效提高OLAP服务的查询性能及可靠性,从而达到提高OLAP服务可用性的效果。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了现有技术的OLAP服务***的拓扑结构图;
图2示出了根据本发明第一个实施例的OLAP服务***的拓扑结构图;
图3示出了根据本发明第一个实施例的OLAP服务***的具体框图;
图4示出了根据本发明第二个实施例的OLAP服务***中OLAP服务装置200的框图;
图5示出了根据本发明第二个实施例的OLAP服务***的OLAP服务装置200的具体框图;
图6示出了根据本发明第二个实施例的OLAP服务***的框图;
图7示出了根据本发明第二个实施例的OLAP服务***的缓存数据操作装置300的框图;
图8示出了根据本发明第三实施例提供的一种OLAP服务***的OLAP服务装置200的框图;
图9示出了根据本发明第四个实施例的OLAP服务代理方法流程示意图;
图10示出了根据本发明第五个实施例的OLAP服务代理装置的框图;
图11示出了根据本发明第六个实施例的OLAP服务方法流程示意图;
图12示出了根据本发明第七个实施例的OLAP服务装置的框图;
图13示出了根据本发明第八个实施例的电子设备的框图;
图14示出了根据本发明第九个实施例的电子设备的框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
在本发明的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的OLAP服务***,其基本思想为:通过OLAP服务代理装置接收查询请求,并从多个OLAP服务装置中选取一个OLAP服务装置,作为处理该请求的OLAP服务装置,然后将该请求转发至被选取的OLAP服务装置。由于OLAP服务代理装置通过一定的策略将多个客户端请求分发至不同的OLAP服务装置进行处理,避免由一个OLAP服务装置处理所有请求,因此,可以有效提高OLAP服务可用性。
请参考图2,其为本发明的第一实施例提供的一种OLAP服务***的拓扑结构图。由图2可见,本发明实施例的OLAP服务***包括一个OLAP服务代理装置和多个OLAP服务装置,即:多点部署OLAP服务装置。其中,所述OLAP服务代理装置,用于接收查询请求,并从所述多个OLAP服务装置中选取一个OLAP服务装置,作为处理所述查询请求的OLAP服务装置,以及,将所述查询请求转发至被选取的OLAP服务装置。
请参考图3,其为本发明的第一实施例提供的一种OLAP服务***的具体框图。以下结合图3介绍该实施例。
本发明第一个实施例的OLAP服务***包括:OLAP服务代理装置100和多个OLAP服务装置200-1至200-n。
所述OLAP服务代理装置100包括:查询请求接收单元1001、OLAP服务装置选取单元1003和查询请求转发单元1005;所述查询请求接收单元1001,用于接收查询请求;所述OLAP服务装置选取单元1003,用于从多个OLAP服务装置中选取一个OLAP服务装置,作为处理所述查询请求的OLAP服务装置;所述查询请求转发单元1005,用于将所述查询请求转发至被选取的OLAP服务装置。
所述查询请求包括多维数据查询请求,多维数据查询请求携带有多维数据查询语句,即:MDX(multi-dimensional expressions,多维表达式)语句。
所述OLAP服务代理装置100实现OLAP服务高可用性的负载均衡功能,通过一定的策略将多个客户端请求分发至不同的OLAP服务装置进行处理,这样就可以避免由一个OLAP服务装置处理所有请求;因此,可以有效提高OLAP服务的查询性能及可靠性。
具体实施时,所述OLAP服务代理装置100可以采用haproxy、lvs+keepalive等技术实现负载均衡。对于所述OLAP服务代理装置100本身也存在的单点故障问题,可以通过使用双机软件做热备的方式解决,这样就可以保证所述OLAP服务代理装置100的高可用性。
所述OLAP服务代理装置100、及多个OLAP服务装置200-1至200-n通常部署于服务器,但并不局限于服务器,也可以是能够实现各装置功能的任何设备;所述OLAP服务代理装置100、及多个OLAP服务装置200-1至200-n既可以分别部署于不同的服务器,也可以是部署于同一台服务器;所述查询请求发送装置900通常部署于个人电脑、移动通讯设备、PAD、iPad等终端设备。
例如,所述查询请求发送装置900部署在个人电脑上,能够发送多维数据查询请求;所述OLAP服务代理装置100部署在第一服务器上,所述多个OLAP服务装置200-1至200-n分别部署在不同的服务器上,所述OLAP服务代理装置100通过从多个OLAP服务装置中选取一个OLAP服务装置,作为处理该查询请求的OLAP服务装置,并将该查询请求转发至被选取的OLAP服务装置,从而使得所述查询请求发送装置900通过被选取的OLAP服务装置获取查询结果。
本发明第一实施例的OLAP服务***,可以有效提高OLAP服务的可用性。然而,OLAP服务装置在处理每一个查询请求时,都需要向数据库800重新验证,即:上述第一实施例提供的OLAP服务***存在查询性能低的问题。
本发明第二实施例提供一种OLAP服务***,以解决上述第一实施例提供的OLAP服务***存在查询性能低的问题。
请参考图4,其为本发明的第二实施例提供的一种OLAP服务***的OLAP服务装置200的框图。以下结合图4介绍该实施例。
所述OLAP服务装置200,包括第一缓存数据读取单元2001和查询结果回送单元2003。
所述第一缓存数据读取单元2001,用于在查询结果缓存区内存储有第一查询结果时,从所述查询结果缓存区内读取所述第一查询结果。
所述查询结果缓存区,存储有历史MDX查询语句与对应查询结果之间的对应记录,即:查询结果缓存区存储有历史MDX查询语句与对应查询结果的成对记录。所述查询结果缓存区内的数据可以被多个OLAP服务装置共享。所述查询结果缓存区内的数据,既可以采用数据库缓存的方式,例如,redis、hbase等key-value的数据库;也可以采用文件缓存等方式。
所述第一查询结果,包括与所述查询请求包括的MDX查询语句对应的查询结果。
所述第一缓存数据读取单元2001实现从缓存数据中读取第一查询结果的功能,本***强调多个OLAP服务装置共享查询结果缓存区内的历史查询结果,使得对于相同的查询语句,即便是多个OLAP服务装置的情况下,也仅对数据库请求一次,这样就可以复用之前的查询结果,避免向数据库重新验证,从而达到提高OLAP服务的查询性能的效果。
请参考图5,其为本发明的第二实施例提供的一种OLAP服务***的OLAP服务装置200的具体框图。
所述OLAP服务装置200,还包括:第一缓存数据判断单元2000、多维数据查询语句分解单元2003、第二查询结果获取单元2005和第一查询结果形成单元2007。
所述第一缓存数据判断单元2000,用于判断所述查询结果缓存区内是否存储有所述第一查询结果;若是,则启动所述第一缓存数据读取单元2001;若否,则启动所述多维数据查询语句分解单元2003。
所述第一缓存数据判断单元2000实现判断缓存数据是否包括MDX查询语句对应的查询结果的功能,本OLAP服务装置强调首先判断缓存数据是否包括MDX查询语句对应的查询结果,如果判断结果为是,则启动所述第一缓存数据读取单元2001,从所述查询结果缓存区内读取所述第一查询结果;如果判断结果为否,则启动所述多维数据查询语句分解单元2003;这样就可以在缓存数据不包括MDX查询语句对应的查询结果时,实现从数据库检索获取查询结果的功能。
所述多维数据查询语句分解单元2003,用于解析所述多维数据查询语句,获得至少一个结构化查询语句。
所述至少一个结构化查询语句,可以仅包括至少一个针对成员变量的查询语句、或者仅包括至少一个针对聚合数据的查询语句、也可以同时包括至少一个针对成员变量的查询语句和至少一个针对聚合数据的查询语句。
所述针对成员变量的查询语句,包括查询结果为成员变量的查询语句。所述针对聚合数据的查询语句,包括查询结果为聚合数据的查询语句,例如,求和、求平均、数据分组、数据集合、时间窗口的操作。
所述第二查询结果获取单元2005,用于获取各个所述结构化查询语句各自对应的第二查询结果。
所述第二查询结果获取单元2005实现获取各个结构化查询语句(SQL语句)各自对应的查询结果的功能。
通过分析可知,OLAP分析基本上是面向数据仓库,而数据仓库通常只做数据追加、更新相对较少,因此,在OLAP分析中有很多成员变量基本上变化很少。在这种情况下,OLAP服务装置可通过将首次由数据库检索获得的成员变量缓存在OLAP服务的内存中,这样就可以复用之前的查询结果,减少对数据库的压力。
然而,这种OLAP服务内存缓存的方式会带来一个问题,即:如果在OLAP服务装置200-1有过首次访问,加载了相应的维度成员,下次同样的客户端查询请求过来,如果命中了OLAP服务装置200-3,则会导致OLAP服务装置200-3重新向数据库请求加载数据,造成数据库的压力反而变大,具体而言,即之前维度值加载请求一次,而现在会N次。
为了解决这个问题,OLAP服务装置在首次从数据库中检索获得查询结果后,可将查询结果缓存在所述查询结果缓存区内。由于所述查询结果缓存区内的数据是可以被多个所述OLAP服务装置共享的缓存数据,因此,可以有效减轻数据的压力,提高吞吐性能。在这种情况下,所述查询结果缓存区内的数据,还包括历史SQL查询语句与对应查询结果的成对记录。
进一步的,不仅可以将针对成员变量的SQL查询语句与对应查询结果的成对记录缓存在所述查询结果缓存区中,还可以将针对聚合数据的SQL查询语句与对应查询结果的成对记录缓存在所述查询结果缓存区中。
所述第二查询结果获取单元2005,可包括如下子单元:第二缓存数据判断子单元、缓存数据读取子单元和数据库检索子单元。
所述第二缓存数据判断子单元,用于针对各个所述结构化查询语句,判断所述查询结果缓存区内是否存储有所述第二查询结果;若是,则启动所述缓存数据读取子单元;若否,则启动所述数据库检索子单元。
所述第二缓存数据判断子单元实现判断缓存数据是否包括SQL查询语句对应的查询结果的功能,本***包括的第二查询结果获取单元强调首先判断缓存数据是否包括SQL查询语句对应的查询结果,如果判断结果为是,则启动所述缓存数据读取子单元,从所述查询结果缓存区内读取所述第二查询结果;如果判断结果为否,则启动所述数据库检索子单元;这样就可以在缓存数据不包括SQL查询语句对应的查询结果时,实现从数据库检索获取查询结果的功能。
所述缓存数据读取子单元,用于在所述查询结果缓存区内存储有所述第二查询结果时,从所述查询结果缓存区中读取所述第二查询结果。
所述数据库检索子单元,用于在所述查询结果缓存区内未存储有所述第二查询结果时,从数据库中检索获取所述第二查询结果。
所述第一查询结果形成单元2007,用于根据获得的第二查询结果,形成所述多维数据查询语句对应的第一查询结果。
所述第一查询结果形成单元2007实现根据多个SQL语句查询结果形成MDX查询语句对应的查询结果的功能。
所述查询结果回送单元2009,用于向所述查询请求的发起方回送所述第一查询结果。
要复用所述查询结果缓存区内的历史MDX查询语句对应的查询结果,就需要在首次获得该查询结果后,将其存储在所述查询结果缓存区内。因此,所述OLAP服务装置还包括:第一查询结果缓存单元2008。
所述第一查询结果缓存单元2008,用于将第一对应记录存储在所述查询结果缓存区内。
所述第一对应记录包括,所述多维数据查询语句与形成的第一查询结果之间的对应记录。通过将所述第一对应记录存储在所述查询结果缓存区内,就可以使得来自不同客户端或同一客户端的相同的MDX查询请求可以复用之前的查询结果。
要复用所述查询结果缓存区内的历史SQL查询语句对应的查询结果,就需要在首次获得该查询结果后,将其存储在所述查询结果缓存区内。因此,所述OLAP服务装置还包括:第二查询结果缓存单元2008。
所述第二查询结果缓存单元2008,用于将第二对应记录存储在所述查询结果缓存区内。
所述第二对应记录包括,所述结构化查询语句与数据库检索获得的第二查询结果之间的对应记录。
需要说明的是,所述OLAP服务装置要读/写所述查询结果缓存区内的数据,既可以采用直接读/写的方式,也可以通过统一的缓存数据操作装置读/写所述查询结果缓存区。通过统一的缓存数据操作装置读/写缓存数据,可以仅维护一份读/写缓存数据的程序代码,从而达到易于维护程序的效果。
请参考图6,其为本发明的第二实施例提供的一种OLAP服务***的框图。由图6可见,本***包括缓存数据操作装置300,多个OLAP服务装置通过所述缓存数据操作装置300读/写所述查询结果缓存区内的数据。
请参考图7,其为本发明的第二实施例提供的一种OLAP服务***的缓存数据操作装置300的框图。
所述缓存数据操作装置300,包括:读缓存单元3001和写缓存单元3003。所述OLAP服务装置通过所述读缓存单元3001,获取待执行的查询语句对应的查询结果,以及,通过所述写缓存单元3003,将获得的查询语句和对应的查询结果之间成对地存储在所述查询结果缓存区内。
所述写缓存单元3003,用于将接收到的查询语句与查询结果之间的对应记录存储在所述查询结果缓存区内。
所述接收到的查询语句,可以为MDX查询语句,也可以为SQL查询语句。
需要注意的是,同一含义的查询语句可以采用不同的表达形式,例如,查询语句1为Select a,b,c from t1;查询语句2为Select c,b,a from t1;查询语句3为Select a,b,c from t1;这三个语句的含义是相同的,不同之处仅在于所列字段名的顺序不同。然而,如果以查询语句本身进行存储,将降低读缓存时查询语句的成功匹配率。
为了解决这个问题,可以首先对查询语句进行语法树分析,获取查询语句的标准表达形式,然后存储标准表达形式查询语句。因此,所述写缓存单元3003可包括:语法树分析子单元和第一写缓存子单元。
所述语法树分析子单元,用于对所述接收到的查询语句进行语法树分析,获得语法树分析后的查询语句。
在实际应用中,可以通过JsqlParser或ANTLR(ANother Tool for LanguageRecognition)等开源语法分析器实现语法树解析的功能,采用上述工具进行词法、语法的分析,分析效率快且耗时短。
所述第一写缓存子单元,用于将所述语法树分析后的查询语句与所述查询结果之间的对应记录存储在所述查询结果缓存区内。
此外,还需要注意的是,缓存数据的Key通常存在长度限制,如果直接将查询语句作为Key进行存储,则可能出现字符串长度超范围的问题。
为了解决这个问题,可以首先对查询语句进行字符串压缩,然后再存储压缩后的查询语句。因此,所述第一写缓存子单元可包括:字符串压缩子单元和第二写缓存子单元。
所述字符串压缩子单元,用于通过预设的字符串压缩算法对所述语法树分析后的查询语句进行字符串压缩,获得压缩后的查询语句。
所述预设的字符串压缩算法,可以采用MD5算法(Message Digest Algorithm,消息摘要算法)或AES(Advanced Encryption Standard,高级加密标准)算法等。
采用MD5算法压缩查询语句,可将原始长度的查询语句转化为一个相对短小的摘要,相对于其它字符串压缩算法,MD5算法的优点为转化后的字符串的重复率较低;因此,MD5算法是一种优选的字符串压缩算法。
所述第二写缓存子单元,用于将所述压缩后的查询语句与所述查询结果之间的对应记录存储在所述查询结果缓存区内。
所述读缓存单元3001,用于从所述查询结果缓存区内读取与接收到的查询语句对应的查询结果,并向指令发送方返回所述查询结果。
需要注意的是,如果以查询语句本身在所述查询结果缓存区内进行查询语句的匹配,将无法获取到与其表达形式不同、但含义相同的查询语句所对应的查询结果。
为了解决这个问题,可以首先对查询语句进行语法树分析,获取查询语句的标准表达形式,然后对标准查询语句进行查询语句匹配操作。因此,所述读缓存单元3001可包括:语法树分析子单元和第一读缓存子单元。
所述语法树分析子单元,用于对所述接收到的查询语句进行语法树分析,获得语法树分析后的查询语句。
所述第一读缓存子单元,用于从所述查询结果缓存区内读取与所述语法树分析后的查询语句对应的查询结果,并返回所述查询结果。
所述第一读缓存子单元可包括:字符串压缩子单元和第二读缓存子单元。
所述字符串压缩子单元,用于通过预设的字符串压缩算法对所述语法树分析后的查询语句进行字符串压缩,获得压缩后的查询语句。
所述第二读缓存子单元,用于从所述查询结果缓存区内读取与所述压缩后的查询语句对应的查询结果,并返回所述查询结果。
所述缓存数据操作装置300,还可包括:缓存清理单元3005。
所述缓存清理单元3005,用于响应于缓存清理指令,清理所述查询结果缓存区。例如,在数据变更或者业务端要求清理缓存的时候,将所述查询结果缓存区内的数据清理,强制OLAP服务装置通过数据库检索获取查询结果。
至此对本发明的第二实施例进行了说明。
本发明第二实施例的OLAP服务***,不仅可以有效提高OLAP服务的可用性,还使得来自不同客户端或同一客户端的相同的MDX查询请求可以复用之前的查询结果,因此,可以有效提高***的查询性能。
进一步的,本发明第二实施例的OLAP服务***中的各个OLAP服务装置,还可以复用结构化查询语句的查询结果,因此,可以进一步有效提高***的查询性能。
请参考图8,其为本发明的第三实施例提供的一种OLAP服务***的OLAP服务装置200的框图。以下结合图8介绍该实施例。由于第三实施例基本相似于第二实施例,所以描述得比较简单,相关之处参见第二实施例的部分说明即可。下述描述的第三实施例仅仅是示意性的。
本发明第三个实施例的OLAP服务***与上述第二个实施例不同之处在于:所述OLAP服务装置不包括;第一缓存数据判断单元和第一缓存数据读取单元。因此,本发明第三实施例的OLAP服务***,不复用MDX查询语句的查询结果,而仅复用结构化查询语句的查询结果。
所述OLAP服务装置200,包括:多维数据查询语句分解单元2001、第二缓存数据判断子单元2003、缓存数据读取子单元2005、数据库检索子单元2007和第一查询结果形成单元2009。
所述多维数据查询语句分解单元2001,用于解析所述查询请求包括的多维数据查询语句,获得至少一个结构化查询语句。
所述第二缓存数据判断单元2003,用于针对各个所述结构化查询语句,判断查询结果缓存区内是否存储有所述第二查询结果;若是,则启动缓存数据读取单元;若否,则启动数据库检索单元。
缓存数据读取单元2005,用于在所述查询结果缓存区内存储有所述第二查询结果时,则从所述查询结果缓存设备中读取所述第二查询结果。
数据库检索单元2007,用于在所述查询结果缓存区内未存储有所述第二查询结果时,则从数据库中检索获取所述第二查询结果。
所述第一查询结果形成单元2009,用于根据获得的第二查询结果,形成所述多维数据查询语句对应的第一查询结果。
至此对本发明的第三实施例进行了说明。
请参考图9,其为本发明的第四实施例提供的一种OLAP服务代理方法的流程示意图。以下结合图9介绍该实施例。
第四实施例是与第一实施例中OLAP服务代理装置相对应的方法实施例。由于方法实施例基本相似于装置实施例,所以描述得比较简单,相关之处参见装置实施例的部分说明即可。下述描述的方法实施例仅仅是示意性的。
本发明第四个实施例的OLAP服务代理方法,包括如下步骤:
步骤S901,接收查询请求。
步骤S903,从多个OLAP服务装置中选取一个OLAP服务装置,作为处理所述查询请求的OLAP服务装置。
步骤S905,将所述查询请求转发至被选取的OLAP服务装置。
至此对本发明的第四实施例进行了说明。
请参考图10,其为本发明的第五实施例提供的一种OLAP服务代理装置的框图。以下结合图10介绍该实施例。
该装置是与上述OLAP服务代理方法的实施例相对应。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
本发明第五个实施例的OLAP服务代理装置,包括如下单元:
所述查询请求接收单元1001,用于接收查询请求。
OLAP服务装置选取单元1003,用于从多个OLAP服务装置中选取一个OLAP服务装置,作为处理所述查询请求的OLAP服务装置。
查询请求转发单元1005,用于将所述查询请求转发至被选取的OLAP服务装置。
至此对本发明的第五实施例进行了说明。
请参考图11,其为本发明的第六实施例提供的一种OLAP服务方法的流程示意图。以下结合图11介绍该实施例。
第四实施例是与第二实施例中OLAP服务装置相对应的方法实施例。由于方法实施例基本相似于装置实施例,所以描述得比较简单,相关之处参见装置实施例的部分说明即可。下述描述的方法实施例仅仅是示意性的。
本发明第六个实施例的OLAP服务方法,包括如下步骤:
步骤S1101,接收查询请求。
所述查询请求包括多维数据查询语句。
步骤S1103,在查询结果缓存区内存储有所述查询请求对应的第一查询结果时,从所述查询结果缓存区内读取所述第一查询结果。
本发明第六个实施例的OLAP服务方法,在步骤S1103之前,还可包括如下步骤:1)对所述多维数据查询语句进行语法树分析,获得语法树分析后的查询语句;2)通过预设的字符串压缩算法对所述多维数据查询语句进行字符串压缩,获得压缩后的查询语句。
需要说明的是,在步骤S1103之前,可仅包括上述第1个步骤、或者仅包括第2个步骤、也可以同时包括第1个步骤和第2个步骤。相应的,所述在查询结果缓存区内存储有所述多维数据查询语句对应的第一查询结果时,可以为在查询结果缓存区内存储有所述语法树分析后的查询语句对应的第一查询结果时,也可以为在查询结果缓存区内存储有所述压缩后的查询语句对应的第一查询结果时,还可以为在查询结果缓存区内存储有语法树分析后的、且压缩后的查询语句对应的第一查询结果时。
步骤S1103’,在所述查询结果缓存区内未存储有所述第一查询结果时,执行如下步骤:1)解析所述多维数据查询语句,获得至少一个结构化查询语句;2)获取各个所述结构化查询语句各自对应的第二查询结果;3)根据获得的第二查询结果,形成所述多维数据查询语句对应的第一查询结果。
步骤S1103’的第2个小步骤,所述获取各个所述结构化查询语句各自对应的第二查询结果,可包括如下子步骤:针对各个所述结构化查询语句,判断查询结果缓存区内是否存储有所述第二查询结果;若上述判断结果为是,则从所述查询结果缓存区内读取所述第二查询结果;若上述判断结果为否,则从数据库中检索获取所述第二查询结果。
需要说明的是,所述判断查询结果缓存区内是否存储有所述第二查询结果,可以为根据语法树分析后的结构化查询语句,判断查询结果缓存区内是否存储有所述第二查询结果;也可以为根据字符串压缩后的结构化查询语句,判断查询结果缓存区内是否存储有所述第二查询结果;还可以为根据语法树分析后的、且字符串压缩后的结构化查询语句,判断查询结果缓存区内是否存储有所述第二查询结果。
本发明第六个实施例的OLAP服务方法,在所述从数据库中检索获取所述第二查询结果之后,还可包括如下步骤:将第二对应记录存储在所述查询结果缓存区内。
所述第二对应记录,包括:所述结构化查询语句与数据库检索获得的第二查询结果之间的对应记录,语法树分析后的结构化查询语句与数据库检索获得的第二查询结果之间的对应记录,字符串压缩后的结构化查询语句与数据库检索获得的第二查询结果之间的对应记录,或者,语法树分析后的、且字符串压缩后的结构化查询语句与数据库检索获得的第二查询结果之间的对应记录。
本发明第六个实施例的OLAP服务方法,在所述根据获得的第二查询结果,并形成所述多维数据查询语句对应的第一查询结果之后,还可包括如下步骤:将第一对应记录存储在所述查询结果缓存区内。
所述第一对应记录,包括:所述多维数据查询语句与形成的第一查询结果之间的对应记录,语法树分析后的多维数据查询语句与所述第一查询结果之间的对应记录,字符串压缩后的多维数据查询语句与所述第一查询结果之间的对应记录,或者,语法树分析后的、且字符串压缩后的多维数据查询语句与所述第一查询结果之间的对应记录。
步骤S1105,向所述查询请求的发起方回送所述第一查询结果。
至此对本发明的第六实施例进行了说明。
请参考图12,其为本发明的第七实施例提供的一种OLAP服务装置的框图。以下结合图12介绍该实施例。
该装置是与上述OLAP服务方法的实施例相对应。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
本发明第七个实施例的OLAP服务装置,包括如下单元:
查询请求接收单元1201,用于接收查询请求;
缓存数据读取单元1203,用于在查询结果缓存区内存储有所述查询请求对应的第一查询结果时,从所述查询结果缓存区内读取所述第一查询结果;
查询结果回送单元1205,用于向所述查询请求的发起方回送所述第一查询结果。
至此对本发明的第七实施例进行了说明。
请参考图13,其为本发明的第八实施例提供的一种电子设备的框图。由于设备实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的设备实施例仅仅是示意性的。
本发明第八实施例提供的电子设备,包括:
处理器1301;以及
存储器1303,用于存储实现OLAP服务方法的程序,该设备通电并通过所述处理器1301运行该OLAP服务方法的程序后,执行下述步骤:接收查询请求;在查询结果缓存区内存储有所述查询请求对应的第一查询结果时,从所述查询结果缓存区内读取所述第一查询结果;向所述查询请求的发起方回送所述第一查询结果。
至此对本发明的第八实施例进行了说明。
请参考图14,其为本发明的第九实施例提供的一种电子设备的框图。由于设备实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的设备实施例仅仅是示意性的。
本发明第九实施例提供的电子设备,包括:
处理器1401;以及
存储器1403,用于存储实现OLAP服务代理方法的程序,该设备通电并通过所述处理器1401运行该OLAP服务代理方法的程序后,执行下述步骤:接收查询请求;从多个OLAP服务装置中选取一个OLAP服务装置,作为处理所述查询请求的OLAP服务装置;将所述查询请求转发至被选取的OLAP服务装置。
至此对本发明的第九实施例进行了说明。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
本发明公开A1、一种OLAP服务***,包括:OLAP服务代理装置和多个OLAP服务装置;所述OLAP服务代理装置,用于接收查询请求,并从所述多个OLAP服务装置中选取一个OLAP服务装置,作为处理所述查询请求的OLAP服务装置,以及,将所述查询请求转发至被选取的OLAP服务装置。
A2、如A1所述的***中,所述OLAP服务装置包括:第一缓存数据读取单元和查询结果回送单元;
所述第一缓存数据读取单元,用于在查询结果缓存区内存储有与所述查询请求对应的第一查询结果时,从所述查询结果缓存区内读取所述第一查询结果;
所述查询结果回送单元,用于向所述查询请求的发起方回送所述第一查询结果。
A3、如A2所述的***中,所述OLAP服务装置还包括:第一缓存数据判断单元、多维数据查询语句分解单元、第二查询结果获取单元和第一查询结果形成单元;
所述第一缓存数据判断单元,用于判断在所述查询结果缓存区内是否存储有所述第一查询结果;若是,则启动所述第一缓存数据读取单元;若否,则启动所述多维数据查询语句分解单元;
所述多维数据查询语句分解单元,用于解析所述查询请求中包括的多维数据查询语句,获得至少一个结构化查询语句;
所述第二查询结果获取单元,用于获取各个所述结构化查询语句各自对应的第二查询结果;
所述第一查询结果形成单元,用于根据获得的第二查询结果,形成所述多维数据查询语句对应的第一查询结果。
A4、如A3所述的***中,所述OLAP服务装置还包括:第一查询结果缓存单元;
所述第一查询结果缓存单元,用于将所述多维数据查询语句和形成的第一查询结果成对存储在所述查询结果缓存区内。
A5、如A3所述的***中,所述第二查询结果获取单元包括:
所述第二缓存数据判断子单元,用于针对各个所述结构化查询语句,判断在查询结果缓存区内是否存储有所述第二查询结果;若是,则启动缓存数据读取子单元;若否,则启动数据库检索子单元;
缓存数据读取子单元,用于在所述查询结果缓存区内存储有所述第二查询结果时,从所述查询结果缓存区内读取所述第二查询结果;
数据库检索子单元,用于在所述查询结果缓存区内未存储有所述第二查询结果时,从数据库中检索获取所述第二查询结果。
A6、如A1所述的***中,所述OLAP服务装置包括:多维数据查询语句分解单元、第二缓存数据判断子单元、缓存数据读取子单元、数据库检索子单元和第一查询结果形成单元;
所述多维数据查询语句分解单元,用于解析所述查询请求包括的多维数据查询语句,获得至少一个结构化查询语句;
所述第二缓存数据判断单元,用于针对各个所述结构化查询语句,判断查询结果缓存区内是否存储有所述第二查询结果;若是,则启动缓存数据读取单元;若否,则启动数据库检索单元;
缓存数据读取单元,用于在所述查询结果缓存区内存储有所述第二查询结果时,从所述查询结果缓存设备中读取所述第二查询结果;
数据库检索单元,用于在所述查询结果缓存区内未存储有所述第二查询结果时,从数据库中检索获取所述第二查询结果;
所述第一查询结果形成单元,用于根据获得的第二查询结果,形成所述多维数据查询语句对应的第一查询结果。
A7、如A5或A6所述的***中,所述OLAP服务装置还包括:第二查询结果缓存单元;
所述第二查询结果缓存单元,用于将所述结构化查询语句和数据库检索获得的第二查询结果成对存储在所述查询结果缓存区内。
A8、如A2或A6所述的***中,所述***还包括:缓存数据操作装置;
所述缓存数据操作装置包括:读缓存单元和写缓存单元;
所述读缓存单元,用于从所述查询结果缓存区内读取与接收到的查询语句对应的查询结果,并向指令发送方返回所述查询结果;
所述写缓存单元,用于将接收到的查询语句与查询结果之间的对应记录存储在所述查询结果缓存区内;
所述OLAP服务装置通过所述读缓存单元,获取待执行的查询语句对应的查询结果,以及,通过所述写缓存单元,将获得的查询语句和查询结果成对存储在所述查询结果缓存区内。
A9、如A8所述的***中,所述读缓存单元包括:
语法树分析子单元,用于对所述接收到的查询语句进行语法树分析,获得语法树分析后的查询语句;
第一读缓存子单元,用于从所述查询结果缓存区内读取与所述语法树分析后的查询语句对应的查询结果,并返回所述查询结果。
A10、如A9所述的***中,所述第一读缓存子单元包括:
字符串压缩子单元,用于通过预设的字符串压缩算法对所述语法树分析后的查询语句进行字符串压缩,获得压缩后的查询语句;
第二读缓存子单元,用于在所述查询结果缓存区内读取与所述压缩后的查询语句对应的查询结果,并返回所述查询结果。
A11、如A8所述的***中,所述写缓存单元包括:
语法树分析子单元,用于对所述接收到的查询语句进行语法树分析,获得语法树分析后的查询语句;
第一写缓存子单元,用于将所述语法树分析后的查询语句与所述查询结果之间的对应记录存储在所述查询结果缓存区内。
A12、如A11所述的***中,所述第一写缓存子单元包括:
字符串压缩子单元,用于通过预设的字符串压缩算法对所述语法树分析后的查询语句进行字符串压缩,获得压缩后的查询语句;
第二写缓存子单元,用于将所述压缩后的查询语句与所述查询结果之间的对应记录存储在所述查询结果缓存区内。
A13、如A8所述的***中,所述缓存数据操作装置还包括:缓存清理单元;
所述缓存清理单元,用于响应于缓存清理指令,清理所述查询结果缓存区。
A14、如A1所述的***中,所述OLAP服务代理装置包括:查询请求接收单元、OLAP服务装置选取单元和查询请求转发单元;
所述查询请求接收单元,用于接收查询请求;
所述OLAP服务装置选取单元,用于从多个OLAP服务装置中选取一个OLAP服务装置,作为处理所述查询请求的OLAP服务装置;
所述查询请求转发单元,用于将所述查询请求转发至被选取的OLAP服务装置。
本发明还公开了B15、一种OLAP服务代理方法,包括:
接收查询请求;
从多个OLAP服务装置中选取一个OLAP服务装置,作为处理所述查询请求的OLAP服务装置;
将所述查询请求转发至被选取的OLAP服务装置。
本发明还公开了C16、一种OLAP服务代理装置,包括:
查询请求接收单元,用于接收查询请求;
OLAP服务装置选取单元,用于从多个OLAP服务装置中选取一个OLAP服务装置,作为处理所述查询请求的OLAP服务装置;
查询请求转发单元,用于将所述查询请求转发至被选取的OLAP服务装置。
本发明还公开了D17、一种OLAP服务方法,包括:
接收查询请求;
在查询结果缓存区内存储有所述查询请求对应的第一查询结果时,从所述查询结果缓存区内读取所述第一查询结果;
向所述查询请求的发起方回送所述第一查询结果。
D18、如D17所述的方法中,所述方法还包括:
在所述查询结果缓存区内未存储有所述第一查询结果时,执行如下步骤:
解析所述查询请求包括的多维数据查询语句,获得至少一个结构化查询语句;
获取各个所述结构化查询语句各自对应的第二查询结果;
根据获得的第二查询结果,形成所述多维数据查询语句对应的第一查询结果。
D19、如D18所述的方法中,在所述根据获得的第二查询结果,并形成所述多维数据查询语句对应的第一查询结果之后,还包括:
将所述多维数据查询语句和形成的第一查询结果成对存储在所述查询结果缓存区内。
D20、如D18所述的方法中,所述获取各个所述结构化查询语句各自对应的第二查询结果,包括:
针对各个所述结构化查询语句,判断查询结果缓存区内是否存储有所述第二查询结果;
若上述判断结果为是,则从所述查询结果缓存区内读取所述第二查询结果;
若上述判断结果为否,则从数据库中检索获取所述第二查询结果。
D21、如D20所述的方法中,在所述从数据库中检索获取所述第二查询结果之后,所述方法还包括:
将所述结构化查询语句和数据库检索获得的第二查询结果成对存储在所述查询结果缓存区内。
本发明还公开了E22、一种OLAP服务装置,包括:
查询请求接收单元,用于接收查询请求;
缓存数据读取单元,用于在查询结果缓存区内存储有所述查询请求对应的第一查询结果时,从所述查询结果缓存区内读取所述第一查询结果;
查询结果回送单元,用于向所述查询请求的发起方回送所述第一查询结果。
本发明还公开了F23、一种电子设备,包括:
处理器;以及
存储器,用于存储实现OLAP服务方法的程序,该设备通电并通过所述处理器运行该OLAP服务方法的程序后,执行下述步骤:接收查询请求;在查询结果缓存区内存储有所述查询请求对应的第一查询结果时,从所述查询结果缓存区内读取所述第一查询结果;向所述查询请求的发起方回送所述第一查询结果。
本发明还公开了G24、一种电子设备,包括:
处理器;以及
存储器,用于存储实现OLAP服务代理方法的程序,该设备通电并通过所述处理器运行该OLAP服务代理方法的程序后,执行下述步骤:接收查询请求;从多个OLAP服务装置中选取一个OLAP服务装置,作为处理所述查询请求的OLAP服务装置;将所述查询请求转发至被选取的OLAP服务装置。

Claims (21)

1.一种OLAP服务***,其特征在于,包括:OLAP服务代理装置和多个OLAP服务装置;所述OLAP服务代理装置,用于接收查询请求,并从所述多个OLAP服务装置中选取一个OLAP服务装置,作为处理所述查询请求的OLAP服务装置,以及,将所述查询请求转发至被选取的OLAP服务装置;
所述OLAP服务装置包括:第一缓存数据读取单元和查询结果回送单元;
所述第一缓存数据读取单元,用于在查询结果缓存区内存储有与所述查询请求对应的第一查询结果时,从所述查询结果缓存区内读取所述第一查询结果,其中,所述查询结果缓存区内的数据被多个所述OLAP服务装置共享;
所述查询结果回送单元,用于向所述查询请求的发起方回送所述第一查询结果,
所述OLAP服务装置还包括第一查询结果缓存单元和第二查询结果缓存单元中的至少一个;
所述第一查询结果缓存单元,用于将多维数据查询语句和所述多维数据查询语句对应的第一查询结果成对存储在所述查询结果缓存区内;
所述第二查询结果缓存单元,用于将结构化查询语句和所述结构化查询语句对应的第二查询结果成对存储在所述查询结果缓存区内。
2.根据权利要求1所述的***,其特征在于,所述OLAP服务装置还包括:第一缓存数据判断单元、多维数据查询语句分解单元、第二查询结果获取单元和第一查询结果形成单元;
所述第一缓存数据判断单元,用于判断在所述查询结果缓存区内是否存储有所述第一查询结果;若是,则启动所述第一缓存数据读取单元;若否,则启动所述多维数据查询语句分解单元;
所述多维数据查询语句分解单元,用于解析所述查询请求中包括的多维数据查询语句,获得至少一个结构化查询语句;
所述第二查询结果获取单元,用于获取各个所述结构化查询语句各自对应的第二查询结果;
所述第一查询结果形成单元,用于根据获得的第二查询结果,形成所述多维数据查询语句对应的第一查询结果。
3.根据权利要求2所述的***,其特征在于,所述第二查询结果获取单元包括:
第二缓存数据判断子单元,用于针对各个所述结构化查询语句,判断在查询结果缓存区内是否存储有所述第二查询结果;若是,则启动缓存数据读取子单元;若否,则启动数据库检索子单元;
缓存数据读取子单元,用于在所述查询结果缓存区内存储有所述第二查询结果时,从所述查询结果缓存区内读取所述第二查询结果;
数据库检索子单元,用于在所述查询结果缓存区内未存储有所述第二查询结果时,从数据库中检索获取所述第二查询结果。
4.根据权利要求1所述的***,其特征在于,所述OLAP服务装置包括:
多维数据查询语句分解单元、第二缓存数据判断子单元、缓存数据读取子单元、数据库检索子单元和第一查询结果形成单元;
所述多维数据查询语句分解单元,用于解析所述查询请求包括的多维数据查询语句,获得至少一个结构化查询语句;
所述第二缓存数据判断单元,用于针对各个所述结构化查询语句,判断查询结果缓存区内是否存储有所述第二查询结果;若是,则启动缓存数据读取单元;若否,则启动数据库检索单元;
缓存数据读取单元,用于在所述查询结果缓存区内存储有所述第二查询结果时,从所述查询结果缓存设备中读取所述第二查询结果;
数据库检索单元,用于在所述查询结果缓存区内未存储有所述第二查询结果时,从数据库中检索获取所述第二查询结果;
所述第一查询结果形成单元,用于根据获得的第二查询结果,形成所述多维数据查询语句对应的第一查询结果。
5.根据权利要求1或4所述的***,其特征在于,所述***还包括:缓存数据操作装置;
所述缓存数据操作装置包括:读缓存单元和写缓存单元;
所述读缓存单元,用于从所述查询结果缓存区内读取与接收到的查询语句对应的查询结果,并向指令发送方返回所述查询结果;
所述写缓存单元,用于将接收到的查询语句与查询结果之间的对应记录存储在所述查询结果缓存区内;
所述OLAP服务装置通过所述读缓存单元,获取待执行的查询语句对应的查询结果,以及,通过所述写缓存单元,将获得的查询语句和查询结果成对存储在所述查询结果缓存区内。
6.根据权利要求5所述的***,其特征在于,所述读缓存单元包括:
语法树分析子单元,用于对所述接收到的查询语句进行语法树分析,获得语法树分析后的查询语句;
第一读缓存子单元,用于从所述查询结果缓存区内读取与所述语法树分析后的查询语句对应的查询结果,并返回所述查询结果。
7.根据权利要求6所述的***,其特征在于,所述第一读缓存子单元包括:
字符串压缩子单元,用于通过预设的字符串压缩算法对所述语法树分析后的查询语句进行字符串压缩,获得压缩后的查询语句;
第二读缓存子单元,用于在所述查询结果缓存区内读取与所述压缩后的查询语句对应的查询结果,并返回所述查询结果。
8.根据权利要求5所述的***,其特征在于,所述写缓存单元包括:
语法树分析子单元,用于对所述接收到的查询语句进行语法树分析,获得语法树分析后的查询语句;
第一写缓存子单元,用于将所述语法树分析后的查询语句与所述查询结果之间的对应记录存储在所述查询结果缓存区内。
9.根据权利要求8所述的***,其特征在于,所述第一写缓存子单元包括:
字符串压缩子单元,用于通过预设的字符串压缩算法对所述语法树分析后的查询语句进行字符串压缩,获得压缩后的查询语句;
第二写缓存子单元,用于将所述压缩后的查询语句与所述查询结果之间的对应记录存储在所述查询结果缓存区内。
10.根据权利要求5所述的***,其特征在于,所述缓存数据操作装置还包括:缓存清理单元;
所述缓存清理单元,用于响应于缓存清理指令,清理所述查询结果缓存区。
11.根据权利要求1所述的***,其特征在于,所述OLAP服务代理装置包括:查询请求接收单元、OLAP服务装置选取单元和查询请求转发单元;
所述查询请求接收单元,用于接收查询请求;
所述OLAP服务装置选取单元,用于从多个OLAP服务装置中选取一个OLAP服务装置,作为处理所述查询请求的OLAP服务装置;
所述查询请求转发单元,用于将所述查询请求转发至被选取的OLAP服务装置。
12.一种OLAP服务代理方法,其特征在于,应用于权利要求1-11任一项所述的OLAP服务***,所述OLAP服务代理方法包括:
接收查询请求;
从多个OLAP服务装置中选取一个OLAP服务装置,作为处理所述查询请求的OLAP服务装置;
将所述查询请求转发至被选取的OLAP服务装置。
13.一种OLAP服务代理装置,其特征在于,应用于权利要求1-11任一项所述的OLAP服务***,所述OLAP服务代理装置包括:
查询请求接收单元,用于接收查询请求;
OLAP服务装置选取单元,用于从多个OLAP服务装置中选取一个OLAP服务装置,作为处理所述查询请求的OLAP服务装置;
查询请求转发单元,用于将所述查询请求转发至被选取的OLAP服务装置。
14.一种OLAP服务方法,其特征在于,应用于权利要求1-11任一项所述的OLAP服务***,所述OLAP服务方法包括:
接收查询请求;
在查询结果缓存区内存储有所述查询请求对应的第一查询结果时,从所述查询结果缓存区内读取所述第一查询结果,所述查询结果缓存区内的数据被多个所述OLAP服务装置共享;
向所述查询请求的发起方回送所述第一查询结果。
15.根据权利要求14所述的方法,其特征在于,所述方法还包括:
在所述查询结果缓存区内未存储有所述第一查询结果时,执行如下步骤:
解析所述查询请求包括的多维数据查询语句,获得至少一个结构化查询语句;
获取各个所述结构化查询语句各自对应的第二查询结果;
根据获得的第二查询结果,形成所述多维数据查询语句对应的第一查询结果。
16.根据权利要求15所述的方法,其特征在于,在所述根据获得的第二查询结果,并形成所述多维数据查询语句对应的第一查询结果之后,还包括:
将所述多维数据查询语句和形成的第一查询结果成对存储在所述查询结果缓存区内。
17.根据权利要求15所述的方法,其特征在于,所述获取各个所述结构化查询语句各自对应的第二查询结果,包括:
针对各个所述结构化查询语句,判断查询结果缓存区内是否存储有所述第二查询结果;
若上述判断结果为是,则从所述查询结果缓存区内读取所述第二查询结果;
若上述判断结果为否,则从数据库中检索获取所述第二查询结果。
18.根据权利要求17所述的方法,其特征在于,在所述从数据库中检索获取所述第二查询结果之后,所述方法还包括:
将所述结构化查询语句和数据库检索获得的第二查询结果成对存储在所述查询结果缓存区内。
19.一种OLAP服务装置,其特征在于,应用于权利要求1-11任一项所述的OLAP服务***,所述OLAP服务装置包括:
查询请求接收单元,用于接收查询请求;
缓存数据读取单元,用于在查询结果缓存区内存储有所述查询请求对应的第一查询结果时,从所述查询结果缓存区内读取所述第一查询结果,所述查询结果缓存区内的数据被多个所述OLAP服务装置共享;
查询结果回送单元,用于向所述查询请求的发起方回送所述第一查询结果。
20.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储实现OLAP服务方法的程序,该设备通电并通过所述处理器运行该OLAP服务方法的程序后,执行根据权利要求14-18任一项所述的OLAP服务方法。
21.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储实现OLAP服务代理方法的程序,该设备通电并通过所述处理器运行该OLAP服务代理方法的程序后,执行根据权利要求12所述的OLAP服务代理方法。
CN201710074233.XA 2017-02-10 2017-02-10 Olap服务方法、装置及*** Active CN107092529B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710074233.XA CN107092529B (zh) 2017-02-10 2017-02-10 Olap服务方法、装置及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710074233.XA CN107092529B (zh) 2017-02-10 2017-02-10 Olap服务方法、装置及***

Publications (2)

Publication Number Publication Date
CN107092529A CN107092529A (zh) 2017-08-25
CN107092529B true CN107092529B (zh) 2021-01-01

Family

ID=59649343

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710074233.XA Active CN107092529B (zh) 2017-02-10 2017-02-10 Olap服务方法、装置及***

Country Status (1)

Country Link
CN (1) CN107092529B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109684361B (zh) * 2018-12-14 2020-10-16 武汉达梦数据库有限公司 一种规则分析方法以及相应的用于规则分析的装置
CN111597214A (zh) * 2019-02-21 2020-08-28 北京京东尚科信息技术有限公司 用于数据查询的方法、装置、计算机***及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104376062A (zh) * 2014-11-11 2015-02-25 中国有色金属长沙勘察设计研究院有限公司 一种异构数据库平台数据的同步方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101183377B (zh) * 2007-12-10 2010-09-08 华中科技大学 一种基于消息中间件的高可用性数据库集群***
CN104424258B (zh) * 2013-08-28 2020-06-16 腾讯科技(深圳)有限公司 多维数据查询的方法、查询服务器、列存储服务器及***
CN104408071A (zh) * 2014-10-30 2015-03-11 北京思特奇信息技术股份有限公司 一种基于集群管理器的分布式数据库高可用方法及***
CN104486402B (zh) * 2014-12-11 2017-09-12 江苏爱信诺航天信息科技有限公司 一种基于大型网站组合均衡的方法
CN105224637A (zh) * 2015-09-24 2016-01-06 珠海许继芝电网自动化有限公司 一种基于PostgreSQL数据库的主备/集群应用的综合性方法
CN105740445A (zh) * 2016-02-02 2016-07-06 贵州大学 一种数据库查询方法及装置
CN106126604A (zh) * 2016-06-20 2016-11-16 华南理工大学 一种基于分布式数据仓库的社保数据联机分析处理***

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104376062A (zh) * 2014-11-11 2015-02-25 中国有色金属长沙勘察设计研究院有限公司 一种异构数据库平台数据的同步方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
并发内存OLAP查询优化技术研究;张延松等;《计算机研究与发展》;20161215;第53卷(第12期);第2836-2846页 *

Also Published As

Publication number Publication date
CN107092529A (zh) 2017-08-25

Similar Documents

Publication Publication Date Title
US11212358B2 (en) Techniques for compact data storage of network traffic and efficient search thereof
US10282366B2 (en) Multi-dimensional decomposition computing method and system
US10075549B2 (en) Optimizer module in high load client/server systems
WO2020087082A1 (en) Trace and span sampling and analysis for instrumented software
CN108804242B (zh) 一种数据计数去重方法、***、服务器及存储介质
CN109981659B (zh) 基于数据去重技术的网络资源预取方法以及***
CN109669795A (zh) 崩溃信息处理方法及装置
CN109871354B (zh) 一种文件处理的方法及装置
CN107229628B (zh) 分布式数据库预处理的方法及装置
CN111740868A (zh) 告警数据的处理方法和装置及存储介质
CN105208004B (zh) 一种基于obd设备的数据入库方法
CN105610917B (zh) 实现***中同步数据修复的方法及***
CN107092529B (zh) Olap服务方法、装置及***
CN112732756A (zh) 数据查询方法、装置、设备及存储介质
WO2016146009A1 (zh) Html页面压缩方法及装置
US9633035B2 (en) Storage system and methods for time continuum data retrieval
CN111159131A (zh) 性能优化方法、装置、设备及计算机可读存储介质
US20150088958A1 (en) Information Processing System and Distributed Processing Method
CN108804502A (zh) 大数据查询***、方法、计算机设备及存储介质
CN117271584A (zh) 数据处理方法及装置、计算机可读存储介质和电子设备
CN114168672B (zh) 日志数据的处理方法、装置、***以及介质
CN114205424B (zh) 账单文件解压方法、装置、计算机设备和存储介质
US20210173729A1 (en) Systems and methods of application program interface (api) parameter monitoring
CN114218471A (zh) 数据查询方法、装置、***、电子设备及存储介质
CN111078975B (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100085 Beijing, Haidian District on the road to the information on the ground floor of the 1 to the 3 floor of the 2 floor, room 11, 202

Applicant after: Beijing Xingxuan Technology Co.,Ltd.

Address before: 100085 Beijing, Haidian District on the road to the information on the ground floor of the 1 to the 3 floor of the 2 floor, room 11, 202

Applicant before: Beijing Xiaodu Information Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant