一种基于MPP引擎的跨数据中心快速查询方法和系统与流程

文档序号:11519770阅读:392来源:国知局
本发明涉及一种基于mpp(massivelyparallelprocessor,大规模并行处理)引擎的跨数据中心快速查询技术,特别是涉及元数据统一标识,实现数据可靠快速传输,优化查询分析引擎和支持多种结果导出方式的关键技术,属于大数据检索领域。
背景技术
::随着网络和信息技术的不断普及,人类产生的数据量正在呈指数级增长。大约每两年翻一番,根据监测,这个速度在2020年之前会继续保持下去。这意味着人类在最近两年产生的数据量相当于之前产生的全部数据量。可预计,到2020年全球数据将达到40zb。大量新数据源的出现则导致了非结构化、半结构化数据爆发式的增长。信息数据的单位已达到tb-pb-eb-zb的级别。这些由我们创造的信息背后产生的这些数据早已经远远超越了目前人力所能处理的范畴。如何管理和使用这些数据,逐渐成为一个新的挑战。在数据增长的同时,越来越多的企业依赖于海量数据分析结果来进行关键业务决策。大规模数据下的交互式/离线数据分析,是实施数据分析和数据探索的主要途径,具有广泛的商业前景。在大数据存储方面,出现了多种以分布式存储系统和nosql数据库为基础的解决方案;分布式存储系统,支持在多台存储服务器上分担存储负荷和数据保存多副本,利用高性能的计算网络提高传输速度和可靠性,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。nosql数据库,即非关系型数据库,包括key-value型(hbase)数据库、文档型(monogodb)数据库、图型(neo4j)数据库。在数据检索分析方面出现了侧重不同应用场景的检索引擎,主要包括:1)hive。基于hadoop的一个数据仓库工具,它提供了一些列工具,可以用来进行数据提取转换加载(etl),可以将结构化的数据文件映射为一张数据库表,并提供完整的sql(structuredquerylanguage,结构化查询语言)查询功能,为方便用户使用map-reduce而封装了一层sql。hive架构主要包括如下组件:cli(commandlineinterface)、jdbc/odbc、thriftserver、webgui、metastore和driver(complier、optimizer和executor),这些组件可以分为两大类:服务端组件和客户端组件。服务端组件:driver组件,该组件包括complier、optimizer和executor,它的作用是将hiveql(类sql)语句进行解析、编译优化,生成执行计划,然后调用底层mapreduce计算框架;metastore组件,元数据服务组件,该组件存储hive元数据,存储在关系数据库里,支持的关系数据库包括derby、mysql,元数据对于hive十分重要,因此支持把metastore服务独立安装到远程的服务器集群中,从而解耦hive服务和metastore服务,保证系统的健壮性;thrift服务,thrift是facebook开发的一个软件框架,hive集成了该服务,因此支持多种的编程语言调用hive接口。客户端组件:cli(commandlineinterface),即命令行接口;thrift客户端,用于支持多种hive架构的客户端接口,包括jdbc和odbc接口;webgui,支持通过网页的方式访问hive所提供的服务。hive和关系数据库存储文件的系统不同,hive使用的是hadoop的hdfs(hadoop的分布式文件系统),关系数据库则是服务器本地的文件系统;hive使用的计算模型是mapreduce,而关系数据库则是自己设计的计算模型;关系数据库适用于实时查询的业务,hive则适用于海量数据数据挖掘;由于继承自hadoop,hive易于扩展存储规模和计算能力,而关系数据库不易扩展。由于hive采用了sql,它的问题域比map-reduce更窄,因为很多问题,无法通过sql表达,比如一些数据挖掘算法,推荐算法、图像识别算法等,这些仍只能通过编写map-reduce完成。2)impala。impala是架构于hadoop之上的开源、高并发的mpp查询引擎,被广泛应用于各种行业。impala是完全集成的,用以平衡hadoop的灵活性和可扩展性,为bi/数据分析师提供低延迟、高并发的以读为主的查询。它将传统分析数据库的sql支持和多用户性能与hadoop的灵活性和可扩展性结合起来,它通过利用hdfs、hbase、metastore、yarn、sentry等标准组件能够读取大多数广泛使用的文件格式比如parquet、avro、rcfile来维护hadoop的灵活性;为了降低延迟,避免利用mr或者读远程数据,基于负责查询执行所有方面、作为hadoop基础设施一部分运行于各台服务器上的deamon进程实现了一个分布式架构。impala是海量并发的查询执行引擎,运行在现存hadoop集群的上百台机器上。与传统数据库不同,与底层存储引擎解耦。impala由三种服务构成:impalad、statestored和catalogd。impalad(impaladaemonservice),接收客户端查询请求并生成查询计划,同时执行从其他daemon发来的单个执行片段。对于某一查询,作为第一角色管理的daemon称为协调者,impalad角色功能等同,有助于容错和负载均衡,可部署在集群中运行datanode进程的所有机器上,可允许impala利用数据本地化而不必通过网络传输即可在文件系统中读取数据块。statestored是impala的元数据订阅-发布服务,它是单一实例,将集群元数据传播到所有的impalad进程。catalogd,impala的目录资源库和元数据访问网关,通过catalogd,impalad可执行ddl命令且与外部元数据存储如hivemetastore同步,系统目录的改变将由statestored广播。技术实现要素:本发明的主要目的是在基于mpp引擎之上,实现跨数据中心的快速查询,采用统一的元数据标识,依靠数据可靠快速传输实现跨数据中心快速查询,同时优化查询分析引擎和支持多种结果导出方式,提升查询效率,有效解决跨数据中心的查询问题。本发明采用的技术方案如下:一种基于mpp引擎的跨数据中心快速查询方法,其步骤包括:1)将不同mpp引擎中的数据进行统一标记并存储到元数据中,保证元数据在全局中心节点和各数据分中心节点的一致性;2)全局中心节点接收查询请求并对其进行语法解析,解析成功后生成每个数据分中心节点的查询请求并将其发送到对应的数据分中心节点;3)各数据分中心节点接收查询请求并对其进行语法解析,通过元数据的相应mpp引擎进行查询,查询成功后将数据传输给全局中心节点;4)全局中心节点接收到所有数据分中心节点回传的数据后,将数据存储到底层存储引擎;5)全局中心节点利用mpp引擎对数据分中心节点返回的数据进行快速查询,并输出查询结果。进一步地,步骤1)利用hive元数据组件将不同mpp引擎中的数据以数据表属性的方式统一存储到元数据中。进一步地,步骤2)中若解析失败,则返回语法错误。进一步地,步骤3)中若查询失败且没有超过重查次数,则进行重查,若超过重查次数,则返回查询错误。进一步地,步骤3)中若数据传输成功,则数据分中心节点结束本次查询,若传输失败且没有超过重传次数,则进行重传,否则返回传输错误。进一步地,步骤3)中各数据分中心节点在接受查询请求后,通过jdbc/odbc在内部执行查询,将查询结果经过http批量返回到全局中心节点。进一步地,步骤5)中若全局中心节点查询失败且没有超过重查次数,则进行重查,若超过重查次数,则返回查询错误。进一步地,步骤5)支持将查询结果以多种方式导出保存,包括:以csv文件格式导出到本地磁盘中,并支持指定分隔符;导出到分布式文件系统中,并支持指定分隔符;支持导入到多种存储引擎和nosql数据库中。一种采用上述方法的基于mpp引擎的跨数据中心快速查询系统,其包括:元数据模块,用于将不同mpp引擎中的数据进行统一标记并存储到元数据中,保证元数据在全局中心节点和各数据分中心节点的一致性;数据传输模块,负责跨数据中心的数据传输,其中包括全局中心节点下发查询请求和数据分中心节点节点返回查询数据;查询引擎模块,负责各数据中心的具体查询任务,通过兼容多种mpp引擎实现透明查询,通过重查机制屏蔽网络和硬件问题;结果导出模块,负责将查询结果导出并保存。进一步地,所述结果导出模块支持将查询结果以多种方式导出并保存,包括:以csv文件格式导出到本地磁盘中,并支持指定分隔符;导出到分布式文件系统中,并支持指定分隔符;支持导入到多种存储引擎和nosql数据库中。本发明的主要创新点及有益效果如下:1)在元数据统一标识方面,基于hive元数据组件,将不同存储引擎的数据以数据表属性的方式统一存储到元数据中,保证元数据全局一致性。2)在跨数据中心传输方面,各数据中心独立存储、处理本中心内数据,同时实现多数据中心关联查询。利用确认重发机制保证数据可靠高速传输,提高查询效率。3)在查询引擎方面,本发明兼容多种mpp引擎,使存储于不同系统中的数据实现联合查询。4)在导出方面,本发明支持指定查询结果导出格式,减少后续数据处理分析时间。结果由查询结束后直接导出,避免大量中间过程的磁盘io操作,提高查询效率。附图说明图1为元数据统一标识流程图;图2为跨数据中心传输数据模型示意图;图3为查询分析流程图;图4为结果模型示意图。具体实施方式下面通过具体实施例和附图,对本发明做进一步说明。本发明的内容主要包括以下几个方面。第一,元数据标识上,本发明采用统一的元数据标识,利用hive元数据组件将不同mpp引擎中的数据进行统一标记。包括数据表所属存储结构、存储类型等。并利用对应mpp引擎进行快速查询。本发明所述的不同mpp引擎包括hive、spark、hbase等,使用mpp的方式将上述引擎统一整合在了一起,集中调度,并采用mpp的方式使用。第二,数据传输上,本发明通过确认、重传等机制提供高效可靠的数据传输。在数据中心内部,通过jdbc/odbc(jdbc为javadatabaseconnectivity,java数据库连接,odbc为opendatabaseconnectivity,开放数据库连接)等进行查询,实现批量数据传输;通过连接池实现并行快速查询。在全局中心和数据分中心之间,利用http进行快速数据传输,并通过确认和重传机制保证数据准确性和可靠性,同时提高物理网络容错性。第三,查询分析引擎上,本发明通过优化查询计划树等机制实现高效快速查询。在全局中心(或称全局节点、全局中心节点),进行查询解析,验证查询语法是否正确,尽快发现无效查询;并重新生成每个数据中心对应的查询语法,并行分发给相应数据分中心(或称数据分中心节点);在数据分中心接收查询请求后,语法解析组件进行语法分析,生成相应查询计划,利用不同mpp引擎进行查询,返回查询结果。第四,结果导出。本发明支持多种数据导出方式,以便于后续对结果数据的查看分析等。主要包括,支持以csv文件格式导出到本地磁盘中,并支持指定分隔符;支持导出到分布式文件系统(hdfs)中,并支持指定分隔符;支持导入到多种存储引擎和nosql数据库中。在基于mpp的跨数据中心快速查询技术的设计上,本发明包括元数据模块,数据传输模块,查询引擎模块和结果导出模块。元数据模块,在hive元数据基础上,增加统一标识,并实现持久化存储,同时保证元数据在全局节点和各数据中心的一致性。数据传输模块,负责跨数据中心的数据传输,其中包括全局中心下发查询请求和数据分中心节点返回查询数据。查询引擎模块,负责各数据中心的具体查询任务,通过兼容多种mpp引擎实现透明查询;通过重查机制屏蔽网络和硬件问题。结果导出模块,负责结果数据重定向,通过指定重定向方式,将查询结果保存至存储系统中,便于后续数据再处理。其中重定向是指将结果的数据流按照要求导入到新的存储的位置。其实现方式取决于程序实现,可以是文件的形式,也可以是一个数据流。图1给出了元数据统一标识流程图,如图所示,主要包括以下核心步骤。其中库是对数据的逻辑抽象,与传统关系型数据库中的数据库(database)是相同、等价的;表是指传统意义上的关系型二维表,即关系型数据中的table。(1)根据数据库名称获取系统内唯一库标识,即db_id。(2)若库存在则继续获取表标识,如果库不存在,返回语法错误。(3)根据db_id和表名获取系统内唯一表标识,即tbl_id,若表不存在返回语法错误。(4)根据tbl_id获取表属性,根据store属性字段的属性值选择不同mpp查询引擎。其中store是内部的一个标识,用于识别存储的类型,store可以译为存储类型。图2给出了跨数据中心传输数据模型示意图。通过全局中心下发查询请求,各数据中心在接受查询请求后,通过jdbc/odbc在本中心内部执行查询,将查询结果经过http批量返回到全局中心节点。图3给出了查询分析流程图,如图所示,主要包括以下核心步骤:(1)全局中心节点在接收查询请求后,进行语法解析。(2)若解析成功,则重新生成每个数据分中心的查询请求并将该请求发送到对应数据分中心,并等待回传数据。若解析失败,则返回语法错误。(3)数据分中心节点接收查询请求后,进行语法解析,通过元数据信息的相应mpp引擎进行查询,若查询成功则将数据返回给全局节点,若查询失败且没有超过重查次数,则进行重查,若超过重查次数,则返回查询失败(返回查询错误)。(4)若数据传输成功,则数据分中心节点结束本次查询,若传输失败且没有超过重传次数,则进行重传,否则返回传输失败(返回传输错误)。(5)若全局节点在规定时间内接收到所有分中心回传数据,则将数据存储到底层存储引擎,否则返回查询错误。其中底层存储引擎是指本地的存储组件(服务),即部署在本地的hdfs组件。(6)全局节点利用mpp引擎对返回数据进行快速查询,若查询成功则将结果返回,若查询失败且没有超过重查次数,则进行重查,若超过重查次数,则返回查询失败(返回查询错误)。上述步骤(3)中的查询是在分中心,涉及到的数据是该分中心的数据;步骤(6)是将各个分中心的数据汇总后的再次处理,涉及到的数据来自各个分中心,是一个汇总的操作。这两者执行的层次不同,一个范围较小,一个范围较大。另外,两者执行的内容也不同,比如一个统计结果,每个分中心返回分中心的统计结果,即步骤(3);但是需要在汇总点再累加一次才能返回最终的结果,即步骤(6)。上述重查次数、重传次数可使用配置文件设定,即在配置文件中预先设定合适的值。图4给出了导出模型示意图。在查询结束后,本发明支持将查询结果以多种方式导出保存,包括以csv文件格式导出到本地磁盘中,并支持指定分隔符;支持导出到分布式文件系统(hdfs)中,并支持指定分隔符;支持导入到多种存储引擎和nosql数据库中。以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1