当前位置: 首页 > 专利查询>之江实验室专利>正文

基于SQL的多源异构数据交互分析引擎及方法技术

技术编号:34194810 阅读:54 留言:0更新日期:2022-07-17 16:20
本发明专利技术公开了基于SQL的多源异构数据交互分析引擎及方法,引擎包括:依次连接的交互控制台、协调器、执行器和源驱动器,方法包括:步骤S1:交互控制台获取SQL数据,反馈SQL执行结果;步骤S2:协调器解析SQL数据生成逻辑计划树,逻辑计划树包括一系列具有依赖关系的任务,将逻辑计划树拆分成能够并发执行的子计划,各子计划包含一组任务,将子计划调度到执行器;步骤S3:执行器根据子计划,通过源驱动器获取数据源数据,进行子计划中任务的执行,并将SQL执行结果反馈交互控制台。实现多源异构数据的交互式关联融合分析的目的,降低了成本,提高了数据准确性、时效性,提升了扩展性和维护性。维护性。维护性。

SQL based multi-source heterogeneous data interaction analysis engine and method

【技术实现步骤摘要】
基于SQL的多源异构数据交互分析引擎及方法


[0001]本专利技术涉及大数据交互分析
,尤其是涉及一种基于SQL的多源异构数据交互分析引擎及方法。

技术介绍

[0002]大数据时代,随着数据量的暴增以及数据结构的多样化,为数据分析带来亟需解决的两个核心问题:实时性和关联融合性。对于应用系统而言,数据往往分散在多个异构的数据存储结构中,如数据库、搜索引擎、缓存系统、消息队列、本地文件等。多源头、异架构的分析场景给数据关联分析带来困难,一次业务分析往往需要多个中间步骤协同完成,实际操作的成本大,数据的准确性和时效性也无法满足要求。近年来,数据湖的提出虽然统一整合了各种数据源,但它以存储为中心的特性在海量多样数据的接入和治理方面也存在诸多不便。如何高效、便捷地针对大规模多源异构数据进行实时分析,成为新的挑战。

技术实现思路

