本发明专利技术属于计算机技术领域,公开了一种数据查询方法、装置、设备及存储介质。本申请通过将满足预设重排条件的流任务作为待重排任务,并暂停待重排任务的执行;获取待重排任务对应的连接表信息;根据连接表信息规划表连接顺序;基于表连接顺序对待重排任务的算子连接序列进行重排;在重排完成时,恢复待重排任务的执行,以对数据库进行查询。由于是在进行多表连接查询的待重排任务执行之前,先暂停任务,根据规划得到的高执行效率的表连接顺序对该待重排任务的算子连接序列进行重排之后再执行待重排任务,从而保证多表连接查询的执行效率较高。率较高。率较高。
【技术实现步骤摘要】
数据查询方法、装置、设备及存储介质
[0001]本专利技术涉及计算机
,尤其涉及一种数据查询方法、装置、设备及存储介质。
技术介绍
[0002]在进行数据库查询时,多表连接查询在各类场景用得很多,而表连接(Join)顺序重排,是Spark、FLink成本优化(CBO)的主要内容。传统的批处理搜集表统计(stat)信息重排,是预先搜集数据进行CBO,一旦CBO完成,多表连接顺序就被固定,无法改变,而在流处理领域,数据表大小是不断变化的,传统的方式进行CBO存在信息不准确和过时的情况,导致最终进行数据查询时,无法保证较高的执行效率。
[0003]上述内容仅用于辅助理解本专利技术的技术方案,并不代表承认上述内容是现有技术。
技术实现思路
[0004]本专利技术的主要目的在于提供一种数据查询方法、装置、设备及存储介质,旨在解决现有技术无法保证数据查询时具有较高的执行效率的技术问题。
[0005]为实现上述目的,本专利技术提供了一种数据查询方法,所述方法包括以下步骤:
[0006]将满足预设重排条件的流任务作为待重排任务,并暂停所述待重排任务的执行;
[0007]获取所述待重排任务对应的连接表信息;
[0008]根据所述连接表信息规划表连接顺序;
[0009]基于所述表连接顺序对所述待重排任务的算子连接序列进行重排;
[0010]在重排完成时,恢复所述待重排任务的执行,以对数据库进行查询。
[0011]在本申请的一种可能的实施方式中,所述将满足预设重排条件的流任务作为待重排任务,并暂停所述待重排任务的执行的步骤之前,还包括:
[0012]获取流任务对应的算子连接序列;
[0013]若所述算子连接连接序列中存在多个直接连接的Join算子,则判定所述流任务满足预设重排条件。
[0014]在本申请的一种可能的实施方式中,所述获取所述待重排任务对应的连接表信息的步骤,包括:
[0015]获取所述待重排任务对应的算子连接序列;
[0016]读取所述算子连接序列中各Join算子的算子标识;
[0017]根据所述算子标识查找所述待重排任务对应的连接表信息。
[0018]在本申请的一种可能的实施方式中,所述根据所述连接表信息规划表连接顺序的步骤,包括:
[0019]从所述连接表信息中提取连接表名及表数据信息;
[0020]基于所述连接表名生成多个表连接组合;
[0021]基于所述表数据信息计算各表连接组合对应的表连接代价;
[0022]根据所述表连接代价从所述多个表连接组合中选取目标连接组合;
[0023]基于所述目标连接组合生成表连接顺序。
[0024]在本申请的一种可能的实施方式中,所述根据所述表连接代价从所述多个表连接组合中选取目标连接组合的步骤,包括:
[0025]获取各表连接组合对应的表连接代价中的代价最小值;
[0026]将所述代价最小值对应的表连接组合作为目标连接组合。
[0027]在本申请的一种可能的实施方式中,所述在重排完成时,恢复所述待重排任务的执行,以对数据库进行查询的步骤,包括:
[0028]在重排完成时,获取重排后的算子连接序列中Join算子的输入信息;
[0029]根据所述输入信息对所述Join算子的连接模式进行调整;
[0030]在调整完毕时,恢复所述待重排任务的执行,以对数据库进行查询。
[0031]在本申请的一种可能的实施方式中,所述根据所述输入信息对所述Join算子的连接模式进行调整的步骤,包括:
[0032]从所述输入信息中提取左侧输入量及右侧输入量;
[0033]若所述左侧输入量小于或等于预设输入阈值,则将所述Join算子的左侧连接模式调整为广播模式;
[0034]若所述右侧输入量小于或等于所述预设输入阈值,则将所述Join算子的右侧连接模式调整为广播模式。
[0035]此外,为实现上述目的,本专利技术还提出一种数据查询装置,所述数据查询装置包括以下模块:
[0036]任务选取模块,用于将满足预设重排条件的流任务作为待重排任务,并暂停所述待重排任务的执行;
[0037]信息获取模块,用于获取所述待重排任务对应的连接表信息;
[0038]顺序规划模块,用于根据所述连接表信息规划表连接顺序;
[0039]连接重排模块,用于基于所述表连接顺序对所述待重排任务的算子连接序列进行重排;
[0040]数据查询模块,用于在重排完成时,恢复所述待重排任务的执行,以对数据库进行查询。
[0041]此外,为实现上述目的,本专利技术还提出一种数据查询设备,所述数据查询设备可以包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的数据查询程序,所述数据查询程序被处理器执行时实现如上所述的数据查询方法的步骤。
[0042]此外,为实现上述目的,本专利技术还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有数据查询程序,所述数据查询程序执行时实现如上所述的数据查询方法的步骤。
[0043]本专利技术通过将满足预设重排条件的流任务作为待重排任务,并暂停待重排任务的执行;获取待重排任务对应的连接表信息;根据连接表信息规划表连接顺序;基于表连接顺序对待重排任务的算子连接序列进行重排;在重排完成时,恢复待重排任务的执行,以对数据库进行查询。由于是在进行多表连接查询的待重排任务执行之前,先暂停任务,根据规划
得到的高执行效率的表连接顺序对该待重排任务的算子连接序列进行重排之后再执行待重排任务,从而保证多表连接查询的执行效率较高。
附图说明
[0044]图1是本专利技术实施例方案涉及的硬件运行环境的电子设备的结构示意图;
[0045]图2为本专利技术数据查询方法第一实施例的流程示意图;
[0046]图3为本专利技术一实施例调整前的算子连接示意图;
[0047]图4为本专利技术一实施例调整后的算子连接示意图;
[0048]图5为本专利技术一实施例的系统架构示意图;
[0049]图6为本专利技术数据查询方法第二实施例的流程示意图;
[0050]图7为本专利技术数据查询装置第一实施例的结构框图。
[0051]本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
[0052]应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。
[0053]参照图1,图1为本专利技术实施例方案涉及的硬件运行环境的数据查询设备结构示意图。
[0054]如图1所示,该电子设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种数据查询方法,其特征在于,所述数据查询方法包括以下步骤:将满足预设重排条件的流任务作为待重排任务,并暂停所述待重排任务的执行;获取所述待重排任务对应的连接表信息;根据所述连接表信息规划表连接顺序;基于所述表连接顺序对所述待重排任务的算子连接序列进行重排;在重排完成时,恢复所述待重排任务的执行,以对数据库进行查询。2.如权利要求1所述的数据查询方法,其特征在于,所述将满足预设重排条件的流任务作为待重排任务,并暂停所述待重排任务的执行的步骤之前,还包括:获取流任务对应的算子连接序列;若所述算子连接连接序列中存在多个直接连接的Join算子,则判定所述流任务满足预设重排条件。3.如权利要求1所述的数据查询方法,其特征在于,所述获取所述待重排任务对应的连接表信息的步骤,包括:获取所述待重排任务对应的算子连接序列;读取所述算子连接序列中各Join算子的算子标识;根据所述算子标识查找所述待重排任务对应的连接表信息。4.如权利要求1所述的数据查询方法,其特征在于,所述根据所述连接表信息规划表连接顺序的步骤,包括:从所述连接表信息中提取连接表名及表数据信息;基于所述连接表名生成多个表连接组合;基于所述表数据信息计算各表连接组合对应的表连接代价;根据所述表连接代价从所述多个表连接组合中选取目标连接组合;基于所述目标连接组合生成表连接顺序。5.如权利要求4所述的数据查询方法,其特征在于,所述根据所述表连接代价从所述多个表连接组合中选取目标连接组合的步骤,包括:获取各表连接组合对应的表连接代价中的代价最小值;将所述代价最小值对应的表连接组合作为目标连接组合。6.如权利要求1
‑
5任一项所述的数据查询方法,其特征在于,所述在重排完...
【专利技术属性】
技术研发人员:陈小龙,
申请(专利权)人:杭州海康威视系统技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。