一种混合联机分析处理系统及数据查询方法与流程

文档序号:16069361发布日期:2018-11-24 13:00阅读:173来源:国知局

本发明涉及数据分析处理及数据查询技术领域,尤其涉及一种混合联机分析处理系统及数据查询方法。

背景技术

随着大数据技术的日新月异,越来越多的企业开始重视数据的价值,比如,银行系统在其日常业务办理过程中能够累积海量的业务数据,利用这些大数据进行分析,能够有效地支撑客户营销、产品优化、风险管控等诸多领域,对于提升其核心竞争力具有重要的意义。

联机分析处理olap,也叫多维分析,其是一种软件技术,能够使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据、支持决策的目的。目前,有些企业采用cognos作为olap工具但是随着业务的发展和推广,累积的数据量越来越大,同时使用用户越来越多,cognos原有架构存在的无法支持海量数据、可拓展性差、并发性差等问题越来越严重,无法满足现有大数据场景下olap分析的需要。有鉴于此,有些企业开始使用面向大数据应用场景的olap工具,如kylin,kylin具有查询效率高,并发数大,可拓展性强的优势,但是,kylin只支持预计算的olap分析,并不支持明细数据查询,即现有的kylin无法满足用户的数据查询需求。



技术实现要素:

有鉴于此,本发明提供了一种混合联机分析处理系统及数据查询方法,用以解决现有技术中的kylin无法满足用户的数据查询需求的问题,其技术方案如下:

一种混合联机分析处理系统,至少包括:应用服务器集群、查询路由集群、impala服务器集群和kylin服务器集群,其中,所述kylin服务器集群在存储数据时,通过预计算将数据处理成多维数据进行存储,所述impala服务器集群在存储数据时,不进行预计算而是存储原始明细数据;

所述应用服务器集群,用于接收用户的查询请求,并将所述用户的查询请求转换为所述查询路由集群可识别的目标查询请求;

所述查询路由集群,用于从所述impala服务器集群和所述kylin服务器集群中确定存储所述目标查询请求对应的目标数据的服务器集群作为目标服务器集群,并将所述目标查询请求转发至所述目标服务器集群;

所述kylin服务器集群和所述impala服务器集群,均用于在接收到所述目标查询请求时,获取所述目标数据并返回。

其中,所述应用服务器集群为saiku服务器集群;

所述saiku服务器集群,具体用于将所述用户的查询请求转换为多维表达语言mdx查询语句,将所述mdx查询语句转换为sql查询语句,所述sql查询语句作为所述目标查询请求。

其中,所述目标查询请求中包括所述目标查询请求对应的目标数据的元数据信息;

所述查询路由集群,还用于预先获取所述kylin服务器集群和/或所述impala服务器集群中存储的数据的元数据信息;

所述查询路由集群,具体用于基于所述目标查询请求中的元数据信息以及预先获取的所述kylin服务器集群和/或所述impala服务器集群中存储的数据的元数据信息,从所述impala服务器集群和kylin服务器集群中确定存储所述目标查询请求对应的目标数据的服务器集群。

其中,所述查询路由集群,具体用于确定所述目标查询请求对应的目标数据是否由所述kylin服务器集群存储,若所述目标数据由所述kylin服务器集群存储,则确定所述kylin服务器集群为所述目标服务器集群,若所述目标数据不由所述kylin服务器集群存储,则确定所述impala服务器集群为所述目标服务器集群。

所述混合联机分析处理系统,还包括:hbase集群、hive集群和分布式文件系统;

其中,所述hbase集群中存储有所述kylin服务器集群进行预计算得到的多维数据的索引信息;

所述hive集群中存储有所述kylin服务器集群和所述impala服务器集群未进行预计算的原始明细数据的信息;

所述分布式文件系统中存储有所述多维数据和所述原始明细数据。

其中,所述kylin服务器集群,具体用于基于所述hbase集群中的索引信息从所述分布式文件系统获取与所述目标查询请求对应的多维数据。

其中,所述impala服务器集群,具体用于获取所述hive集群从所述分布式文件系统中查询的、与所述目标查询请求对应的原始明细数据。

一种数据查询方法,应用于上述的混合联机分析处理系统中的查询路由集群;

所述数据查询方法包括:

从所述应用服务器集群获取目标查询请求;

从impala服务器集群和kylin服务器集群中确定存储所述目标查询请求对应的目标数据的服务器集群,作为目标服务器集群;