[0003]为解决现有技术的不足,通过加载不同的数据源链接器,实现多源异构数据的交互式关联融合分析的目的,本专利技术采用如下的技术方案:一种基于SQL的多源异构数据交互分析引擎,包括依次连接的交互控制台、协调器、执行器和源驱动器;所述交互控制台,用于获取SQL数据,返回SQL执行结果;所述协调器,用于解析SQL数据生成逻辑计划树,逻辑计划树包括一系列具有依赖关系的任务,将逻辑计划树拆分成能够并发执行的子计划,各子计划包含一组任务,将子计划调度到执行器;所述执行器,根据子计划,通过源驱动器获取数据源数据,进行子计划中任务的执行,并将SQL执行结果反馈交互控制台;所述源驱动器,用于执行器与数据源建立链接,获取数据源数据。
[0004]进一步地,所述交互控制台接收并统计SQL数据,多任务执行及控制,监控协调器和/或执行器状态,数据源列表维护与查询,反馈SQL执行结果。本专利技术的结构采用了经典MVC模式,用户通过客户端进行互动式操作,任务进度与分析结果都能通过控制台实时反馈。
[0005]进一步地,所述协调器包括SQL解析模块、元数据接口、任务规划模块、任务调度模块、服务发现模块;所述SQL解析模块,解析SQL数据生成抽象语法树,并通过元数据接口,获取数据源信息进行校验;所述元数据接口,用于数据源信息的查询与校验;所述任务规划模块,将抽象语法树转化为逻辑计划树;所述任务调度模块,对逻辑计划树中的任务进行拆分,将拆分得到的子计划调度
分配到一组执行器;所述服务发现模块,获取执行器的状态,用于调度过程中,执行器的分配。
[0006]进一步地,所述服务发现模块收集各执行器的心跳和任务负载数据,并维护当前可供正常分配的执行器列表,用于任务调度模块根据当前可用的执行器及其负载状态,选取执行器进行子计划分配。
[0007]进一步地,所述逻辑计划树中的任务,包括的数据读取任务、数据过滤任务、数据关联任务、分组聚合任务、排序任务、提取任务、输出任务;所述数据读取任务,是读取数据源中的数据;所述数据过滤任务,是对读取的数据源数据进行过滤;所述数据关联任务,是对并行读取、过滤后的数据进行关联;所述分组聚合任务,是对关联后的数据进行分组;所述排序任务,是对分组后的数据进行排序;所述提取任务,是对排序后的数据进行提取;所述输出任务,是对提取后的数据进行输出。
[0008]进一步地,所述执行器包括执行队列、第一判断模块、第二判断模块、第三判断模块、拆分模块、执行模块、合并模块、第四判断模块;所述执行队列,用于按先后顺序排放执行器获取的子计划;所述第一判断模块,从执行队列中获取当前任务,若当前任务是所述子计划中的远程类型任务,则开启远程通道传递数据,远程类型任务包括输出任务,用于反馈执行结果,否则,将当前任务输入第二判断模块;所述第二判断模块,获取并判断当前任务,若当前任务是所述子计划中的数据读取任务,则输入第三判断模块,否则,输入拆分模块;所述第三判断模块,根据当前任务判断对应的源驱动器是否加载,若加载,则批量读取数据源数据,否则,加载对应的源驱动器,初始化链接池,链接对应数据源;所述拆分模块,根据当前任务对应的执行器的资源,对当前任务按数据处理规模进行拆分;本专利技术针对执行器内部的task任务进行合理拆分,保证拆分后的slice子任务所处理的数据块能完全在内存中执行,避免磁盘IO操作,相比于传统MapReduce、Hive等大数据计算框架提高了分析的时效性;子计划的task任务以pipeline流水线的方式在执行器内部异步执行,分布式并发处理和流水式计算为大数据实时分析提供了技术保障;所述执行模块,根据拆分的子任务进行并发执行;所述合并模块,对子任务执行得到的中间结果,进行合并、重排、去重,得到当前任务的执行结果并进行反馈;所述第四判断模块,判断执行队列是否存在未执行任务,若存在,则将未执行任务作为当前任务,进入第一判断模块,否则结束任务的执行。
[0009]执行器集群采用了并行处理框架,每个执行器都有独立的计算和存储资源,单节点任务失败不影响整体流程。集群的规模大小可以根据需要处理的数据量动态调整,对亿级大数据的分析也可以做到游刃有余。
[0010]进一步地,所述协调器对子计划进行切分,添加远程类型的交换任务,在不同执行器上进行调度时,建立远程通道,用于不同执行器之间的数据交换,数据在分布式环境下需
要通过网络进行远程传输。
[0011]一种基于SQL的多源异构数据交互分析方法,包括如下步骤:步骤S1:获取SQL数据;步骤S2:解析SQL数据生成逻辑计划树,逻辑计划树包括一系列具有依赖关系的任务,将逻辑计划树拆分成能够并发执行的子计划,各子计划包含一组任务;步骤S3:根据子计划,与数据源建立链接,获取数据源数据,进行子计划中任务的执行,并返回SQL执行结果。
[0012]进一步地,所述步骤S3包括如下步骤:步骤S31,获取子计划,并将子计划中的任务放入执行队列;步骤S32,从执行队列中获取当前任务并初始化;步骤S33,判断当前任务是否是远程类型任务,若是远程类型任务,则开启远程通道传递数据,远程类型任务包括输出任务,用于反馈执行结果,否则,进入步骤S34;步骤S34,判断当前任务是否是子计划中的数据读取任务,若是数据读取任务,则根据当前任务,再判断对应的源驱动器是否加载,若已加载对应的源驱动器,则直接批量读取数据源数据,若未加载对应的源驱动器,则加载对应的数据源驱动,初始化链接池,链接对应数据源,然后批量读取数据源数据,若不是数据读取任务,进入步骤S35;步骤S35,根据当前任务对应的执行器的资源,对当前任务按数据处理规模进行拆分;本专利技术针对执行器内部的task任务进行合理拆分,保证拆分后的slice子任务所处理的数据块能完全在内存中执行,避免磁盘IO操作,相比于传统MapReduce、Hive等大数据计算框架提高了分析的时效性;子计划的task任务以pipeline流水线的方式在执行器内部异步执行,分布式并发处理和流水式计算为大数据实时分析提供了技术保障;根据拆分的子任务进行并发执行;对子任务执行得到的中间结果,进行合并、重排、去重,得到当前任务的执行结果并进行反馈本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于SQL的多源异构数据交互分析引擎,包括依次连接的交互控制台、协调器、执行器和源驱动器,其特征在于:所述交互控制台,用于获取SQL数据,返回SQL执行结果;所述协调器,用于解析SQL数据生成逻辑计划树,逻辑计划树包括一系列具有依赖关系的任务,将逻辑计划树拆分成能够并发执行的子计划,各子计划包含一组任务,将子计划调度到执行器;所述执行器,根据子计划,通过源驱动器获取数据源数据,进行子计划中任务的执行,并将SQL执行结果反馈交互控制台;所述源驱动器,用于执行器与数据源建立链接,获取数据源数据。2.根据权利要求1所述的基于SQL的多源异构数据交互分析引擎,其特征在于:所述交互控制台接收并统计SQL数据,多任务执行及控制,监控协调器和/或执行器状态,数据源列表维护与查询,反馈SQL执行结果。3.根据权利要求1所述的基于SQL的多源异构数据交互分析引擎,其特征在于:所述协调器包括SQL解析模块、元数据接口、任务规划模块、任务调度模块、服务发现模块;所述SQL解析模块,解析SQL数据生成抽象语法树,并通过元数据接口,获取数据源信息进行校验;所述元数据接口,用于数据源信息的查询与校验;所述任务规划模块,将抽象语法树转化为逻辑计划树;所述任务调度模块,对逻辑计划树中的任务进行拆分,将拆分得到的子计划调度分配到一组执行器;所述服务发现模块,获取执行器的状态,用于调度过程中,执行器的分配。4.根据权利要求3所述的基于SQL的多源异构数据交互分析引擎,其特征在于:所述服务发现模块收集各执行器的心跳和任务负载数据,并维护当前可供正常分配的执行器列表,用于任务调度模块根据当前可用的执行器及其负载状态,选取执行器进行子计划分配。5.根据权利要求1所述的基于SQL的多源异构数据交互分析引擎,其特征在于:所述逻辑计划树中的任务,包括的数据读取任务、数据过滤任务、数据关联任务、分组聚合任务、排序任务、提取任务、输出任务;所述数据读取任务,是读取数据源中的数据;所述数据过滤任务,是对读取的数据源数据进行过滤;所述数据关联任务,是对并行读取、过滤后的数据进行关联;所述分组聚合任务,是对关联后的数据进行分组;所述排序任务,是对分组后的数据进行排序;所述提取任务,是对排序后的数据进行提取;所述输出任务,是对提取后的数据进行输出。6.根据权利要求1所述的基于SQL的多源异构数据交互分析引擎,其特征在于:所述执行器包括执行队列、第一判断模块、第二判断模块、第三判断模块、拆分模块、执行模块、合并模块、第四判断模块;所述执行队列,用于排放执行器获取的子计划;所述第一判断模块,从执行队列中获取当前任务,若当前任务是所述子计划中的远程
类型任务,则开启远程通道传递数据,远程类型任务包括输出任务,...

【专利技术属性】
技术研发人员:罗实杨博张璠璠张涛傅四维王永恒
申请(专利权)人:之江实验室
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1