CN117056316A - 一种多源异构数据关联查询加速方法、装置及设备 - Google Patents

一种多源异构数据关联查询加速方法、装置及设备 Download PDF

Info

Publication number
CN117056316A
CN117056316A CN202311306042.3A CN202311306042A CN117056316A CN 117056316 A CN117056316 A CN 117056316A CN 202311306042 A CN202311306042 A CN 202311306042A CN 117056316 A CN117056316 A CN 117056316A
Authority
CN
China
Prior art keywords
target
data
migration
query request
data source
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.)
Granted
Application number
CN202311306042.3A
Other languages
English (en)
Other versions
CN117056316B (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.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
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 Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202311306042.3A priority Critical patent/CN117056316B/zh
Publication of CN117056316A publication Critical patent/CN117056316A/zh
Application granted granted Critical
Publication of CN117056316B publication Critical patent/CN117056316B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • 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/242Query formulation
    • G06F16/2433Query languages
    • 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/284Relational databases
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本说明书公开了一种多源异构数据关联查询加速方法、装置及设备。所述方法包括:获取各异构数据源,根据各异构数据源的描述信息,连接各异构数据源;接收各异构数据源对应的初始查询请求;对指定数据模式的目标数据以及查询请求进行特征抽取,得到特征向量并输入决策模型,确定不同迁移策略的执行时间,进而确定目标迁移策略,根据目标迁移策略判断是否需要进行数据迁移;若是,则按照目标迁移策略进行数据迁移,得到目标数据源;根据目标数据源对查询请求进行解析重建,并根据重建后的目标查询请求生成逻辑执行计划;根据逻辑执行计划确定物理执行计划,并执行目标查询请求对应的数据处理任务。

Description

一种多源异构数据关联查询加速方法、装置及设备
技术领域
本说明书涉及计算机技术领域,尤其涉及一种多源异构数据关联查询加速方法、装置及设备。
背景技术
信息技术的高速发展促进了现有数据存储方案的多元化,同时现有存储模型呈现多样化的趋势,数据存储已经不再局限于数据库、文件系统、对象存储等单一存储介质。在数据分析、数据处理等场景下,需要将多源异构的数据整合到一起,进行关联计算和分析。
然而,现有对异构数据源进行关联和管理的方法的灵活性较差,导致执行数据查询的时间较长,数据处理任务的整体效率较低,无法充分发挥存储系统的软、硬件性能。
因此,如何提高对数据进行联合查询的效率,充分发挥存储系统的软、硬件性能,是一个亟待解决的问题。
发明内容
本说明书提供一种多源异构数据关联查询加速方法、装置及设备,以部分的解决现有技术存在的上述问题。
本说明书采用下述技术方案:
本说明书提供了一种多源异构数据关联查询加速方法,包括:
获取各异构数据源,并根据所述各异构数据源的描述信息,分别与所述各异构数据源建立连接;
接收各异构数据源对应的初始查询请求;
对所述各异构数据源中指定数据模式的目标数据以及所述初始查询请求进行特征抽取,得到具有若干维度的特征向量;
将所述特征向量输入预先训练的决策模型,确定不同迁移策略的执行时间;
根据所述执行时间,确定目标迁移策略,并根据所述目标迁移策略判断是否需要进行数据迁移;
若是,则按照所述目标迁移策略进行数据迁移,得到目标数据源,所述目标数据源的数量小于迁移之前的异构数据源的数量;
根据所述目标数据源,对所述初始查询请求进行解析重建,并根据重建后的目标查询请求生成逻辑执行计划;
根据所述逻辑执行计划确定物理执行计划,并根据所述物理执行计划执行所述目标查询请求对应的数据处理任务。
可选地,所述若干维度的特征向量至少包括:异构数据源类型、数据模式的元信息,所述初始查询请求中逻辑连接方式、连接字段、关联字段类型、数据规模以及数据膨胀率。
可选地,所述方法还包括:
确定目标迁移策略在不同特征向量以及软、硬件环境参数下的实际执行时间,并将所述实际执行时间反馈给所述决策模型;
根据所述实际执行时间,对所述决策模型在各环境参数下的模型参数进行更新。
可选地,按照所述目标迁移策略进行数据迁移,得到目标数据源,具体包括:
按照所述目标迁移策略,将存储在不同位置的异构数据源汇聚到所述目标迁移策略所指定的数据源中,得到所述目标数据源。
可选地,对所述各异构数据源中指定数据模式的目标数据以及所述初始查询请求进行特征抽取,得到具有若干维度的特征向量,具体包括:
根据所述查询请求对应结构化查询语言SQL中的查询字段对所述各异构数据源的元数据进行校验;
针对每个异构数据源,对该异构数据源执行数据采样,并根据采样结果抽取数据特征;
对所述SQL进行解析,得到所述查询请求对应的抽象语法树AST,根据所述AST确定所述查询请求对应数据处理逻辑的特征;
根据每个异构数据源对应的数据特征以及所述数据处理逻辑的特征确定所述具有若干维度的特征向量。
可选地,根据重建后的目标查询请求生成逻辑执行计划,具体包括:
对所述目标查询请求对应的SQL进行解析,并对解析得到的基于关系代数的表达节点进行拼接,得到所述目标查询请求对应的目标AST;
调用基于代价的SQL优化器对所述目标AST进行优化,得到优化后AST;
根据所述优化后AST生成基于关系代数的逻辑执行计划。
可选地,根据所述逻辑执行计划确定物理执行计划,具体包括:
根据所述目标数据源对应的描述信息,确定该目标数据源对应的种类信息;
确定所述种类信息所对应的数据库方言;
将所述逻辑执行计划发送给所述目标数据源,以使所述目标数据源根据所述数据库方言,将所述逻辑执行计划转换成所述物理执行计划并执行。
本说明书提供了一种多源异构数据关联查询加速装置,包括:
连接模块,获取各异构数据源,并根据所述各异构数据源的描述信息,分别与所述各异构数据源建立连接;
接收模块,接收各异构数据源对应的初始查询请求;
抽取模块,对所述各异构数据源中指定数据模式的目标数据以及所述初始查询请求进行特征抽取,得到具有若干维度的特征向量;
输入模块,将所述特征向量输入预先训练的决策模型,确定不同迁移策略的执行时间;
判断模块,根据所述执行时间,确定目标迁移策略,并根据所述目标迁移策略判断是否需要进行数据迁移;
迁移模块,若是,则按照所述目标迁移策略进行数据迁移,得到目标数据源,所述目标数据源的数量小于迁移之前的异构数据源的数量;
重建模块,根据所述目标数据源,对所述初始查询请求进行解析重建,并根据重建后的目标查询请求生成逻辑执行计划;
执行模块,根据所述逻辑执行计划确定物理执行计划,并根据所述物理执行计划执行所述目标查询请求对应的数据处理任务。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述多源异构数据关联查询加速方法。
本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述多源异构数据关联查询加速方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
在本说明书提供的多源异构数据关联查询加速方法中,获取各异构数据源,并接收各异构数据源对应的初始查询请求;根据各异构数据源的描述信息,分别与所述各异构数据源建立连接;对指定数据模式的目标数据以及查询请求进行特征抽取,得到特征向量并输入决策模型,确定不同迁移策略的执行时间,进而确定目标迁移策略,根据目标迁移策略判断是否需要进行数据迁移;若是,则按照目标迁移策略进行数据迁移,得到目标数据源;根据目标数据源对查询请求进行解析重建,并根据重建后的目标查询请求生成逻辑执行计划;根据逻辑执行计划确定物理执行计划,并执行目标查询请求对应的数据处理任务。
从上述方法可以看出,本方案在进行多源异构数据联合查询的过程中,可以通过对查询请求以及异构数据源中指定数据模式的数据进行特征抽取,得到相应的特征向量,充分获取数据本身的分布特征而不局限于数据源本身的统计数据,进而根据特征向量确定出最优的执行计划,判断是否需要进行数据迁移以及目标迁移策略,相比于现有技术,本方案可以根据预测出的执行时间确定出最优的目标迁移策略,保证对数据进行联合查询的效率,充分发挥存储系统的软、硬件性能。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书中提供的一种多源异构数据关联查询加速方法的流程示意图;
图2为本说明书中提供的一种特征抽取的过程示意图;
图3为本说明书中提供的一种数据关联查询加速系统示意图;
图4为本说明书中提供的一种数据关联查询加速系统的功能模块示意图;
图5为本说明书提供的一种多源异构数据关联查询加速装置的示意图;
图6为本说明书提供的一种对应于图1的电子设备示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书中提供的一种多源异构数据关联查询加速方法的流程示意图,包括以下步骤:
S101:获取各异构数据源,并根据所述各异构数据源的描述信息,分别与所述各异构数据源建立连接。
S102:并接收各异构数据源对应的初始查询请求。
在执行数据分析任务的过程中,服务器可以先获取各异构数据源,这些异构数据源中的数据可以统称为多源异构数据。其中,不同数据源的数据往往具有各自的数据结构和数据格式,并且不同异构数据源对应的存储位置不同。
与此同时,服务器可以根据各数据源对应的描述信息(如YAML格式的文本内容),与各异构数据源建立连接,从而将各异构数据源对应存储地址进行关联并确定数据分布。
具体的,服务器可以对多个异构数据源的YAML格式描述信息进行反序列化,并在其指导下对多个异构数据源建立连接。
其中,数据源为数据库(以mysql为例)的YAML描述信息中包括:
Source:-type:mysql //文件类型,host:... //主机地址,port:** //端口号,username:admin //用户名,password://用户密码,schema:public //数据库schema,database_name:test //数据库名称,read_table_name:table_name //数据表名。
数据源为文件(以csv为例)的YAML描述信息中包括:
Source:-type:csv_file //文件类型,separator:“,”//分隔符,file_path:D:\\\\\\src\\main\\resources\\depts.csv //文件地址,date_format:yyyy-MM-dd //数据格式,charset:UTF-8 //编码方式。
在进行数据分析的过程中,服务器可以根据各数据源之间的连接,接收针对上述异构数据源的初始查询请求,并确定该初始查询请求对应的结构化查询语言(StructuredQuery Language,SQL)。
需要说明的是,本说明书中用于实现一种多源异构数据关联查询加速方法的执行主体可以是服务器等指定设备,当然,也可以是客户端,为了便于描述,本说明书仅以服务器作为执行主体为例,对本说明书中提供的一种多源异构数据关联查询加速方法进行说明。
S103:对所述各异构数据源中指定数据模式的目标数据以及所述初始查询请求进行特征抽取,得到具有若干维度的特征向量。
服务器可以根据初始查询请求的SQL和数据分布,对待查询的每个数据源下指定数据模式的目标数据以及数据查询请求进行特征抽取,得到若干维度的特征向量,提取到的特征可以包括:异构数据源类型,数据模式元信息,数据查询请求中逻辑连接方式,连接字段,关联字段类型,数据规模,数据膨胀率(原始数据集在完成执行数据查询操作之后,结果集记录数与原始数据集记录数净增长比值)等。
其中,不同的异构数据源通常对应有多种数据模式的数据表,服务器可以从中确定出当前任务所需数据模式的数据表进行特征抽取,而并不需要对全部数据模式的数据进行特征抽取。
在特征提取的过程中,服务器可以根据初始查询请求的SQL查询字段对元数据进行校验,以校验根据SQL生成的抽象语法树(Abstract Syntax Tree,AST)是否合法,并检查对应数据源中是否有待查询字段。
具体的,服务器可以将待查询的SQL语句解析转换成基于关系代数的表达式节点,继而转化为关系代数算子树结构,从而将SQL描述的数据处理逻辑使用代数关系模型进行描述,对于一个查询请求的SQL语句,该SQL可以表示为:
SELECT
a.Id
FROM
mysql.dataA AS a
JOIN csv.dataB AS b ON a.Id = b.Id
WHERE
a.Id >1
转换为AST后的关系代数模型可以表示为:
LogicalProject(ID=[$0])
LogicalFilter(condition=[>(CAST($0):INTEGER NOT NULL,1)])
LogicalJoin(condition=[=($0,$3)],joinType=[inner])
LogicalTableScan(table=[[mysql,dataA]])
LogicalTableScan(table=[[csv,dataB]])
校验通过后,服务器可以对每个异构数据源的数据执行数据采样,并抽取数据本身的数据特征,与此同时,对SQL进行解析,得到初始查询请求对应的抽象语法树AST,根据AST确定查询请求对应数据处理逻辑的特征。
进一步的,服务器可以整合每一个数据源对应的数据特征以及数据处理逻辑的特征,对于异构数据源a、异构数据源b以及初始查询请求,服务器可以抽取到一个19维的特征向量。该特征向量中的字段内容可以包括:is_natural_join//是否是join操作,join_type//join操作类型,condition_type//连接类型,has_alias//是否具有别名,join_condition_size//关联字段类型,connector_a//数据源a的连接器,expansion_rate_a //异构数据源b的膨胀率,sample_count_a//a的抽样数据数量,result_count_a//a采样执行结果数量,total_count_a//异构数据源a的数据总数,connector_b //异构数据源b的连接器,expansion_rate_b//异构数据源b的膨胀率,sample_count_b//b的抽样数据数量,result_count_b//b采样执行结果数量,total_count_b//异构数据源b的数据总数,source//数据源a的枚举值,target, //数据源b的枚举值,has_relocate, //是否发生了数据转移,Time //操作时间。为了便于理解,本说明书提供了一种特征抽取的过程示意图,如图2所示。
图2为本说明书中提供的一种特征抽取的过程示意图。
其中,对于初始查询请求对应的SQL,服务器可以获取到是否是join操作、join操作类型、连接类型、是否具有别名、关联字段类型等5个维度的信息,对于每个数据源,服务器可以对其进行采样处理并提取数据源连接、膨胀率、采样数据量、结果数量以及总数据量等五个维度的信息。
S104:将所述特征向量输入预先训练的决策模型,确定不同迁移策略的执行时间。
S105:根据所述执行时间,确定目标迁移策略,并根据所述目标迁移策略判断是否需要进行数据迁移。
S106:若是,则按照所述目标迁移策略进行数据迁移,得到目标数据源,所述目标数据源的数量小于迁移之前的异构数据源的数量。
服务器可以将抽取到的特征向量输入预先训练的决策模型,通过该决策模型预测不同迁移策略对应的执行时间,在本说明书中,该迁移策略可以用于表征将数量n(n≥2)的数据源迁移至数量m(n≥m≥1)的数据源中的若干迁移方式的组合,包括向左迁移、向右迁移以及不迁移等。
例如,对于任意异构数据源A和异构数据源B,迁移策略可以包括将异构数据源A向异构数据源B迁移、将异构数据源B向异构数据源A迁移、将异构数据源A和异构数据源B向另外的异构数据源C进行迁移,以及不进行迁移。
在使用决策模型之前,服务器可以先对该决策模型进行训练,向决策模型输入样本数据,得到预测结果(即不同迁移策略的执行时间),进而以最小化各迁移策略的实际执行时间和预测结果之间的偏差为优化目标,对决策模型进行训练,直至满足训练目标,将该决策模型进行部署用于执行上述任务。
确定出各执行策略对应的执行时间后,服务器可以将执行时间最短的迁移策略作为目标迁移策略。
进一步的,服务器可以根据目标迁移策略判断是否需要进行数据迁移,若是,服务器可以根据目标迁移策略,确定出将哪些异构数据源进行汇集以及汇集位置,进而按照目标迁移策略,将存储在不同位置的异构数据源汇聚到目标迁移策略所指定的数据源中,得到迁移结果,即目标数据源。需要说明的是,目标数据源的数量少于迁移之前的异构数据源的数量。在数据迁移的过程中,服务器可以通过解析SQL 获取到需要处理的字段,从而只迁移异构数据源中对应的字段,而不对其中的全部数据进行迁移。
而若目标迁移策略为不进行数据迁移,则服务器不需要对异构数据源进行迁移,而是直接通过优化器对原有的初始查询请求进行优化,根据优化结果确定逻辑执行计划并转换为物理执行计划,进而执行后续对未迁移的各异构数据源的处理任务。
在实际应用中,基于不同的软硬件环境参数,相同的查询语句会出现表现差异较大的情况,因此,在本说明书中服务器可以对决策模型进行增量训练,通过记录每次在不同特征向量和软硬件条件下的实际运行耗时,并将结果反馈给模型,并参与之后迭代更新模型,进而影响决策模块,使其后续的预测与决策结果更加精确。
具体的,服务器可以确定目标迁移策略在不同特征向量以及软、硬件环境参数下的实际执行时间,并将所述实际执时间反馈给所述决策模型,服务器可以根据实际执行时间,以最小化确定出的实际执行时间和预测出的执行时间之间的偏差为优化目标,对决策模型在各环境参数下的模型参数进行实时更新,得到更新后的决策模型。
S107:根据所述目标数据源,对所述初始查询请求进行解析重建,并根据重建后的目标查询请求生成逻辑执行计划。
S108:根据所述逻辑执行计划确定物理执行计划,并根据所述物理执行计划执行所述目标查询请求对应的数据处理任务。
由于目标数据源相比于迁移之前的异构数据源发生了改变,因此,服务器可以根据初始查询请求以及目标数据源,对数据查询请求进行解析重建,得到目标查询请求,而后调用基于代价的SQL优化器对目标查询请求的查询语句进行优化,得到优化后的目标查询请求。
具体的,服务器可以引入火山优化模型,即采用动态规划和贪心的基本思想得到一个代价(需要处理的数据的行数)最小的最优方案,其中优化方式可以包括谓词下推,常量堆叠,列裁剪和条件简化等。
其中,服务器先可以对目标查询请求对应的SQL进行解析,并对解析得到的基于关系代数的表达节点进行拼接,得到所述目标查询请求对应的目标AST,而后调用基于代价的SQL优化器对目标AST进行优化,得到优化后AST进而根据优化后AST确定优化后的目标查询请求并生成基于关系代数的逻辑执行计划。
在本说明书中,对查询请求进行优化的核心是对关系代数模型产生的算子树进行等价交换,通过转换将最初的关系代数模型转化成一种更为简单、高效且不影响最终数据结果的关系代数模型,最后的关系代数模型一定是一种比之前更优的执行方案,从而完成了进行查询优化的目的。
服务器可以将优化后的目标查询请求的SQL语句解析成各类关系代数节点T,继而转化为关系代数算子树结构AST,根据该树结构确定基于关系代数的逻辑执行计划。
生成逻辑执行计划后,服务器可以根据目标数据源的描述信息,确定该目标数据源对应的种类信息,进而确定该种类信息所对应的数据库方言(如MySQL、Oracle等),根据数据库方言,将逻辑执行计划转换为数据库能够执行的物理执行计划。
具体的,服务器可以确定目标数据源的种类信息,进而确定该种类信息对应的数据库方言,而后将逻辑执行计划发送给目标数据源,由目标数据源根据数据库方言对逻辑执行计划进行调整,生成目标数据源能够执行的物理执行计划,并根据物理执行计划执行目标查询请求对应的数据处理任务,而后服务器可以根据目标数据源的数据处理结果进行后续的数据分析任务。
在执行物理计划的过程中,服务器可以使用物理任务描述(与数据源匹配的方言)与具体的数据源沟通并执行,或使用与数据源匹配的方言直接取得数据,在内存中完成物理任务。
在实际应用中,可以在服务器中部署相应的数据关联查询加速系统来实现上述多源异构数据关联查询加速方法,为了便于理解,本说明书提供了一种数据关联查询加速系统,如图3所示。
图3为本说明书中提供的一种数据关联查询加速系统示意图。
其中,该系统可以包括:特征提取装置、数据迁移装置、SQL优化装置以及计划执行装置。
特征提取装置用于在异构数据源文件指导下获取多个异构数据源的连接,接收与所提供数据源文件对应的数据查询SQL请求,并对每个数据源下指定数据模式以及数据查询请求进行特征抽取。
数据迁移装置用于根据抽取到的特征向量,通过内部的决策模型进行自主决策判断,判断是否有更好的迁移策略;若有,则将数据汇聚到(通常)更少的数据源中,此后数据迁移决策执行结果将被发送至所述的SQL优化装置。
SQ优化装置用于根据接收到的数据查询请求以及所述数据迁移模块的执行结果信息,对数据查询请求进行解析重建,并调用基于代价的SQL优化器对重构的数据查询语句进行优化,并生成基于关系代数的逻辑执行计划。
计划执行装置用于针对当前计算介质物理环境参数,对逻辑执行计划调整生成物理执行计划并执行。
进一步的,本说明书提供了一种数据关联查询加速系统的功能模块示意图,如图4所示。
图4为本说明书中提供的一种数据关联查询加速系统的功能模块示意图。
其中,从系统功能的角度可以划分为接口层、解析分析层和决策执行层,其中接口层包括“SQL解析模块”、“数据源连接模块”和“元数据校验模块”;解析分析层包括“数据采样模块”、“特征提取模块”、“逻辑代价计算模块”和“数据代价评估模块”;决策执行层包括、“深度学习决策模块”、“SQL重建模块”、“SQL优化模块”、“物理任务执行模块”。
从上述方法可以看出,本发明从充分利用异构数据源本身的存储和数据处理优势出发,通过提前进行数据迁移达到提高了查询性能;通过数据采样充分获取数据本身的分布特征而不局限于数据源本身的统计数据;通过解析SQL提取抽象语法树进而得到数据处理逻辑本身的特征,从而能够综合数据特征和处理逻辑特征来实现策略决策。
其次,本发明通过使用深度学习模型预估SQL执行时间并获得最优的数据迁移决策,此模型的增量更新能力使得模型在迁移到不同的执行环境中也能够快速微调,从而增强准确度。
再次,在数据迁移后,本发明在常规SQL优化后的物理执行阶段,通过不同数据存储的方言转换来进一步高效地利用异构数据源存储本身的能力,以实现进一步加速。基于上述查询流程的优化,本发明解决了现有发明和技术中过度依赖专家系统和固定规则而造成灵活性差,缺乏自学习能力、在不同软硬件条件表现差异大以及需要提前创建更新维护索引信息或使用的通用数据清洗方式较复杂而造成的查询效率低的技术问题。
以上为本说明书的一个或多个实施多源异构数据关联查询加速方法,基于同样的思路,本说明书还提供了相应的多源异构数据关联查询加速装置,如图5所示。
图5为本说明书提供的一种多源异构数据关联查询加速装置的示意图,包括:
连接模块501,用于获取各异构数据源,并根据所述各异构数据源的描述信息,分别与所述各异构数据源建立连接;
接收模块502,用于接收各异构数据源对应的初始查询请求;
抽取模块503,用于对所述各异构数据源中指定数据模式的目标数据以及所述初始查询请求进行特征抽取,得到具有若干维度的特征向量;
输入模块504,用于将所述特征向量输入预先训练的决策模型,确定不同迁移策略的执行时间;
判断模块505,用于根据所述执行时间,确定目标迁移策略,并根据所述目标迁移策略判断是否需要进行数据迁移;
迁移模块506,用于若是,则按照所述目标迁移策略进行数据迁移,得到目标数据源,所述目标数据源的数量小于迁移之前的异构数据源的数量;
重建模块507,用于根据所述目标数据源,对所述初始查询请求进行解析重建,并根据重建后的目标查询请求生成逻辑执行计划;
执行模块508,用于根据所述逻辑执行计划确定物理执行计划,并根据所述物理执行计划执行所述目标查询请求对应的数据处理任务。
可选地,所述若干维度的特征向量至少包括:异构数据源类型、数据模式的元信息,所述初始查询请求中逻辑连接方式、连接字段、关联字段类型、数据规模以及数据膨胀率。
可选地,所述装置还包括:
更新模块509,用于确定目标迁移策略在不同特征向量以及软、硬件环境参数下的实际执行时间,并将所述实际执行时间反馈给所述决策模型;根据所述实际执行时间,对所述决策模型在各环境参数下的模型参数进行更新。
可选地,所述迁移模块506具体用于,按照所述目标迁移策略,将存储在不同位置的异构数据源汇聚到所述目标迁移策略所指定的数据源中,得到所述目标数据源。
可选地,所述抽取模块503具体用于,根据所述查询请求对应结构化查询语言SQL中的查询字段对所述各异构数据源的元数据进行校验;针对每个异构数据源,对该异构数据源执行数据采样,并根据采样结果抽取数据特征;对所述SQL进行解析,得到所述查询请求对应的抽象语法树AST,根据所述AST确定所述查询请求对应数据处理逻辑的特征;根据每个异构数据源对应的数据特征以及所述数据处理逻辑的特征确定所述具有若干维度的特征向量。
可选地,所述重建模块507具体用于,对所述目标查询请求对应的SQL进行解析,并对解析得到的基于关系代数的表达节点进行拼接,得到所述目标查询请求对应的目标AST;调用基于代价的SQL优化器对所述目标AST进行优化,得到优化后AST;根据所述优化后AST生成基于关系代数的逻辑执行计划。
可选地,所述执行模块508具体用于,根据所述目标数据源对应的描述信息,确定该目标数据源对应的种类信息;确定所述种类信息所对应的数据库方言;根据所述数据库方言,将所述逻辑执行计划转换为所述物理执行计划。
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的一种多源异构数据关联查询加速方法。
本说明书还提供了图6所示的一种对应于图1的电子设备的示意结构图。如图6所述,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所述的多源异构数据关联查询加速方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(ProgrammableLogic Device, PLD)(例如现场可编程门阵列(Field Programmable Gate Array,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(HardwareDescription Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(AdvancedBoolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(JavaHardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby HardwareDescription Language)等,目前最普遍使用的是VHDL(Very-High-Speed IntegratedCircuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

Claims (10)

1.一种多源异构数据关联查询加速方法,其特征在于,包括:
获取各异构数据源,并根据所述各异构数据源的描述信息,分别与所述各异构数据源建立连接;
接收各异构数据源对应的初始查询请求;
对所述各异构数据源中指定数据模式的目标数据以及所述初始查询请求进行特征抽取,得到具有若干维度的特征向量;
将所述特征向量输入预先训练的决策模型,确定不同迁移策略的执行时间;
根据所述执行时间,确定目标迁移策略,并根据所述目标迁移策略判断是否需要进行数据迁移;
若是,则按照所述目标迁移策略进行数据迁移,得到目标数据源,所述目标数据源的数量小于迁移之前的异构数据源的数量;
根据所述目标数据源,对所述初始查询请求进行解析重建,并根据重建后的目标查询请求生成逻辑执行计划;
根据所述逻辑执行计划确定物理执行计划,并根据所述物理执行计划执行所述目标查询请求对应的数据处理任务。
2.如权利要求1所述的方法,其特征在于,所述若干维度的特征向量至少包括:异构数据源类型、数据模式的元信息,所述初始查询请求中逻辑连接方式、连接字段、关联字段类型、数据规模以及数据膨胀率。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
确定目标迁移策略在不同特征向量以及软、硬件环境参数下的实际执行时间,并将所述实际执行时间反馈给所述决策模型;
根据所述实际执行时间,对所述决策模型在各环境参数下的模型参数进行更新。
4.如权利要求1所述的方法,其特征在于,按照所述目标迁移策略进行数据迁移,得到目标数据源,具体包括:
按照所述目标迁移策略,将存储在不同位置的异构数据源汇聚到所述目标迁移策略所指定的数据源中,得到所述目标数据源。
5.如权利要求1所述的方法,其特征在于,对所述各异构数据源中指定数据模式的目标数据以及所述初始查询请求进行特征抽取,得到具有若干维度的特征向量,具体包括:
根据所述初始查询请求对应结构化查询语言SQL中的查询字段对所述各异构数据源的元数据进行校验;
针对每个异构数据源,对该异构数据源执行数据采样,并根据采样结果抽取数据特征;
对所述SQL进行解析,得到所述查询请求对应的抽象语法树AST,根据所述AST确定所述查询请求对应数据处理逻辑的特征;
根据每个异构数据源对应的数据特征以及所述数据处理逻辑的特征确定所述具有若干维度的特征向量。
6.如权利要求1所述的方法,其特征在于,根据重建后的目标查询请求生成逻辑执行计划,具体包括:
对所述目标查询请求对应的SQL进行解析,并对解析得到的基于关系代数的表达节点进行拼接,得到所述目标查询请求对应的目标AST;
调用基于代价的SQL优化器对所述目标AST进行优化,得到优化后AST;
根据所述优化后AST生成基于关系代数的逻辑执行计划。
7.如权利要求1所述的方法,其特征在于,根据所述逻辑执行计划确定物理执行计划,具体包括:
根据所述目标数据源对应的描述信息,确定该目标数据源对应的种类信息;
确定所述种类信息所对应的数据库方言;
将所述逻辑执行计划发送给所述目标数据源,以使所述目标数据源根据所述数据库方言,将所述逻辑执行计划转换成所述物理执行计划并执行。
8.一种多源异构数据关联查询加速装置,其特征在于,包括:
连接模块,获取各异构数据源,并根据所述各异构数据源的描述信息,分别与所述各异构数据源建立连接;
接收模块,接收各异构数据源对应的初始查询请求;
抽取模块,对所述各异构数据源中指定数据模式的目标数据以及所述初始查询请求进行特征抽取,得到具有若干维度的特征向量;
输入模块,将所述特征向量输入预先训练的决策模型,确定不同迁移策略的执行时间;
判断模块,根据所述执行时间,确定目标迁移策略,并根据所述目标迁移策略判断是否需要进行数据迁移;
迁移模块,若是,则按照所述目标迁移策略进行数据迁移,得到目标数据源,所述目标数据源的数量小于迁移之前的异构数据源的数量;
重建模块,根据所述目标数据源,对所述初始查询请求进行解析重建,并根据重建后的目标查询请求生成逻辑执行计划;
执行模块,根据所述逻辑执行计划确定物理执行计划,并根据所述物理执行计划执行所述目标查询请求对应的数据处理任务。
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1~7任一项所述的方法。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1~7任一项所述的方法。
CN202311306042.3A 2023-10-10 2023-10-10 一种多源异构数据关联查询加速方法、装置及设备 Active CN117056316B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311306042.3A CN117056316B (zh) 2023-10-10 2023-10-10 一种多源异构数据关联查询加速方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311306042.3A CN117056316B (zh) 2023-10-10 2023-10-10 一种多源异构数据关联查询加速方法、装置及设备

Publications (2)

Publication Number Publication Date
CN117056316A true CN117056316A (zh) 2023-11-14
CN117056316B CN117056316B (zh) 2024-01-26

Family

ID=88666663

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311306042.3A Active CN117056316B (zh) 2023-10-10 2023-10-10 一种多源异构数据关联查询加速方法、装置及设备

Country Status (1)

Country Link
CN (1) CN117056316B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104899295A (zh) * 2015-06-09 2015-09-09 苏州国云数据科技有限公司 一种异构数据源数据关联分析方法
CN110837585A (zh) * 2019-11-07 2020-02-25 中盈优创资讯科技有限公司 多源异构的数据关联查询方法及系统
US10909120B1 (en) * 2016-03-30 2021-02-02 Groupon, Inc. Configurable and incremental database migration framework for heterogeneous databases
CN112579626A (zh) * 2020-09-28 2021-03-30 京信数据科技有限公司 多源异构sql查询引擎的构建方法及装置
CN112817930A (zh) * 2019-11-15 2021-05-18 北京沃东天骏信息技术有限公司 一种数据迁移的方法和装置
US11016954B1 (en) * 2017-09-01 2021-05-25 Amazon Technologies, Inc. Distributed data set extraction for migration
CN114756629A (zh) * 2022-06-16 2022-07-15 之江实验室 基于sql的多源异构数据交互分析引擎及方法
CN115495440A (zh) * 2022-10-25 2022-12-20 金篆信科有限责任公司 异构数据库的数据迁移方法、装置、设备及存储介质
CN116049141A (zh) * 2022-12-30 2023-05-02 航天信息股份有限公司 一种基于多源异构数据的数据迁移方法及系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104899295A (zh) * 2015-06-09 2015-09-09 苏州国云数据科技有限公司 一种异构数据源数据关联分析方法
US10909120B1 (en) * 2016-03-30 2021-02-02 Groupon, Inc. Configurable and incremental database migration framework for heterogeneous databases
US11016954B1 (en) * 2017-09-01 2021-05-25 Amazon Technologies, Inc. Distributed data set extraction for migration
CN110837585A (zh) * 2019-11-07 2020-02-25 中盈优创资讯科技有限公司 多源异构的数据关联查询方法及系统
CN112817930A (zh) * 2019-11-15 2021-05-18 北京沃东天骏信息技术有限公司 一种数据迁移的方法和装置
CN112579626A (zh) * 2020-09-28 2021-03-30 京信数据科技有限公司 多源异构sql查询引擎的构建方法及装置
CN114756629A (zh) * 2022-06-16 2022-07-15 之江实验室 基于sql的多源异构数据交互分析引擎及方法
CN115495440A (zh) * 2022-10-25 2022-12-20 金篆信科有限责任公司 异构数据库的数据迁移方法、装置、设备及存储介质
CN116049141A (zh) * 2022-12-30 2023-05-02 航天信息股份有限公司 一种基于多源异构数据的数据迁移方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
RAN TAN ET AL: "Enabling query processing across heterogeneous data models: A survey", 《2017 IEEE INTERNATIONAL CONFERENCE ON BIG DATA (BIG DATA)》 *
郭东新: "多数据源的关联查询优化技术", 《计算机工程与设计》 *

Also Published As

Publication number Publication date
CN117056316B (zh) 2024-01-26

Similar Documents

Publication Publication Date Title
CN109491989B (zh) 数据处理方法及装置、电子设备、存储介质
CN110134668B (zh) 应用于区块链的数据迁移方法、装置和设备
CN107038161B (zh) 一种用于过滤数据的设备及方法
CN116185532B (zh) 一种任务执行系统、方法、存储介质及电子设备
CN116483859A (zh) 数据查询方法及装置
CN110245137B (zh) 一种索引的处理方法、装置及设备
CN112970011A (zh) 记录查询优化中的谱系
CN111324803B (zh) 搜索引擎的查询请求处理方法、装置及客户端
CN117421302A (zh) 一种数据处理方法及相关设备
CN117056316B (zh) 一种多源异构数据关联查询加速方法、装置及设备
CN116402165B (zh) 一种算子检测的方法、装置、存储介质以及电子设备
CN116048977B (zh) 一种基于数据还原的测试方法及装置
CN113326288A (zh) 数据处理方法、装置、电子设备
CN116629015A (zh) 数字孪生任务的处理方法、装置、设备及存储介质
CN116010419A (zh) 一种创建唯一索引和优化逻辑删除的方法及装置
CN115878654A (zh) 一种数据查询的方法、装置、设备及存储介质
CN115934684B (zh) 一种多源数据库数据移植方法及装置、设备及存储介质
CN116383235A (zh) 一种数据处理方法、装置、设备及介质
CN117472910B (zh) 一种同态压缩数据处理方法和系统
CN111324434B (zh) 计算任务的配置方法、装置及执行系统
CN111241147B (zh) 一种数据采集方法、装置、电子设备及存储介质
CN117687634A (zh) 一种服务编译方法、装置和电子设备
CN117112538A (zh) 数据库操作方法、装置、计算机设备和存储介质
CN116483867A (zh) 数据查询方法及装置
CN115587107A (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
GR01 Patent grant
GR01 Patent grant