将所述目标查询请求转发至所述目标服务器集群,以使所述目标服务器集群获取与所述目标查询请求对应的目标数据并返回。

其中,所述目标查询请求中包括所述目标数据的元数据信息;

所述从所述impala服务器集群和所述kylin服务器集群中确定存储所述目标查询请求对应的目标数据的服务器集群,包括:

基于目标查询请求中的所述元数据信息和预先获取的所述impala服务器集群和/或所述kylin服务器集群中存储的数据的元数据信息,从所述impala服务器集群和所述kylin服务器集群中确定存储所述目标数据的服务器集群。

其中,所述从所述impala服务器集群和所述kylin服务器集群中确定存储所述目标查询请求对应的目标数据的服务器集群,作为目标服务器集群,包括:

确定所述目标查询请求对应的目标数据是否由所述kylin服务器集群存储;

若所述目标数据由所述kylin服务器集群存储,则确定所述kylin服务器集群为所述目标服务器集群;

若所述目标数据不由所述kylin服务器集群存储,则确定所述impala服务器集群为所述目标服务器集群。

上述技术方案具有如下有益效果:

本发明提供的混合联机分析处理系统及数据查询方法中,应用服务器集群可接收用户的查询请求,并将用户的查询请求转换为目标查询请求输出至查询路由集群,查询路由集群,从impala服务器集群和kylin服务器集群中确定存储目标查询请求对应的目标数据的服务器集群作为目标服务器集群,并将目标查询请求转发至目标服务器集群,kylin服务器集群或impala服务器集群在接收到目标查询请求时,获取目标数据并返回。由此可见,本发明实施例提供的混合联机分析处理系统能够查询请求的自动控制与转发,从而既可实现对预计算多维数据的查询,又可实现对明细数据的查询。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的混合联机分析处理系统的结构示意图;

图2为本发明实施例提供的数据查询方法的流程示意图。

具体实施方式

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

本发明实施例提供了一种混合联机分析处理系统,请参阅图1,示出了该系统的结构示意图,该系统至少可以包括:应用服务器集群101、查询路由集群102、kylin服务器集群103和impala服务器集群104。

其中,kylin服务器集群103能够提供molap服务,其中,molap通过预计算将数据组织成多维数据的形式进行存储,而impala服务器集群104能够提供rolap服务,rolap不进行预计算而是保持数据的原始关系,即kylin服务器集群103存储预计算多维数据,而impala服务器集群104存储未进行预计算的原始明细数据。

应用服务器集群101,用于接收用户的查询请求,并将用户的查询请求转换为查询路由集群可识别的目标查询请求。

在一种可能的实现方式中,应用服务器集群101可以为saiku服务器集群。saiku是一个轻量级的bi前端展示工具。

saiku服务器集群提供联机分析处理olap前端功能,接收用户的查询请求,将用户的查询请求转换为多维表达语言mdx查询语句,然后将mdx查询语句转换为sql查询语句。

具体地,saiku服务器集群接收schema文件和用户的查询请求,schema文件记录了kylin服务器集群和impala服务器集群上所有的数据模型的描述信息,然后将用户的查询请求根据schema文件转换为mdx查询语句,最后引用mondrian根据schema文件将mdx语句转换成sql查询语句,将sql查询语句作为目标查询请求输出给查询路由集群102。

查询路由集群102,用于从impala服务器集群104和kylin服务器集群103中确定存储目标查询请求对应的目标数据的服务器集群作为目标服务器集群,并将目标查询请求转发至目标服务器集群。

具体地,查询路由集群102确定目标查询请求对应的目标数据是否由kylin服务器集群存储,若目标数据由kylin服务器集群存储,则确定kylin服务器集群为目标服务器集群,若目标数据不由kylin服务器集群存储,则确定impala服务器集群为目标服务器集群。

在一种可能的实现方式中,目标查询请求中包括所述目标查询请求对应的目标数据的元数据信息,查询路由集群预先获取kylin服务器集群和/或impala服务器集群中存储的数据的元数据信息,则查询路由集群在确定目标服务器集群时,可基于目标查询请求中的元数据信息以及预先获取的kylin服务器集群和/或impala服务器集群中存储的数据的元数据信息,从impala服务器集群和kylin服务器集群中确定存储目标查询请求对应的目标数据的服务器集群。

