CN115563167B - 数据查询方法、电子设备以及计算机可读存储介质 - Google Patents
数据查询方法、电子设备以及计算机可读存储介质 Download PDFInfo
- Publication number
- CN115563167B CN115563167B CN202211539150.0A CN202211539150A CN115563167B CN 115563167 B CN115563167 B CN 115563167B CN 202211539150 A CN202211539150 A CN 202211539150A CN 115563167 B CN115563167 B CN 115563167B
- Authority
- CN
- China
- Prior art keywords
- data
- query
- analysis result
- query statement
- data query
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开数据查询方法、电子设备以及计算机可读存储介质,该方法包括:获取数据查询语句;基于数据查询语句确定出特征因子,特征因子包括属性信息和中间数据分布;将特征因子输入至数据倾斜预测模型,得到数据查询语句对应的数据倾斜预测结果;基于数据倾斜预测结果,对数据查询语句对应的查询任务进行查询规则优化。通过上述方式,能够改善人为修改查询规则的局限性。
Description
技术领域
本申请涉及数据查询技术领域,特别涉及数据查询方法、电子设备以及计算机可读存储介质。
背景技术
数据倾斜问题一直是大数据分析处理过程中不可避免且又需亟待解决的棘手复杂问题,是Hive性能优化道路上常见的拦路虎,成为Hive性能优化的瓶颈点之一。
相关技术中是在出现数据倾斜时,通过人为操作完成对查询任务的优化,而且优化过程中需要过多的人为参与、反复调参调优、优化过程周期长,有时可能会因为不准确的优化方式会导致任务优化未达到预期效果甚至反而出现负作用等问题。
发明内容
本申请提供数据查询方法、电子设备以及计算机可读存储介质,能够改善人为修改查询规则的局限性。
为解决上述技术问题,本申请采用的一个技术方案是:提供一种数据查询方法,该方法包括:获取数据查询语句;基于数据查询语句确定出特征因子,特征因子包括属性信息和中间数据分布;将特征因子输入至数据倾斜预测模型,得到数据查询语句对应的数据倾斜预测结果;基于数据倾斜预测结果,对数据查询语句对应的查询任务进行查询规则优化。
其中,基于数据查询语句确定出特征因子,包括:基于数据查询语句进行执行计划分析,确定出查询语句对应的属性信息;其中,属性信息包括查询表、分区数据规模量、表分区数据分布、操作关键字和键值分布中至少一种;以及基于数据查询语句进行预运行任务,得到中间数据分布。
其中,基于数据倾斜预测结果,对数据查询语句对应的查询任务进行查询规则优化,包括:响应于数据倾斜预测结果为第一预测结果,分析数据查询语句对应的语法解析树;根据分析结果,配置与分析结果对应的参数,完成查询规则优化。
其中,根据分析结果,配置与分析结果对应的参数,包括:响应于分析结果为第一分析结果,将对应的第一参数和第二参数配置为true,第一分析结果为存在对倾斜的键值进行group by场景。
其中,根据分析结果,配置与分析结果对应的参数,包括:响应于分析结果为第二分析结果,将对应的第三参数配置为true,第二分析结果为存在关联键值的join操作。
其中,根据分析结果,配置与分析结果对应的参数,包括:响应于分析结果为第三分析结果,判断小文件的数量是否超过阈值;小文件为数据量小于阈值的文件;若是,则将对应的第四参数配置为true,以及重新设置映射端个数和/或设置归约端个数。
其中,基于数据倾斜预测结果,对数据查询语句对应的查询任务进行查询规则优化,包括:响应于数据倾斜预测结果为第二预测结果,对数据查询语句对应的查询任务进行常规优化。
其中,获取数据查询语句之前,还包括:获取训练样本;其中,训练样本包括历史数据查询语句对应的查询表、分区数据规模量、表分区数据分布、操作关键字和键值分布中至少一种;将训练样本输入至数据倾斜预测模型,对数据倾斜预测模型进行训练。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种电子设备,该电子设备包括处理器以及与处理器耦接的存储器;其中,存储器用于存储计算机程序,处理器用于执行计算机程序,以实现如上述技术方案提供的方法。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,计算机程序在被处理器执行时,实现如上述技术方案提供的方法。
区别于现有技术,本申请的数据查询方法,在执行数据查询语句对应的查询任务之前,利用数据倾斜预测模型对该查询任务进行数据倾斜预测,并基于数据倾斜预测结果自动对查询任务对应的查询规则进行优化,以此改善人为修改查询规则的局限性,以及基于数据倾斜预测结果制定合理查询规则调优方式,使得应对出现数据倾斜场景的优化方式更精确。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
图1是本申请提供的数据查询方法一实施例的流程示意图;
图2是本申请提供的数据查询方法另一实施例的流程示意图;
图3是本申请提供的步骤25一实施例的流程示意图;
图4是本申请提供的数据倾斜预测模型训练一实施例的流程示意图;
图5是本申请提供的数据查询方法一应用场景示意图;
图6是本申请提供的电子设备一实施例的结构示意图;
图7是本申请提供的计算机可读存储介质一实施例的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
数据倾斜问题的本质实际就是由于数据本身或者计算过程中数据被分配分布的不均匀,导致任务计算处理时大量的数据被集中分布到某个或某几个节点上进行计算,以至于对这部分数据的计算任务耗时特别长,明显高于所有任务的平均耗时,最终导致整个任务执行时间特别长甚至一直处于未完成状态,最直观的现象就是可以观察到任务的reduce(归约)阶段进度一直卡在99.99%或者Container(容器)出现OOM(Out Of Memory,内存溢出)现象。
本申请发明人长期研究发现,在复杂的大数据处理场景下,当前对数据倾斜问题处理的常用手段一般都是对数据本身进行提前预清洗(如对大量相同key(键)值或异常key值进行随机打散)、设置相关优化参数或者采用优化查询语句的方式,然而利用这些方式手段通常需要开发人员具备比较充足的相关查询语言开发能力以及调参调优经验,但由于大数据场景的复杂性,以上的几种方式并不能完全覆盖解决涉及数据倾斜问题的全部场景,而且优化过程中需要过多的人为参与、反复调参调优、优化过程周期长,有时可能会因为不准确的优化方式会导致任务优化未达到预期效果甚至反而出现负作用等问题。基于此,本申请提出以下任一技术方案,以解决上述至少一个技术问题。
参阅图1,图1是本申请提供的数据查询方法一实施例的流程示意图。该方法包括:
步骤11:获取数据查询语句。
在一些实施例中,数据查询语句可以基于数据查询工具生成。如在大数据查询中,利用Hive数据仓库工具生成该数据查询语句。
在一些实施例中,可以将数据查询语句进行单独制作,形成对应的文件,再以文件导入的方式在相应的工具中获取到该文件内的数据查询语句。
步骤12:基于数据查询语句确定出特征因子,特征因子包括属性信息和中间数据分布。
其中,属性信息包括查询表、分区数据规模量、表分区数据分布、操作关键字和键值分布中至少一种。
在一些实施例中,可以从数据查询语句中确定出对应的需要的查询表,以此可以根据查询表确定出该查询表对应的分区数据规模量。通过分区数据规模量以及查询表可以确定出表分区数据分布。如具体的数据所在的区域。
在一些实施例中,可以根据数据查询语句确定出对应的操作关键字,如操作关键字可以为group by、join、exists、in、like和from中至少一个操作关键字。
在一些实施例中,可以从数据查询语句中确定出对应数据的键值分布。
在一些实施例中,可以按照数据查询语句对对应的分区数据文件进行部分数据采样,然后基于采样的数据以预运行任务的方式,确定出中间数据分布。其中,中间数据分布可以表征该数据查询语句实际运行时的数据分布。
步骤13:将特征因子输入至数据倾斜预测模型,得到数据查询语句对应的数据倾斜预测结果。
在一些实施例中,数据倾斜预测模型可以利用作为训练样本的特征因子进行训练得到。
在一些实施例中,数据倾斜预测模型可以基于朴素贝叶斯机器学习分类算法建立。
在其他实施例中,数据倾斜预测模型还可以基于卷积神经网络、对抗生成网络或残差网络等其中一者或多种结合的方式建立。
步骤14:基于数据倾斜预测结果,对数据查询语句对应的查询任务进行查询规则优化。
在一些实施例中,数据倾斜预测结果可以为发生数据倾斜或不发生数据倾斜。在数据倾斜预测结果为发生数据倾斜时,对查询任务对应查询规则进行优化,如在大数据领域,可以分析出发生数据倾斜的不同场景,在存在对倾斜key值进行group by场景时,配置优化参数hive.map.aggr为true、hive.groupby.skewindata为true。
在存在关联key值的join操作时,配置优化参数hive.map.aggr为true、hive.groupby.skewindata(默认值为false)为true。
在其他实施例中,数据倾斜预测结果可以为发生数据倾斜的概率。然后根据概率是否修改查询规则。如概率大于阈值,则确定优化查询规则;概率小于或等于阈值,则确定不优化查询规则。
在对数据查询语句对应的查询任务进行查询规则优化后,以优化后的查询规则实现数据查询语句,进而完成查询任务。
在本实施例中,在执行数据查询语句对应的查询任务之前,利用数据倾斜预测模型对该查询任务进行数据倾斜预测,并基于数据倾斜预测结果自动对查询任务对应的查询规则进行优化,以此改善人为修改查询规则的局限性,以及基于数据倾斜预测结果制定合理查询规则调优方式,使得应对出现数据倾斜场景的优化方式更精确。
参阅图2,图2是本申请提供的数据查询方法另一实施例的流程示意图。该方法包括:
步骤21:获取数据查询语句。
步骤22:基于数据查询语句进行执行计划分析,确定出查询语句对应的属性信息。
其中,属性信息包括查询表、分区数据规模量、表分区数据分布、操作关键字和键值分布中至少一种。
其中,使用EXPLAIN关键字可以模拟优化器执行数据查询语句,从而知道数据查询语句是怎么执行的,从而分析数据查询语句或是对应的表结构的性能瓶颈。通过执行计划分析,可以确定出数据查询语句中数据表的执行顺序,以及哪些索引可以使用以及哪些索引被具体使用以及每张数据表被扫表查询的行数等。其中,上述的索引可以是键值。以此可知道对应的键值分布。
步骤23:基于数据查询语句进行预运行任务,得到中间数据分布。
其中,基于数据查询语句对所涉及的查询分区数据文件进行部分采样,采集少量数据作为待查询数据集,通过对这部分待查询数据集进行预运行任务,来获取中间数据分布。即预运行任务对应的可查询数据为待查询数据集。相当于通过查询少量数据的数据集提前感知数据查询语句在查询时的一些情况。如中间数据分布和/或查询时间等。
步骤24:将中间数据分布以及属性信息输入至数据倾斜预测模型,得到数据查询语句对应的数据倾斜预测结果。
将中间数据分布以及属性信息输入至数据倾斜预测模型,使数据倾斜预测模型基于中间数据分布以及属性信息进行推理,得到数据查询语句对应的数据倾斜预测结果。
因数据倾斜预测模型基于历史查询语句对应的中间数据分布以及属性信息训练,因此,数据倾斜预测模型实质上是学习到不同的中间数据分布以及属性信息对应的信息,则可以为每一中间数据分布以及属性信息对应的特征设置相关的权重。
步骤25:基于数据倾斜预测结果,对数据查询语句对应的查询任务进行查询规则优化。
在一些实施例中,参阅图3,步骤25可以是以下流程:
步骤31:响应于数据倾斜预测结果为第一预测结果,分析数据查询语句对应的语法解析树。
其中,第一预测结果表示数据查询语句存在数据倾斜现象,因此需要分析数据查询语句对应的语法解析树。
具体的,可以根据数据查询语句中的关键字将数据查询语句进行解析,并生成对应的语法解析树。然后将使用查询语句对应的语法规则验证和解析查询,得到对应的分析结果。
步骤32:根据分析结果,配置与分析结果对应的参数,完成查询规则优化。
在一些实施例中,响应于分析结果为第一分析结果,将对应的第一参数和第二参数配置为true,第一分析结果为存在对倾斜的键值进行group by场景。
在大数据查询任务场景下,第一参数为hive.map.aggr,第二参数为hive.groupby.skewindata。
在一些实施例中,响应于分析结果为第二分析结果,将对应的第三参数配置为true,第二分析结果为存在关联键值的join操作。
在大数据查询任务场景下,第三参数为hive.optimize.skewjoin。
在一些实施例中,响应于分析结果为第三分析结果,判断小文件的数量是否超过阈值;小文件为数据量小于阈值的文件;若是,则将对应的第四参数配置为true,以及重新设置映射端个数和/或设置归约端个数。
在大数据查询任务场景下,第四参数为hive.merger.mapredfiles,该参数为合并小文件参数,在第四参数配置为true时,则认为可以合并小文件,然后通过设置映射端和归约端的数量,以此改变小文件的数量。具体的,通过将映射端和归约端的数量的数值变小,以此使小文件合并。
小文件合并实质上减少的是小文件的数量,并没有减少小文件的数据。
在其他实施例中,响应于数据倾斜预测结果为第二预测结果,对数据查询语句对应的查询任务进行常规优化。
第二预测结果表示数据查询语句不存在数据倾斜现象,则对数据查询语句对应的查询任务进行常规优化。
在本实施例中,在执行数据查询语句对应的查询任务之前,利用数据倾斜预测模型对该查询任务进行数据倾斜预测,并基于数据倾斜预测结果自动对查询任务对应的查询规则进行优化,以此改善人为修改查询规则的局限性,以及基于数据倾斜预测结果制定合理查询规则调优方式,使得应对出现数据倾斜场景的优化方式更精确。
参阅图4,图4是本申请提供的数据倾斜预测模型训练一实施例的流程示意图。该方法包括:
步骤41:获取训练样本。
其中,训练样本包括历史数据查询语句对应的查询表、分区数据规模量、表分区数据分布、操作关键字和键值分布中至少一种。
申请人通过分析以往典型出现数据倾斜问题的场景及优化方式,发现主要是所涉及的表分区数据量规模及分布情况、key(键)值分布情况、shuffle(混洗)计算过程的中间数据分布、操作关键字信息几个因素与是否会出现数据倾斜以及如何进行优化数据倾斜问题影响特别大、关联性特别强,对是否能准确预测可以起到决定性作用。因此,从历史数据查询语句中获取以上几项数据,作为训练数据倾斜预测模型的训练样本。
其中,表分区数据量规模及分布情况、操作关键字(如:group by、join类)、key值分布情况可以通过对输入的HQL语句进行执行计划分析来获取,作为属性信息采集器的输出;而中间数据分布可通过数据信息采样器来获取,可以对所涉及的查询分区数据文件进行部分采样,采集少量数据作为待查询数据集,通过对这部分数据进行预提交运行任务,来获取中间数据分布。
步骤42:将训练样本输入至数据倾斜预测模型,对数据倾斜预测模型进行训练。
将以上通过属性信息采集器获取到的语句中所涉及到的查询表、分区相关的数据量规模、HQL语句中存在的分组或关联操作关键字信息以及与其所相关的操作key值分布情况和通过数据信息采样器获取到的中间数据分布均作为数据倾斜预测模型的重要特征维度,结合朴素贝叶斯机器学习分类算法建立数据倾斜预测模型。
利用上述重要特征维度对数据倾斜预测模型进行训练。通过对输入训练样本的特征权重调整进行反复训练,输入测试集比较不同数据倾斜预测模型的训练结果情况,按召回率、准确率和/或精确率指标衡量选取出最优的数据倾斜预测模型。
以此将训练好的数据倾斜预测模型用于上述任一实施例进行数据倾斜预测。
在一应用场景中,结合图5进行说明:
通过将待查询的HQL(Hive Query Language,Hive查询语言)语句输入到属性信息采集器中来提取任务执行时所涉及到的重要属性信息和输入到数据信息采样器提取的中间数据分布,将这些信息作为数据倾斜预测模型的特征因子,用于预测是否存在或导致数据倾斜问题,来实现对Hive数仓查询时出现的数据倾斜问题进行自动感知优化。
表分区数据量规模及分布情况、操作关键字(如:group by、join类)、key值分布情况可以通过对输入的HQL语句进行执行计划分析来获取,作为属性信息采集器的输出;而中间数据分布可通过数据信息采样器来获取,可以对所涉及的查询分区数据文件进行部分采样,采集少量数据作为待查询数据集,通过对这部分数据进行预提交运行任务,来获取中间数据分布。
将以上通过属性信息采集器获取到的语句中所涉及到的查询表、分区相关的数据量规模、HQL语句中存在的分组或关联操作关键字信息以及与其所相关的操作key值分布情况和通过数据信息采样器获取到的中间数据分布均作为预测模型的重要特征维度,结合朴素贝叶斯机器学习分类算法(朴素贝叶斯分类算法简单高效,是机器学习算法中非常适用于特征无关的二分类算法)建立数据倾斜预测模型,基于以上预测模型对提交的HQL任务进行分析预测,将预测结果分类为存在数据倾斜和不存在数据倾斜的两类情况,以便在任务实际提交运行之前提前预测感知是否会存在或导致数据倾斜的问题。
具体地,HQL任务在提交后,首先利用属性信息采集器通过进行执行计划分析的方式对该任务相关信息进行分析提取,输出涉及到的查询表或分区数据规模量、数据分布、HQL语法树中的操作关键字、key值分布等属性信息以及利用数据信息采样器基于少量采集数据预运行任务的方式获取中间数据分布信息,将这些信息作为数据倾斜预测模型的输入,然后利用已训练的数据倾斜预测模型进行智能检测诊断,预测任务查询过程中是否存在或导致数据倾斜的问题。
然后根据数据倾斜预测结果,对是否存在或导致数据倾斜问题进行针对性的优化手段进行处理,若预测结果为存在数据倾斜问题,则对查询任务进行以下优化规则匹配:
1)分析HQL语法解析树,检测是否存在对倾斜key值进行group by场景,若存在,则设置针对group by场景数据倾斜优化的相关配置项,配置优化参数hive.map.aggr为true、hive.groupby.skewindata(默认值为false)为true。
2)分析HQL语法解析树,首先检测是否存在关联key值的join操作,若存在,则设置针对因key值进行join关联操作导致的数据倾斜场景的优化配置项,配置优化参数hive.optimize.skewjoin(默认值为false)为true。
3)分析HQL语法解析树,对既不存在group by又不存在join操作的场景,则提取表分区数据量分布信息以及文件块block信息,检测是否存在小文件过多的情况,若存在,则配置文件小文件合并参数hive.merger.mapredfiles为true,以及针对文件块大小情况调整设置map(映射)个数和/或reduce(归约)个数。其中,设置map(映射)个数对应的参数为mapred.map.tasks,设置reduce(归约)个数对应的参数为mapred.reduce.tasks。
若预测结果为不存在或不会导致数据倾斜问题的HQL任务,则不进行优化规则匹配,采用常规优化方式提交任务。
通过上述方式,在执行数据查询语句对应的查询任务之前,利用数据倾斜预测模型对该查询任务进行数据倾斜预测,并基于数据倾斜预测结果自动对查询任务对应的查询规则进行优化,以此改善人为修改查询规则的局限性,以及基于数据倾斜预测结果制定合理查询规则调优方式,使得应对出现数据倾斜场景的优化方式更精确。
参阅图6,图6是本申请提供的电子设备一实施例的结构示意图。该电子设备60包括处理器61以及与处理器61耦接的存储器62;其中,存储器62用于存储计算机程序,处理器61用于执行计算机程序,以实现以下方法:
获取数据查询语句;基于数据查询语句确定出特征因子,特征因子包括属性信息和中间数据分布;将特征因子输入至数据倾斜预测模型,得到数据查询语句对应的数据倾斜预测结果;基于数据倾斜预测结果,对数据查询语句对应的查询任务进行查询规则优化。
可以理解,处理器61还用于执行计算机程序,以实现上述任意实施的方法。
参阅图7,图7是本申请提供的计算机可读存储介质一实施例的结构示意图。该计算机可读存储介质70存储有计算机程序71,计算机程序71在被处理器执行时,实现以下方法:
获取数据查询语句;基于数据查询语句确定出特征因子,特征因子包括属性信息和中间数据分布;将特征因子输入至数据倾斜预测模型,得到数据查询语句对应的数据倾斜预测结果;基于数据倾斜预测结果,对数据查询语句对应的查询任务进行查询规则优化。
可以理解,计算机程序71在被处理器执行时,还能够实现上述任意实施的方法。
综上所述,本申请提出的数据查询方法、电子设备以及计算机可读存储介质在执行数据查询语句对应的查询任务之前,利用数据倾斜预测模型对该查询任务进行数据倾斜预测,并基于数据倾斜预测结果自动对查询任务对应的查询规则进行优化,以此改善人为修改查询规则的局限性,以及基于数据倾斜预测结果制定合理查询规则调优方式,使得应对出现数据倾斜场景的优化方式更精确。进而本申请能够提高数据倾斜场景下性能优化的准确性、尽可能的减少需人为参与的繁琐优化过程。
在本申请所提供的几个实施方式中,应该理解到,所揭露的方法以及设备,可以通过其它的方式实现。例如,以上所描述的设备实施方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述其他实施方式中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是根据本申请说明书及附图内容所作的等效结构变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (8)
1.一种数据查询方法,其特征在于,所述方法包括:
获取数据查询语句;
基于所述数据查询语句确定出特征因子,所述特征因子包括属性信息和中间数据分布;
将所述特征因子输入至数据倾斜预测模型,得到所述数据查询语句对应的数据倾斜预测结果;
基于所述数据倾斜预测结果,对所述数据查询语句对应的查询任务进行查询规则优化;
其中,所述基于所述数据查询语句确定出特征因子,包括:
基于所述数据查询语句进行执行计划分析,确定出所述查询语句对应的属性信息;其中,所述属性信息包括查询表、分区数据规模量、表分区数据分布、操作关键字和键值分布中至少一种;
以及基于所述数据查询语句进行预运行任务,得到所述中间数据分布;
所述基于所述数据倾斜预测结果,对所述数据查询语句对应的查询任务进行查询规则优化,包括:
响应于所述数据倾斜预测结果为第一预测结果,分析所述数据查询语句对应的语法解析树;
根据分析结果,配置与所述分析结果对应的参数,完成所述查询规则优化。
2.根据权利要求1所述的方法,其特征在于,所述根据分析结果,配置与所述分析结果对应的参数,包括:
响应于所述分析结果为第一分析结果,将对应的第一参数和第二参数配置为true,所述第一分析结果为存在对倾斜的键值进行group by场景。
3.根据权利要求1所述的方法,其特征在于,所述根据分析结果,配置与所述分析结果对应的参数,包括:
响应于所述分析结果为第二分析结果,将对应的第三参数配置为true,所述第二分析结果为存在关联键值的join操作。
4.根据权利要求1所述的方法,其特征在于,所述根据分析结果,配置与所述分析结果对应的参数,包括:
响应于所述分析结果为第三分析结果,判断小文件的数量是否超过阈值;所述小文件为数据量小于阈值的文件;
若是,则将对应的第四参数配置为true,以及重新设置映射端个数和/或设置归约端个数。
5.根据权利要求1所述的方法,其特征在于,所述基于所述数据倾斜预测结果,对所述数据查询语句对应的查询任务进行查询规则优化,包括:
响应于所述数据倾斜预测结果为第二预测结果,对所述数据查询语句对应的查询任务进行常规优化。
6.根据权利要求1所述的方法,其特征在于,所述获取数据查询语句之前,还包括:
获取训练样本;其中,所述训练样本包括历史数据查询语句对应的查询表、分区数据规模量、表分区数据分布、操作关键字和键值分布中至少一种;
将所述训练样本输入至所述数据倾斜预测模型,对所述数据倾斜预测模型进行训练。
7.一种电子设备,其特征在于,所述电子设备包括处理器以及与所述处理器耦接的存储器;
其中,所述存储器用于存储计算机程序,所述处理器用于执行所述计算机程序,以实现如权利要求1-6任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序在被处理器执行时,实现如权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211539150.0A CN115563167B (zh) | 2022-12-02 | 2022-12-02 | 数据查询方法、电子设备以及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211539150.0A CN115563167B (zh) | 2022-12-02 | 2022-12-02 | 数据查询方法、电子设备以及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115563167A CN115563167A (zh) | 2023-01-03 |
CN115563167B true CN115563167B (zh) | 2023-03-31 |
Family
ID=84770296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211539150.0A Active CN115563167B (zh) | 2022-12-02 | 2022-12-02 | 数据查询方法、电子设备以及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115563167B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112597182A (zh) * | 2020-12-16 | 2021-04-02 | 平安普惠企业管理有限公司 | 数据查询语句的优化方法、装置、终端及存储介质 |
WO2021218144A1 (zh) * | 2020-04-30 | 2021-11-04 | 苏州亿歌网络科技有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN113886425A (zh) * | 2021-10-21 | 2022-01-04 | 北京锐安科技有限公司 | 数据处理方法、装置、设备以及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112035599B (zh) * | 2020-11-06 | 2021-08-27 | 南京星云数字技术有限公司 | 基于垂直搜索的查询方法、装置、计算机设备及存储介质 |
CN112860727B (zh) * | 2021-02-20 | 2024-01-12 | 平安科技(深圳)有限公司 | 基于大数据查询引擎的数据查询方法、装置、设备及介质 |
CN113419957B (zh) * | 2021-06-30 | 2024-08-02 | 中国工商银行股份有限公司 | 基于规则的大数据离线批处理性能容量扫描方法及装置 |
CN114443691B (zh) * | 2022-01-18 | 2024-01-23 | 苏州浪潮智能科技有限公司 | 数据库查询调优方法、系统及计算机设备 |
-
2022
- 2022-12-02 CN CN202211539150.0A patent/CN115563167B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021218144A1 (zh) * | 2020-04-30 | 2021-11-04 | 苏州亿歌网络科技有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN112597182A (zh) * | 2020-12-16 | 2021-04-02 | 平安普惠企业管理有限公司 | 数据查询语句的优化方法、装置、终端及存储介质 |
CN113886425A (zh) * | 2021-10-21 | 2022-01-04 | 北京锐安科技有限公司 | 数据处理方法、装置、设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115563167A (zh) | 2023-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105335391B (zh) | 基于搜索引擎的搜索请求的处理方法和装置 | |
CN110442516B (zh) | 信息处理方法、设备及计算机可读存储介质 | |
CN111294819B (zh) | 一种网络优化方法及装置 | |
US8037057B2 (en) | Multi-column statistics usage within index selection tools | |
CN108710662B (zh) | 语言转换方法和装置、存储介质、数据查询系统和方法 | |
JP2018501540A (ja) | ストップワード識別方法および装置 | |
WO2021159655A1 (zh) | 数据属性填充方法、装置、设备及计算机可读存储介质 | |
WO2019223104A1 (zh) | 确定事件影响因素的方法、装置、终端设备及可读存储介质 | |
CN114637760A (zh) | 一种智能问答方法及系统 | |
CN115470133A (zh) | 大规模持续集成的测试用例优先级排序方法、设备及介质 | |
CN112383828B (zh) | 一种具有类脑特性的体验质量预测方法、设备及系统 | |
CN114265860A (zh) | 执行语句的识别方法及装置 | |
CN111382345B (zh) | 话题筛选和发布的方法、装置和服务器 | |
CN108073641B (zh) | 查询数据表的方法和装置 | |
CN118132732A (zh) | 增强式检索用户问答方法、装置、计算机设备及存储介质 | |
CN114049016A (zh) | 指标相似性判断方法、系统、终端设备及计算机存储介质 | |
CN114064606A (zh) | 数据库迁移方法、装置、设备、存储介质和系统 | |
CN111324705A (zh) | 自适应性调整关连搜索词的系统及其方法 | |
CN115563167B (zh) | 数据查询方法、电子设备以及计算机可读存储介质 | |
Trushkowsky et al. | Getting it all from the crowd | |
KR102710905B1 (ko) | 문서를 요약하는 장치, 방법 및 컴퓨터 프로그램 | |
CN112765118A (zh) | 一种日志查询方法、装置、设备及存储介质 | |
US11941020B2 (en) | Displaying query results using machine learning model-determined query results visualizations | |
CN117828382B (zh) | 基于url的网络接口聚类方法及装置 | |
WO2023185264A1 (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 |