CN110362611B - 一种数据库查询方法、装置、电子设备及存储介质 - Google Patents
一种数据库查询方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110362611B CN110362611B CN201910631733.8A CN201910631733A CN110362611B CN 110362611 B CN110362611 B CN 110362611B CN 201910631733 A CN201910631733 A CN 201910631733A CN 110362611 B CN110362611 B CN 110362611B
- Authority
- CN
- China
- Prior art keywords
- determining
- resource consumption
- value
- module
- target
- 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
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000003860 storage Methods 0.000 title claims abstract description 16
- YHXISWVBGDMDLQ-UHFFFAOYSA-N moclobemide Chemical compound C1=CC(Cl)=CC=C1C(=O)NCCN1CCOCC1 YHXISWVBGDMDLQ-UHFFFAOYSA-N 0.000 claims description 16
- 238000006243 chemical reaction Methods 0.000 claims description 13
- 238000004458 analytical method Methods 0.000 claims description 10
- 230000000087 stabilizing effect Effects 0.000 claims 2
- 238000000605 extraction Methods 0.000 claims 1
- 238000005311 autocorrelation function Methods 0.000 description 35
- 238000010586 diagram Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 11
- 238000004590 computer program Methods 0.000 description 9
- 238000005457 optimization Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000009826 distribution Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
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/242—Query formulation
- G06F16/2433—Query languages
- G06F16/2438—Embedded query languages
-
- 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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/501—Performance criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Fuzzy Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开披露了一种数据库查询方法、装置、电子设备及存储介质,所述方法包括:基于当前SQL查询语句的key值,获取多个目标数据库的历史资源消耗序列;针对所述多个目标数据库中的每个目标数据库,根据所述历史资源消耗序列确定各个所述目标数据库的资源消耗预测模型;根据所述资源消耗预测模型确定所述当前SQL查询语句在各个所述目标数据库的预估资源消耗;基于各个所述目标数据库的所述预估资源消耗,确定对所述当前SQL查询语句的任务分配策略;按照所述任务分配策略进行至少一个查询子任务的调度。
Description
技术领域
本公开涉及数据库领域,具体涉及一种分布式数据库查询过程中防止数据倾斜的数据库查询方法、装置、电子设备及存储介质。
背景技术
随着云计算等相关行业的快速发展,互联网行业面临着爆炸式增长的海量数据和更多的数据处理需求。为了更好的处理这种状况,一些新技术快速随之产生,比如并行数据库、分布式处理等。MapReduce就是一个处理海量数据的计算框架。
Hadoop是一个基于MapReduce框架的分布式数据处理系统,有计算能力强、容错性和数据可用性强、可扩展性强等特性。然而,这种传统的MapReduce框架和Hadoop系统不擅长处理结构化数据,比如SQL(Structured Query Language,结构化查询语言)查询,而且对于特定问题的处理需要用户进一步编程解决,不存在针对某种问题的特定接口,还存在着启动时间长、处理延时较高,不能支持一些实时的查询的问题。针对以上问题,已经有了多种对MapReduce框架的优化和补充,使得MapReduce适用于处理结构化的数据,比如SQL查询等特定应用。SQL查询是数据库领域的重要应用,由此形成的Hive是SQL相关查询比较成功的系统。
Hive是一个建立在Hadoop上的数据仓库系统,具有数据管理、数据查询等功能。Hive定义了一个类似于SQL的查询语言——HiveQL,支持SQL可以实现的绝大多数查询,并且查询接口简单。Hive利用Hadoop的Hadoop文件系统(Hadoop File System,HDFS)存储数据,利用Hadoop的MapReduce模块进行数据处理的工作,并且有很强的数据容错性和数据恢复能力。总体来看,Hive基本支持绝大多数分布式数据库的功能,并且有更好的扩展性和规模性。然而,Hive也存在不少需要优化的地方。例如,Hive体系的数据平台在执行数据库查询时由于数据聚合(某一个节点需要查询的数据量很大)会带来节点负载压力,导致数据倾斜的问题,从而导致该分任务执行很慢。由于Hive体系中必须某一阶段的所有分任务结束后才能进入下一阶段,如果一个分任务由于数据倾斜没能及时完成,后边的所有任务不能启动,从而造成资源空闲时间,降低查询效率。
发明内容
针对现有技术中的数据倾斜问题,本公开实施例提出了一种数据库查询方法、装置、电子设备及计算机可读存储介质,以解决的数据库查询效率慢的问题。
本公开实施例的第一方面提供了一种数据库查询方法,包括:基于当前SQL查询语句的key值,获取多个目标数据库的历史资源消耗序列;针对所述多个目标数据库中的每个目标数据库,根据所述历史资源消耗序列确定各个所述目标数据库的资源消耗预测模型;根据所述资源消耗预测模型确定所述当前SQL查询语句在各个所述目标数据库的预估资源消耗;基于各个所述目标数据库的所述预估资源消耗,确定对所述当前SQL查询语句的任务分配策略;按照所述任务分配策略进行至少一个查询子任务的调度。
在一些实施例中,所述根据所述历史资源消耗序列确定各个所述目标数据库的资源消耗预测模型包括:确定各个所述目标数据库的所述历史资源消耗序列的自相关函数值和偏自相关函数值;基于所述自相关函数值和所述偏自相关函数值建立关于资源消耗的差分整合移动平均自回归模型。
在一些实施例中,在建立关于资源消耗的差分整合移动平均自回归模型之前,所述方法还包括:确定所述自相关函数值和所述偏自相关函数值是否需要差分转换;在所述自相关函数值和所述偏自相关函数值需要进行差分转换时,通过至少一次差分转换,使所述自相关函数值和所述偏自相关函数值平稳。
在一些实施例中,所述确定对当前SQL查询语句的任务分配策略包括:基于各个所述多个目标数据库的所述预估资源消耗,确定数据倾斜原因;基于所述数据倾斜原因,确定对所述当前SQL查询语句的任务分配策略。
在一些实施例中,所述资源消耗为执行时间、占用内存、I/O吞吐量、访问数据量中的至少一个。
本公开实施例的第二方面提供了一种数据库查询装置,包括:获取模块,用于基于当前SQL查询语句的key值,获取多个目标数据库的历史资源消耗序列;预测模型确定模块,用于针对多个目标数据库中的每个目标数据库,根据所述历史资源消耗序列确定各个所述目标数据库的资源消耗预测模型;资源消耗预估模块,用于根据所述资源消耗预测模型确定所述当前SQL查询语句在各个所述目标数据库的预估资源消耗;任务分配策略确定模块,用于基于各个所述目标数据库的所述预估资源消耗,确定对所述当前SQL查询语句的任务分配策略;任务调度模块,用于按照所述任务分配策略进行至少一个查询子任务的调度。
在一些实施例中,所述预测模型确定模块包括:序列函数值计算模块,用于确定各个所述目标数据库的所述历史资源消耗序列的自相关函数值和偏自相关函数值;模型建立模块,用于基于所述自相关函数值和所述偏自相关函数值建立关于资源消耗的差分整合移动平均自回归模型。
在一些实施例中,所述装置还包括:平稳判断模块,用于判断所述自相关函数值和所述偏自相关函数值是否具有需要差分转换;平稳转换模块,用于在所述自相关函数值和所述偏自相关函数值需要进行差分转换时,通过至少一次差分转换,使所述自相关函数值和所述偏自相关函数值平稳。
在一些实施例中,所述任务分配策略确定模块包括:倾斜原因确定模块,用于基于各个所述目标数据库的所述预估资源消耗,确定数据倾斜原因;倾斜分配模块,用于基于所述数据倾斜原因,确定对所述当前SQL查询语句的任务分配策略。
在一些实施例中,所述资源消耗为执行时间、占用内存、I/O吞吐量、访问数据量中的至少一个。
本公开实施例的第三方面提供了一种电子设备,包括:
存储器以及一个或多个处理器;
其中,所述存储器与所述一个或多个处理器通信连接,所述存储器中存储有可被所述一个或多个处理器执行的指令,所述指令被所述一个或多个处理器执行时,所述电子设备用于实现如前述各实施例所述的方法。
本公开实施例的第四方面提供了一种计算机可读存储介质,其上存储有计算机可执行指令,当所述计算机可执行指令被计算装置执行时,可用来实现如前述各实施例所述的方法。
本公开实施例的第五方面提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,可用来实现如前述各实施例所述的方法。
本公开实施例,通过对历史SQL查询数据进行分析、处理,为本次查询确定任务分配策略。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本公开应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构和操作。
图1是现有技术中的一种Hive体系结构示意图;
图2是现有技术中Hadoop系统的MapReduce框架示意图;
图3是根据本公开的一些实施例所示的一种SQL查询示意图;
图4是根据本公开的一些实施例所示的一种SQL查询方法示意图;
图5是根据本公开的一些实施例所示的一种SQL查询装置示意图;以及
图6是根据本公开的一些实施例所示的电子设备示意图。
具体实施方式
在下面的详细描述中,通过示例阐述了本公开的许多具体细节,以便提供对相关披露的透彻理解。然而,对于本领域的普通技术人员来讲,本公开显而易见的可以在没有这些细节的情况下实施。应当理解的是,本公开中使用“系统”、“装置”、“单元”和/或“模块”术语,是用于区分在顺序排列中不同级别的不同部件、元件、部分或组件的一种方法。然而,如果其他表达式可以实现相同的目的,这些术语可以被其他表达式替换。
应当理解的是,当设备、单元或模块被称为“在……上”、“连接到”或“耦合到”另一设备、单元或模块时,其可以直接在另一设备、单元或模块上,连接或耦合到或与其他设备、单元或模块通信,或者可以存在中间设备、单元或模块,除非上下文明确提示例外情形。例如,本公开所使用的术语“和/或”包括一个或多个相关所列条目的任何一个和所有组合。
本公开所用术语仅为了描述特定实施例,而非限制本公开范围。如本公开说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的特征、整体、步骤、操作、元素和/或组件,而该类表述并不构成一个排它性的罗列,其他特征、整体、步骤、操作、元素和/或组件也可以包含在内。
参看下面的说明以及附图,本公开的这些或其他特征和特点、操作方法、结构的相关元素的功能、部分的结合以及制造的经济性可以被更好地理解,其中说明和附图形成了说明书的一部分。然而,可以清楚地理解,附图仅用作说明和描述的目的,并不意在限定本公开的保护范围。可以理解的是,附图并非按比例绘制。
本公开中使用了多种结构图用来说明根据本公开的实施例的各种变形。应当理解的是,前面或下面的结构并不是用来限定本公开。本公开的保护范围以权利要求为准。
图1为现有技术中Hive体系结构示意图。如图1所示,在Hive部分中,Shell、JDBC客户端、ODBC客户端和Web接口都是向用户提供的结构,用户通过接口提供查询。Thrift服务器是提供跨语言开发的服务器模块,Thrift通过IDL(Interface Definition Language,接口定义语言)来定义RPC(Remote Procedure Call,远程过程调用)的接口和数据类型,然后通过thrift编译器生成不同语言的代码并由生成的代码负责RPC协议层和传输层的实现,用来支持JDBC/ODBC。元数据库模块是用来保存元数据的服务器模块,Hive是用MySQL实现的,通过元数据库模块可以高效地支持对数据的管理和查询。解析器部分是Hive的核心,它包含编译、优化、执行查询三个模块,功能是将用户发出的查询语句进行转化和优化,生成MapReduce程序并将其发送给Hadoop执行。在Hive中,SQL查询语句的执行交给Hadoop来完成。解析器生成的MapReduce任务将被提交给Hadoop,JobTracker负责建立任务、跟踪任务运行状态并将任务结果返还给Hive的解析器。从上面对Hive框架的分析可以看出,Hive处理了上面提到的两个问题。一方面可以在Hadoop的基础上提供了一些针对SQL的特定接口,使得用户可以方便地使用MapReduce框架进行SQL查询;另一方面也针对MapReduce和SQL进行了优化,通过使用MetaStore和查询优化的模块对查询任务进行优化,使得MapReduce模型可以对结构化的数据进行处理。
图2为现有技术中Hadoop系统的MapReduce框架示意图。Map节点从HDFS上读取数据块(split),每个Map节点调用map函数对每一个数据块(split)进行处理,处理的结果写入缓存或者磁盘。Map节点执行完之后,数据在本地进行排序和合并(有可能经过本地的combine),即Shuffle阶段。在经过Shuffle阶段后,每个节点把本地数据发送给对应的Reduce所在的节点。在Reduce本地进行排序和合并然后输入Reduce节点处理本地的数据,最后将处理结果写入HDFS。
图3为根据本公开的一些实施例所示的一种SQL查询示意图。本公开在Hive原有框架的基础上进行了优化,增加了SQL语句分析模块、SQL执行预测模块和任务分配模块。下面详细说明本公开实现步骤和新增模块的功能:用户将需要查询的内容通过客户端输入数据平台,查询接口接收到查询请求后,一方面查询接口将接收到的查询请求发送到SQL解析器,将用户发出的查询语句进行转化和优化,生成MapReduce程序并将其发送给Hadoop。另一方面,SQL语句分析模块根据接收到的用户查询内容生成SQL语句并提取相应的key值,比如查询客户年龄,key值为age,然后SQL执行预测模块根据需要查询的内容预测每个节点中执行该查询内容需要的资源,比如需要的时间或者占用的内存等等,最后任务分配建议模块依据SQL执行预测模块给出的资源占有情况生成优化建议发送给Hadoop的JobTracker模块,为其分配任务时提供建议,从而提高系统执行效率。其中SQL语句分析模块是对用户输入的查询请求进行语义分析并生成SQL语句并提取对应的key值,SQL执行预测模块则是根据SQL语句分析模块生成的key值对各个节点的执行情况预测,本公开中预测模型采用的是ARIMA(Autoregressive Integrated Moving Average model,差分整合移动平均自回归模型,又称整合移动/滑动平均自回归模型)算法,根据原始时间序列数据来预测本次的执行情况,这里的资源包含执行需要的时间或者占用的内存等,任务分配建议模块则是根据SQL执行预测模块给出的预测数据分析影响执行效率的原因并生成优化建议发送给Hadoop的JobTracker模块,为JobTracker分配任务提供建议。
图4是根据本公开的一些实施例所示的一种SQL查询方法示意图。在一些实施例中,图4中所述的方法与图3中所示的SQL语句分析模块、SQL执行预测模块和任务分配建议模块的功能相对应。
在402中,基于当前SQL查询语句的key值,获取多个目标数据库的历史资源消耗序列。其中,本公开的实施例首先提取当前SQL查询语句的key值;在一些实施例中,所述查询语句的key值可以是年龄、性别等任意的查询关键词。例如,当所述key值为年龄时,获取历史数据中key值也为年龄的查询数据,所述查询数据包括资源消耗数据。所述资源消耗包括执行时间、占用内存、I/O吞吐量、访问数据量中的至少一个。
在404中,针对多个目标数据库中的每个目标数据库,根据所述历史资源消耗序列确定各个所述目标数据库的资源消耗预测模型。其中,在本公开的实施例中,优选采用ARIMA预测模型进行预测。具体地,通过确定目标数据库的历史资源消耗序列的ACF(AutoCorrelation Function,自相关函数)值和PACF(Partial Auto Correlation Function,偏自相关函数)值,并基于所述ACF值和PACF值,确定ARIMA预测模型。在一些实施例中,所述ACF值指当前时刻t及之前p个时刻的历史资源消耗序列(Xt,Xt-1,…,Xt-p)的自相关函数值(at,at-1,…,at-p),所述PACF指历史资源消耗序列的偏自相关函数值(pt,pt-1,…,pt-p)。
在一些实施例中,基于所述ACF值和PACF值,确定ARIMA预测模型,所述历史资源消耗序列是一个自回归单整移动平均时间序列,记为ARIMA(p,d,q):
其中,p与q分别为自回归模型与移动平均模型的阶数,可以通过ACF与PACF值得出,d为差分变换次数。γi与θi分别是两个模型的相关系数,是需要计算的。
在一些实施例中,γi与θi可以通过估计得到。例如,可以通过最小二乘估计、矩估计或者利用自相关函数的直接估计。又或者,可以利用其它任何现有的估计方法,这里不做限定。
在一些实施例中,在步骤404中,基于所述ACF值和PACF值,确定ARIMA预测模型之前,所述方法还包括:确定所述ACF值与PACF值是否需要差分转换。这是因为,确定ARIMA模型的参数时所使用的历史资源消耗序列数据必须是平稳的,表现在ACF值和PACF值即为ACF值(at,at-1,…,at-p)和PACF值(pt,pt-1,…,pt-p)是否具有常数均值和常数方差,如果有则该历史资源消耗序列是平稳的。当所述历史资源消耗序列数据平稳时,所述ACF值与PACF值不需要差分转换。当所述历史资源消耗序列数据不平稳时,需要将非平稳序列进行d次差分,以得到平稳序列。
在一些实施例中,每个目标数据库的ARIMA(p,d,q)模型的识别与估计是在假设随机扰动项是一白噪声的基础上进行的。因此,如果估计的模型确认正确的话,残差应代表一个白噪声序列。如果通过所估计的模型计算的样本残差不代表一白噪声,则说明模型的识别与估计有误,需重新识别与估计。在实际检验时,主要检验残差序列是否存在自相关。可用QLB(Ljung-Box Q,由Box和Ljung推导出的Q统计量)的统计量进行检验:在给定显著性水平下,可计算不同滞后期的QLB值,通过与分布表中的相应临界值比较,来检验是否拒绝残差序列为白噪声的假设。若大于相应临界值,则应拒绝所估计的模型,需重新识别与估计。
在406中,根据所述资源消耗预测模型确定所述当前SQL查询语句在各个所述目标数据库的预估资源消耗。例如,将该目标数据库的历史资源消耗数据(Xt,Xt-1,…,Xt-p)输入至确定了参数的ARIMA预测模型,确定该模型预估的资源消耗。
在408中,基于各个所述目标数据库的预估资源消耗,确定对所述当前SQL查询语句的任务分配策略。具体地,本步骤包括:基于所述多个目标数据库的多个预估资源消耗,确定数据倾斜原因;基于所述数据倾斜原因,确定任务分配策略。在一些实施例中,可以基于所述多个目标数据库的多个预估资源消耗确定所述多个目标数据库产生数据倾斜的原因。可以基于所述多个预估资源消耗,确定任务分配策略。例如,数据倾斜的原因可以是某个数据库的内存不足、I/O吞吐量过大或访问数据量过大等,因此,可以在分配任务时,在该数据库的节点采用多线程作业、增加内存等。
在410中,按照所述任务分配策略进行至少一个查询子任务的调度。典型地,将确定的任务分配策略发送给JobTracker模块。如前文所示,JobTracker模块的作用是分配分布式数据库的读取任务。因此,所述确定的任务分配策略能够对JobTracker模块分配任务起到辅助作用,以防止数据倾斜。
作为本公开的一种具体实施例,所述分布式数据库为4个。本地SQL查询语句需要访问其中的三个数据库。获取三个数据库对应的历史查询序列数据,并基于所述历史数据建立三个数据库对应的三个ARIMA预测模型。再将所述三个数据库的历史查询序列数据输入到对应的模型,确定预估资源消耗。例如,预估三个数据库的查询时间分别为1分钟,1.5分钟和5分钟。则进一步地,可以在任务分配时确定第三个数据库耗时为5分钟的原因,进一步地,基于该原因,为第三个数据库提供相应的建议。
图5是根据本公开的一些实施例所示的一种SQL查询装置示意图。图5中所示的SQL查询装置用于执行如图4中所述的方法。
如图5所示,所述SQL查询装置包括获取模块510、预测模型确定模块520、资源消耗预估模块530、任务分配策略确定模块540和任务调度模块550。其中,
获取模块510用于基于当前SQL查询语句的key值,获取多个目标数据库的历史资源消耗序列;
预测模型确定模块520用于针对多个目标数据库中的每个目标数据库,根据所述历史资源消耗序列确定各个所述目标数据库的资源消耗预测模型;
资源消耗预估模块530用于根据所述资源消耗预测模型确定所述当前SQL查询语句在各个所述目标数据库的预估资源消耗;
任务分配策略确定模块540用于基于各个所述目标数据库的所述预估资源消耗,确定对所述当前SQL查询语句的任务分配策略;
任务调度模块550用于按照所述任务分配策略进行至少一个查询子任务的调度。
图6是适于用来实现根据本公开实施方式的电子设备的结构示意图。
如图6所示,电子设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行上述图4所示的实施方式中的各种处理。在RAM603中,还存储有电子设备600操作所需的各种程序和数据。CPU601、ROM602以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本公开的实施方式,上文参考图5描述的方法可以被实现为计算机软件程序。例如,本公开的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行图5的方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。
附图中的流程图和框图,图示了按照本公开各种实施方式的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开的方法。
综上所述,本公开提出了一种数据库查询方法、装置、电子设备及其计算机可读存储介质。本公开实施例通过预测造成数据倾斜的原因,在SQL查询时为JobTracker模块提供任务分配建议。
应当理解的是,本公开的上述具体实施方式仅仅用于示例性说明或解释本公开的原理,而不构成对本公开的限制。因此,在不偏离本公开的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。此外,本公开所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
Claims (10)
1.一种数据库查询方法,其特征在于,包括:
对用户输入的查询请求进行语义分析并生成SQL查询语句,提取SQL查询语句对应的key值;
基于SQL查询语句的key值,获取多个目标数据库的历史资源消耗序列;
针对多个目标数据库中的每个目标数据库,确定目标数据库的历史资源消耗序列的ACF值和PACF值,并基于所述ACF值和PACF值,确定ARIMA预测模型;
针对所述多个目标数据库中的每个目标数据库,将该目标数据库的历史资源消耗序列输入至对应的ARIMA预测模型,确定预估资源消耗;
基于所述多个目标数据库的多个预估资源消耗,确定任务分配策略;
将确定的任务分配策略发送给JobTracker模块。
2.如权利要求1所述的方法,其特征在于,在基于所述ACF值和PACF值,确定ARIMA预测模型之前,包括:
确定ACF值与PACF值是否需要差分转换;
当ACF值与PACF值需要进行差分转换时,通过多次的差分,使所述ACF值与PACF值平稳。
3.如权利要求1所述的方法,其特征在于,所述基于所述多个目标数据库的多个预估资源消耗,确定任务分配策略,包括:
基于所述多个目标数据库的多个预估资源消耗,确定数据倾斜原因;
基于所述数据倾斜原因,确定任务分配策略。
4.如权利要求1-3中任一所述的方法,其特征在于,所述资源消耗为执行时间、占用内存、I/O吞吐量、访问数据量中的一个。
5.一种数据库查询装置,其特征在于,包括:
提取模块,用于对用户输入的查询请求进行语义分析并生成SQL查询语句,提取SQL查询语句对应的key值;
获取模块,用于基于SQL查询语句的key值,获取多个目标数据库的历史资源消耗序列;
预测模型确定模块,用于针对多个目标数据库中的每个目标数据库,确定目标数据库的历史资源消耗序列的ACF值和PACF值,并基于所述ACF值和PACF值,确定ARIMA预测模型;
资源消耗预估模块,用于针对所述多个目标数据库中的每个目标数据库,将该目标数据库的历史资源消耗序列输入至对应的ARIMA预测模型,确定预估资源消耗;
任务分配策略确定模块,用于基于所述多个目标数据库的多个预估资源消耗,确定任务分配策略;
发送模块,用于将确定的任务分配策略发送给JobTracker模块。
6.如权利要求5所述的装置,其特征在于,所述装置还包括:
平稳模块,用于判断ACF值与PACF值是否具有需要差分转换,当ACF值与PACF值需要进行差分转换时,通过多次的差分,使所述ACF值与PACF值平稳。
7.如权利要求5所述的装置,其特征在于,所述任务分配策略确定模块具体用于:
基于所述多个目标数据库的多个预估资源消耗,确定数据倾斜原因;
基于所述数据倾斜原因,确定任务分配策略。
8.如权利要求5-7任一所述的装置,其特征在于,所述资源消耗为执行时间、占用内存、I/O吞吐量、访问数据量中的一个。
9.一种电子设备,其特征在于,包括:
存储器以及一个或多个处理器;
其中,所述存储器与所述一个或多个处理器通信连接,所述存储器中存储有可被所述一个或多个处理器执行的指令,所述指令被所述一个或多个处理器执行时,所述电子设备用于实现如权利要求1-4任一项所述的数据库查询方法。
10.一种计算机可读存储介质,其上存储有计算机可执行指令,当所述计算机可执行指令被计算装置执行时,可用来实现如权利要求1-4任一项所述的数据库查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910631733.8A CN110362611B (zh) | 2019-07-12 | 2019-07-12 | 一种数据库查询方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910631733.8A CN110362611B (zh) | 2019-07-12 | 2019-07-12 | 一种数据库查询方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110362611A CN110362611A (zh) | 2019-10-22 |
CN110362611B true CN110362611B (zh) | 2021-07-09 |
Family
ID=68219340
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910631733.8A Active CN110362611B (zh) | 2019-07-12 | 2019-07-12 | 一种数据库查询方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110362611B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111158901B (zh) * | 2019-12-09 | 2023-09-08 | 爱芯元智半导体(宁波)有限公司 | 计算图的优化方法、装置、计算机设备和存储介质 |
CN111741080B (zh) * | 2020-06-02 | 2023-09-29 | 拉卡拉支付股份有限公司 | 网络文件分发方法及装置 |
CN113778727A (zh) * | 2020-06-19 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 数据处理方法及装置、电子设备和计算机可读存储介质 |
CN115803715A (zh) * | 2020-08-28 | 2023-03-14 | 阿里巴巴集团控股有限公司 | 分区数据库管理系统中的智能过程路由 |
CN112181840B (zh) * | 2020-09-30 | 2023-09-26 | 深圳前海微众银行股份有限公司 | 一种数据库状态的确定方法及装置、设备、存储介质 |
CN112307066B (zh) * | 2020-11-03 | 2023-04-07 | 平安普惠企业管理有限公司 | 分布式数据聚合方法、系统、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239529A (zh) * | 2014-09-19 | 2014-12-24 | 浪潮(北京)电子信息产业有限公司 | 防止Hive数据倾斜的方法和装置 |
CN109324905A (zh) * | 2018-09-30 | 2019-02-12 | 拉卡拉支付股份有限公司 | 数据库操作方法、装置、电子设备及存储介质 |
CN109933601A (zh) * | 2019-01-24 | 2019-06-25 | 深圳壹账通智能科技有限公司 | 数据库管理方法、系统、计算机装置及可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105446979B (zh) * | 2014-06-27 | 2019-02-01 | 华为技术有限公司 | 数据挖掘方法和节点 |
US10713248B2 (en) * | 2017-07-23 | 2020-07-14 | AtScale, Inc. | Query engine selection |
CN108985367A (zh) * | 2018-07-06 | 2018-12-11 | 中国科学院计算技术研究所 | 计算引擎选择方法和基于该方法的多计算引擎平台 |
CN109308343A (zh) * | 2018-07-31 | 2019-02-05 | 北京航空航天大学 | 一种基于随机波动模型的行程时间预测及可靠性度量方法 |
-
2019
- 2019-07-12 CN CN201910631733.8A patent/CN110362611B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239529A (zh) * | 2014-09-19 | 2014-12-24 | 浪潮(北京)电子信息产业有限公司 | 防止Hive数据倾斜的方法和装置 |
CN109324905A (zh) * | 2018-09-30 | 2019-02-12 | 拉卡拉支付股份有限公司 | 数据库操作方法、装置、电子设备及存储介质 |
CN109933601A (zh) * | 2019-01-24 | 2019-06-25 | 深圳壹账通智能科技有限公司 | 数据库管理方法、系统、计算机装置及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110362611A (zh) | 2019-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110362611B (zh) | 一种数据库查询方法、装置、电子设备及存储介质 | |
US10402225B2 (en) | Tuning resources based on queuing network model | |
Manassiev et al. | Exploiting distributed version concurrency in a transactional memory cluster | |
US8108521B2 (en) | Methods and systems for dynamic parallel processing | |
US20080244611A1 (en) | Product, method and system for improved computer data processing capacity planning using dependency relationships from a configuration management database | |
US8051422B2 (en) | Resource assignment method for query partioning based on processing cost of each partition | |
US20070094270A1 (en) | Method and apparatus for the processing of heterogeneous units of work | |
CN110134738B (zh) | 分布式存储系统资源预估方法、装置 | |
CN109324905B (zh) | 数据库操作方法、装置、电子设备及存储介质 | |
CN106354729A (zh) | 一种图数据处理方法、装置和系统 | |
CN113157421B (zh) | 一种基于用户作业流程的分布式集群资源调度方法 | |
US20070106773A1 (en) | Method and apparatus for processing of heterogeneous units of work | |
CN112948066A (zh) | 一种基于异构资源的Spark任务调度方法 | |
CN115033616A (zh) | 一种基于多轮采样的数据筛查规则验证方法及其装置 | |
CN103902582A (zh) | 一种减少数据仓库数据冗余的方法和装置 | |
Yankovitch et al. | Hypersonic: A hybrid parallelization approach for scalable complex event processing | |
US9086927B2 (en) | Method and system for processing data for database modification | |
JP2009037369A (ja) | データベースサーバへのリソース割当て方法 | |
CN112199401B (zh) | 数据请求处理方法、装置、服务器、系统及存储介质 | |
CN116010447A (zh) | 一种优化异构数据库用户查询的负载均衡方法及装置 | |
Ghazali et al. | CLQLMRS: improving cache locality in MapReduce job scheduling using Q-learning | |
CN114741161A (zh) | 一种基于混合集群的hpc作业集群感知方法 | |
Beltran et al. | Dealing with heterogeneity in load balancing algorithms | |
Son et al. | Parallel Job Processing Technique for Real-time Big-Data Processing Framework | |
Teodoro et al. | Adaptive parallel approximate similarity search for responsive multimedia retrieval |
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 |