例如,查询路由集群可通过kylin服务器集群存储的数据的元数据信息确定目标查询请求对应的目标数据是否由kylin服务器集群存储,若目标查询请求对应的目标数据由kylin服务器集群存储,则将目标查询请求转发至kylin服务器集群,否则,将目标查询请求转发至impala服务器集群。

本发明实施例提供的混合联机分析处理系统,还包括:hbase集群105、hive集群106和分布式文件系统107。

其中,hive是hadoop生态圈的数据仓库,支持sql,查询速度一般,支持数据量大,hbase是hadoop生态圈的单索引数据库,不支持sql,支持高并发海量数据快速查询。

在本实施例中,hbase集群中存储有kylin服务器集群进行预计算得到的多维数据的索引信息;hive集群中存储有所述kylin服务器集群和impala服务器集群未进行预计算的原始明细数据的信息;分布式文件系统中存储有多维数据和原始明细数据。

kylin服务器集群基于hbase集群中的索引信息从分布式文件系统获取与目标查询请求对应的多维数据。impala服务器集群获取hive集群从分布式文件系统中查询的、与目标查询请求对应的原始明细数据。

需要说明的是,kylin服务器集群能够提供molap服务,将星形模型或者雪花模型的数据表加载到hive集群中,然后在kylin中完成多维模型的设计和运行,预计算之后的多维数据存入hbase集群中,需要说明的是,hbase是单索引数据库,多维数据实质存储在分布式文件系统,kylin服务器集群接收到sql查询请求,转换为对hbase的查询操作,进而基于hbase从分布式文件系统获取目标查询请求对应的目标数据。impala服务器集群能够提供rolap服务,星形模型或者雪花模型数据表加载到hive集群中,impala对接收的sql查询请求直接执行并返回结果。

本发明实施例提供的混合联机分析处理系统中,应用服务器集群可接收用户的查询请求,并将用户的查询请求转换为目标查询请求输出至查询路由集群,查询路由集群,从impala服务器集群和kylin服务器集群中确定存储目标查询请求对应的目标数据的服务器集群作为目标服务器集群,并将目标查询请求转发至目标服务器集群,kylin服务器集群或impala服务器集群在接收到目标查询请求时,获取目标数据并返回。由此可见,本发明实施例提供的混合联机分析处理系统不但能够提供不但提供olap分析功能,还能实现查询请求的自动控制与转发,从而既可实现对预计算多维数据的查询,又可实现对明细数据的查询。

本发明实施例还提供了一种数据查询方法,应用于上述实施例提供的混合联机分析处理系统中的查询路由集群,请参阅图2,示出了该数据查询方法的流程示意图,可以包括:

步骤s201:从应用服务器集群获取目标查询请求。

其中,目标查询请求为sql查询语句。应用服务器接收用户的查询请求,将用户的查询请求转换为多维表达语言mdx查询语句,然后将mdx查询语句转换为sql查询语句。

步骤s202:从impala服务器集群和kylin服务器集群中确定存储目标查询请求对应的目标数据的服务器集群,作为目标服务器集群。

其中,kylin服务器集群能够提供molap服务(通过预计算将数据组织成多维数据的形式进行存储),而impala服务器集群能够提供rolap服务(不进行预计算而是保持数据的原始关系),即kylin服务器集群存储预计算多维数据,而impala服务器集群存储未进行预计算的原始明细数据。

步骤s203:将目标查询请求转发至目标服务器集群,以使目标服务器集群获取与目标查询请求对应的目标数据并返回。

本发明实施例提供的数据查询方法,即可实现对预计算生成的多维数据的查询,又可实现对未进行预计算的原始明细数据的查询。

在一种可能的实现方式中,上述实施例中的目标查询请求中可以包括目标数据的元数据信息。

则从impala服务器集群和所述kylin服务器集群中确定存储目标查询请求对应的目标数据的服务器集群的过程可以包括:

基于目标查询请求中的元数据信息和预先获取的impala服务器集群和/或kylin服务器集群中存储的数据的元数据信息,从impala服务器集群和kylin服务器集群中确定存储目标数据的服务器集群。

在一种可能的实现方式中,上述实施例中从所述impala服务器集群和所述kylin服务器集群中确定存储目标查询请求对应的目标数据的服务器集群,作为目标服务器集群的过程可以包括:

确定目标查询请求对应的目标数据是否由kylin服务器集群存储;若目标数据由kylin服务器集群存储,则确定kylin服务器集群为目标服务器集群;若目标数据不由kylin服务器集群存储,则确定impala服务器集群为目标服务器集群。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

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

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

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

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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