CN113157814B - 关系数据库下查询驱动的智能工作负载分析方法 - Google Patents
关系数据库下查询驱动的智能工作负载分析方法 Download PDFInfo
- Publication number
- CN113157814B CN113157814B CN202110127114.2A CN202110127114A CN113157814B CN 113157814 B CN113157814 B CN 113157814B CN 202110127114 A CN202110127114 A CN 202110127114A CN 113157814 B CN113157814 B CN 113157814B
- Authority
- CN
- China
- Prior art keywords
- workload
- database
- query
- data
- sql
- 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
- 238000004458 analytical method Methods 0.000 title claims abstract description 28
- 239000013598 vector Substances 0.000 claims abstract description 20
- 238000010801 machine learning Methods 0.000 claims abstract description 16
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 8
- 238000012544 monitoring process Methods 0.000 claims description 19
- 238000000034 method Methods 0.000 claims description 18
- 238000012549 training Methods 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 10
- 238000013528 artificial neural network Methods 0.000 claims description 9
- 238000007781 pre-processing Methods 0.000 claims description 9
- 238000000605 extraction Methods 0.000 claims description 8
- 230000008859 change Effects 0.000 claims description 6
- 238000013527 convolutional neural network Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 6
- 238000012163 sequencing technique Methods 0.000 claims description 5
- 125000004122 cyclic group Chemical group 0.000 claims description 3
- 230000009191 jumping Effects 0.000 claims description 3
- 230000000873 masking effect Effects 0.000 claims description 3
- 238000010606 normalization Methods 0.000 claims description 3
- 230000002085 persistent effect Effects 0.000 claims description 3
- 230000002776 aggregation Effects 0.000 claims description 2
- 238000004220 aggregation Methods 0.000 claims description 2
- 238000013461 design Methods 0.000 abstract description 2
- 238000010219 correlation analysis Methods 0.000 abstract 1
- 238000002474 experimental method Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000007792 addition Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- ZTLXICJMNFREPA-UHFFFAOYSA-N 3,3,6,6,9,9-hexamethyl-1,2,4,5,7,8-hexaoxonane Chemical compound CC1(C)OOC(C)(C)OOC(C)(C)OO1 ZTLXICJMNFREPA-UHFFFAOYSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001680 brushing effect Effects 0.000 description 1
- 238000013145 classification model Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- 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/2462—Approximate or statistical queries
-
- 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
- G06F9/505—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 considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- 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/508—Monitor
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种关系数据库下查询驱动的智能工作负载分析方法,涉及数据库技术领域。本发明通过采集数据库中和workload相关的信息,包括物理特征、逻辑特征以及查询到达率三个方面的特征。首先物理特征是采集DBMS执行查询是使用的资源量和其他的运行指标,逻辑特征则是基于查询日志,对查询日志进行相关分析,得到的该workload的逻辑结构上的信息,通过将SQL解析成语法树,同时将语法树经过一些设计的规则转化成词向量,将这些向量作为表征workload的逻辑特征;最后基于查询日志,将查询日志进行模板化,计算时间间隔内模板到达率,通过机器学习模型学习出一种workload的精确表示。最后基于workload的精确表示进行相关的匹配算法,从而识别未知workload的类别,进行更好的参数配置。
Description
技术领域
本发明涉及数据库技术领域,尤其涉及一种关系数据库下查询驱动的智能工作负载分析方法。
背景技术
数据库工作负载主要分为两大类:OLTP(on-line transactionprocessing)和OLAP(On-Line Analytical Processing),两类负载解决的问题各不相同。OLTP主要应用在传统的关系型数据库上面,对日常的事务进行处理,主要包括增删改查4种查询。一般情况下OLTP类型的工作负载用户并发量较大,但查询相对比较简单,会进行频繁的读写操作,因此需要较高的吞吐量和较低的响应时间,对内存的需求会比较大。而OLAP主要应用在数据仓库上上面,侧重于复杂的分析和决策类操作。一般OLAP类型的工作负载用户并发量较小,查询的数目较少,但每条查询都很复杂,需要对大量的数据作分析并做出决策,对CPU和磁盘I/O要求较高。
当前云数据库多为传统的关系型数据库,运行OLTP相关业务。在OLTP中也可以继续划分不同的工作负载,用户的每种业务都会对应一个工作负载,业务不同导致工作负载不也相同,具体表现在他们对数据库请求事务及查询类型不相同。表1中列举了Oltpbench测试工具中4种不同的工作负载,对应4种不同的业务场景。例如TPCC是工业界常用的测试OLTP数据库性能的工具,该工作负载对应电子商务型的业务,共有五种事务分别是:新订单、支付、查询订单、运输货物和查询库存,它们比例各不相同,每种事务中会有多条查询语句,对数据库中的9个表执行各种查询。
表1工作负载示例
由于不同工作负载对应的事务和增删改查比例各不相同,因此对硬件资源的需求存在差别。在读比例比较大的工作负载下,如TATP,通过改变查询缓存相关的参数增加查询结果缓存,可以提升性能;在写数据比较多的工作负载下,如TPCC,通过增加buffer pool的大小、改变刷盘方式等,都会提高数据库性能。另外,如果查询中多表连接、排序比较多的话,还需要增加连接和排序的缓存大小。
目前很多相关的数据库业务是基于工作负载的,比如在数据库参数调优任务中,不同的业务对应的数据库参数配置是存在一定的差异的,甚至是很大的区别,如果当前的workload发生变化,但数据库参数配置没有改变时,会导致数据库的性能大大的降低,难以满足用户的需求,所以精准的区分不同的workload是十分重要的。同时,数据库可调的参数有近两百个,每个参数的取值又是非常多的,所以要想获取覆盖不同workload的数据集是不现实的,但是如果能够从多个特征去获取相似workload的数据是可行的,这样就可以解决数据较少的问题,进而提升训练的精度,得到更好的学习模型,使推荐的参数更有意义。
目前常用的workload的匹配方法是基于数据库状态变量,但是数据库状态变量受多方面因素的影响,导致匹配不准确。同时说明数据库状态变量难以表征workload,所以需要提供一种能够更好表示workload的方法,不仅可以达到区分workload的目的,还可以获取和已知workload更相似的数据,弥补数据不足的情况。通过对不同workload的识别,可以使大量基于workload的数据库业务性能上得以提升,进一步提高资源的可利用性和用户的体验。
发明内容
针对现有技术的不足,本发明提供一种关系数据库下查询驱动的智能工作负载分析方法。
一种关系数据库下查询驱动的智能工作负载分析方法,包括以下步骤:
步骤1、调用数据库数据采集模块,对工作负载信息进行采集;
所述工作负载包括数据库的物理资源信息以及查询日志,其中数据库物理资源信息包括CPU的利用率、CPU的型号、CPU的内存、查询的平均等待时间、磁盘空间占用率;对当前物理资源信息进行采集并开启数据库的general_log参数,生成设定时间内的查询日志;
步骤2、数据采集模块输出采集完成的workload数据,包括数据采集之前的数据库状态变量值、数据采集之后的数据库状态变量值以及监控信息数据,传入数据预处理模块进行数据预处理;
步骤2.1:对上述数据采集模块产生的数据库物理资源信息进行统计学计算;
步骤2.2:将步骤1中生成的查询日志进行解析,从查询日志中提取SQL以及对应的时间戳,将SQL进行模板化,即将SQL中的数值信息进行掩蔽,用占位符替代,得到模板化的SQL和时间戳进行匹配,一同持久化到CSV文件中;
步骤3、对数据预处理模块中输出的CSV格式数据进行特征提取,将不同的特征进行不同的编码;
步骤3.1:采用最大最小值的归一化编码方案,将同一参数的不同值归一化为0-1的浮点数;
步骤3.2:对数据的逻辑特征进行提取;通过解析器获取模板化SQL的查询树,给每一个节点采用one-hot的编码方案,将每个操作编码为一个one-hot;所述操作具体包括:物理查询操作,扫描操作,排序操作,聚合操作;其中表列以及索引元数据信息采用one-hot编码方案;谓词也采用one-hot编码;
步骤3.3:将查询树上的节点信息通过深度优先策略编码成一个张量,所述张量代表该模板的逻辑特征,将workload(工作量)的所有模板的逻辑特征通过一层全连接神经网络进行压缩,得到表征该workload的逻辑特征;
步骤3.4:对模板到达率进行特征提取;根据时间戳得到在不同的时间段内该模板的到达次数,即将一个模板SQL的时间戳从小到大排序,并记录每个时间戳下出现该模板的次数,用来表征模板到达率的特征;
步骤3.5:通分析各个模板的到达情况进行聚类,采用KNN、K-Means方法对各个模板的在同一段时间内的到达次数曲线进行比较,通过将查询到达次数组织成向量进行余弦相似度计算,设置阈值为0.95,当相似度大于等于0.95时将到达次数随时间变化的曲线为同一类模板,选取每一类的聚类中心表示该类,最终将这些聚类中心的到达率编码成向量,该编码为一个0-1的浮点数,通过时间戳的先后顺序进行排列;
步骤4、采用机器学习方法学习workload的表示,在特征提取完成之后将步骤3中提取得到的向量输入机器学习模型进行训练;
所述机器学习模型包括单机器学习模型以及混合模型;所述单机器学习模型包括多层感知神经网络(MLP)、循环神经网络(RNN)、卷积神经网络(CNN)模型,用来学习三种不同维度的workload特征,所述混合模型将上述模型进行组合,得到组合模型;
步骤5、模型训练完成之后对待测的workload预测其表示;对未知的workload进行步骤2以及步骤3,并将使用完生成的general_log进行删除,得到未知workload的表示之后,从已有的workload数据集中匹配到属于当前workload的数据,数据由数据库参数、当前参数对应的吞吐量、时延性能指标组成;
步骤6、在得到未知workload的表示之后,通过匹配算法进行workload匹配,用当前workload的数据进行之后的数据库参数调优任务;
步骤7、对workload的变化进行监控,通过对工作负载的分析得到的数据集提升数据库的吞吐量性能指标;
步骤7.1:对workload的变化进行监控,当数据库的性能降低到设定阈值,则发出新的workload匹配请求,监听模块收到请求后向DBMS发出信息重新采集请求,DBMS收到此请求之后,采集步骤2中阐述的数据库物理资源信息,开启general_log收集查询日志,跳转步骤2和步骤3进行数据处理;
步骤7.2:将经过特征提取得到的特征向量传到监听模块,监听模块将此特征向量传入workload匹配模块,进行workload的表示预测以及匹配算法,重新构造数据库参数调优的数据集,部署到数据库得到设定时间内的数据库吞吐量,与数据库默认参数进行比较,进行工作负载分析。
采用上述技术方案所产生的有益效果在于:
本发明提出了一种关系数据库下查询驱动的智能工作负载分析方法,将本发明应用到数据库基于工作负载的任务中,可以解决训练数据不足的问题,在庞大的解空间中尽可能的获取更多的样本,这也借鉴了迁移学习的思想,通过物理、逻辑以及查询到达率等特征的融合,更好地表示不同的workload,进而提升该任务的预测精度,同时,可以对数据库的资源进行合理分配,大幅度减少成本和提高用户体验。
附图说明
图1为本发明总体流程图;
图2为本发明实施例数据库系统的整体架构图;
图3为本发明实施例表示模型设计图;
图4为本发明实施例数据库模块流程图;
图5为本发明实施例监听模块流程图;
图6为本发明实施例优化过程流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
一种关系数据库下查询驱动的智能工作负载分析方法,如图1所示,包括以下步骤:
步骤1、调用数据库数据采集模块。本发明是面向关系数据库的工作负载,即包含数据库具体执行的查询日志,但影响数据库性能的其他指标比如反映当前数据库状态的物理资源信息和工作负载息息相关,也属于本发明工作负载分析方法的范畴。所述数据库物理资源信息包括CPU的利用率、CPU的型号、CPU的内存、查询的平均等待时间、磁盘空间占用率。故本发明的工作负载包括当前数据库的物理资源信息以及数据库具体执行产生的查询日志,需要对物理资源信息和查询日志进行采集。数据采集模块包括对当前数据库物理资源信息进行采集,并开启数据库的general_log参数,根据任务需求生成设定时间内的查询日志。其中物理资源信息反映该工作负载的物理特征,再通过对查询日志进行分析,进一步得到反映工作负载的逻辑特征和模板到达率特征,综合这些特征可以得到更好的workload表示,为以工作负载驱动的数据库参数调优任务提供高质量的训练数据,从而进一步提升数据库吞吐量,降低时延,数据采集模块主要在数据库端进行工作,其流程图如图4所示。
步骤2、数据采集模块输出采集完成的workload数据,包括数据采集之前的数据库状态变量值、数据采集之后的数据库状态变量值以及监控信息数据。其中监控信息数据包括CPU型号、CPU的内存、每个时间段对应的CPU使用率、磁盘空间占用率、读写元组数、Commit成功率以及增删改查的事务数,以及每个时间段生成的查询日志,传入数据预处理模块进行数据预处理;这里的监控信息会包括之前进行数据采集的物理资源信息以及查询日志,然后进行相同的工作负载分析方法,进而挖掘到更多更相似的数据组成高质量训练集,提升数据库参数调优任务中的模型准确率。工作负载的分析包括对数据库物理资源信息的统计、查询日志中SQL的解析以及通过查询日志分析得到的SQL模板随时间变化的到达次数。下面对工作负载分析方法进行详细阐述。
步骤2.1:对上述数据采集模块产生的数据库物理资源信息进行统计学计算;这些物理资源信息对工作负载匹配会产生较大的影响,统计分析这些指标是进行工作负载分析的重要特征。比如当磁盘使用率到达90%时,会降低DBMS的性能,并且对一些workload来说,数据量的大小是影响数据库性能的非常重要的指标。所以考虑这些物理资源信息能更好地反映workload的实际情况,进一步提升参数调优任务中数据库参数的质量。比如均值等统计指标。
步骤2.2:将步骤1中生成的查询日志进行解析,从查询日志中提取SQL以及对应的时间戳,将SQL进行模板化,即将SQL中的数值信息进行掩蔽,用占位符替代,得到模板化的SQL和时间戳进行匹配,一同持久化到CSV文件中;为后面的特征提取模块做数据准备。
步骤3、对数据预处理模块中输出的CSV格式数据进行特征提取,将不同的特征进行不同的编码;
步骤3.1:采用最大最小值的归一化编码方案,将同一参数的不同值归一化为0-1的浮点数;
步骤3.2:对数据的逻辑特征进行提取;逻辑特征的提取相对较为复杂,通过解析器获取模板化SQL的查询树,给每一个节点采用one-hot的编码方案,将每个操作编码为一个one-hot;所述操作具体包括:物理查询操作比如连接操作(如散列连接、合并连接、嵌套循环联接),扫描操作(例如,顺序扫描,位图堆扫描,索引扫描,位图索引扫描,索引只扫描),排序操作(如散列排序、归并排序),聚合操作(例如,普通聚合、散列隔离)。这些操作极大地影响了成本;其中表列以及索引元数据信息采用one-hot编码方案;谓词比如>、<、=等也采用one-hot编码;
步骤3.3:将查询树上的节点信息通过深度优先策略编码成一个张量,所述张量代表该模板的逻辑特征,将workload(工作量)的所有模板的逻辑特征通过一层全连接神经网络进行压缩,得到表征该workload的逻辑特征;
步骤3.4:对模板到达率进行特征提取;根据时间戳得到在不同的时间段内该模板的到达次数,即将一个模板SQL的时间戳从小到大排序,并记录每个时间戳下出现该模板的次数,用来表征模板到达率的特征;
步骤3.5:通分析各个模板的到达情况进行聚类,采用KNN、K-Means方法对各个模板的在同一段时间内的到达次数曲线进行比较,通过将查询到达次数组织成向量进行余弦相似度计算,设置阈值为0.95,当相似度大于等于0.95时将到达次数随时间变化的曲线为同一类模板,这样可以大大减少计算和维护的成本,选取每一类的聚类中心表示该类,最终将这些聚类中心的到达率编码成向量,该编码为一个0-1的浮点数,通过时间戳的先后顺序进行排列;
步骤4、采用机器学习方法学习workload的表示,在特征提取完成之后将步骤3中提取得到的向量输入机器学习模型进行训练;
所述机器学习模型包括单机器学习模型以及混合模型;所述单机器学习模型包括多层感知神经网络(MLP)、循环神经网络(RNN)、卷积神经网络(CNN)模型,用来学习三种不同维度的workload特征,比如SQL的逻辑特征、数据库状态物理特征以及查询到达率宏观特征,同时在学习的过程中会学到不同层次的语义特征,并且采用有效的方法将这些语义特征进行特征融合,最终得到更加能代表workload的表示。所述混合模型将上述模型进行组合,得到组合模型;每种模型有自己的优势和弱势,通过模型之间的组合往往可以得到更好的结果。表示模型的示意图如图3所示。
步骤5、模型训练完成之后对待测的workload预测其表示;对未知的workload进行步骤2以及步骤3,并将使用完生成的general_log进行删除,因为生成的general_log是非常大的,例如MySQL的TPCC 100G数据库运行五分钟可以产生1.5G左右的general_log,这样的大文件是很影响数据库性能的。得到未知workload的表示之后,从已有的workload数据集中匹配到属于当前workload的数据,数据由数据库参数、当前参数对应的吞吐量、时延性能指标组成;
步骤6、在得到未知workload的表示之后,通过匹配算法进行workload匹配,比如计算两个workload的欧式距离,同时设置一个距离阈值,如果两者之间的空间距离小于这个阈值,则可以认为未知workload输入该已知workload,或者也可以用余弦相似度来衡量两者之间的关系。,用当前workload的数据进行之后的数据库参数调优任务,优化过程流程图如图6所示,比如可以进行数据库参数调优任务,或者也可以进行数据库查询优化任务,因为这两个任务和工作负载是很相关的,通过工作负载匹配可以得到对应的数据,对之后的任务有很大的帮助。
步骤7、对workload的变化进行监控,当数据库的性能降低到设定阈值,则发出新的workload匹配请求,监听模块如图5所示,收到请求后向DBMS发出信息重新采集请求,DBMS收到此请求之后,采集步骤2中阐述的数据库物理资源信息,开启general_log收集查询日志,跳转步骤2和步骤3进行数据处理,将经过特征提取得到的特征向量传到监听模块,监听模块将此特征向量传入workload匹配模块,进行相关的workload的表示预测以及匹配算法,重新构造数据库参数调优的数据集,构造之后的数据集更能反映当前workload的特征,基于高质量的训练数据可以提升数据库参数调优模型的准确率,提升参数调优任务中推荐出的参数质量,得到高质量的数据库参数之后,实际部署到数据库得到根据任务需求设定时间内的数据库吞吐量,与数据库默认参数进行比较,发现通过进行工作负载分析得到的数据集可以提升数据库的吞吐量性能指标。提高数据库性能。整体架构如图2所示。
工作负载分析的本质是二分类问题,即新来一个优化请求时,属于该工作负载的样本是正样本,其他样本是负样本。二分类预测问题评估常用混淆矩阵,如表2所示:
表2混淆矩阵
借助混淆矩阵,可以得到以下几个二分类评估指标:
(1)精确率(Precision)
精确率是指分类正确的正样本占所有预测为正的样本的比例,在本实验中表示匹配出来样本中真正与查询请求属于同一个工作负载的比例,计算公式如(3.8)所示:
(2)召回率(Recall)
召回率是指分类正确的正样本占所有正样本的比例,在本实验中表示所有与查询请求属于同一个工作负载的样本被真正匹配出来了的比例,计算公式如(3.9)所示:
(3)F1-score
一般情况下,精确率和召回率会彼此制约,一个指标增大时,另外一个指标将减小。F1-score综合考虑精确率和召回率,取两个指标的调和平均数,计算公式如(3.10)所示:
由于F1-score可以同时将精确率和召回率结合在一起,在样本不平衡时仍然能够评估分类模型,适用于本文样本分布不均衡下的分类问题,因此本实验采用F1-score作为工作负载匹配的评估标准。
为了体现本发明产生的技术效果,本实施例中以F1-score和吞吐量为标准,F1-score体现通过工作负载分析方法得到的数据集质量,吞吐量体现通过该负载分析方法得到的数据库吞吐量性能指标变化。
表3性能对比
该实验比较在F1-score更为准确,吞吐量上会有所波动,因为数据库参数调优在工作负载分析之后的调优模块是基于随机森林模型以及遗传算法预测的参数与性能之间的关系,会有一定的不确定性,但是从总体上分析,本发明工作负载分析方法得到了较好的技术效果的,提升了不同workload的训练数据的质量,进而提升了数据库吞吐量性能指标。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开的实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开的实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (3)
1.一种关系数据库下查询驱动的智能工作负载分析方法,其特征在于:包括以下步骤:
步骤1、调用数据库数据采集模块,对工作负载信息进行采集;
所述工作负载包括数据库的物理资源信息以及查询日志,其中数据库物理资源信息包括CPU的利用率、CPU的型号、CPU的内存、查询的平均等待时间、磁盘空间占用率;对当前物理资源信息进行采集并开启数据库的general_log参数,生成设定时间内的查询日志;
步骤2、数据采集模块输出采集完成的workload数据,包括数据采集之前的数据库状态变量值、数据采集之后的数据库状态变量值以及监控信息数据,传入数据预处理模块进行数据预处理;
步骤2.1:对上述数据采集模块产生的数据库物理资源信息进行统计学计算;
步骤2.2:将步骤1中生成的查询日志进行解析,从查询日志中提取SQL以及对应的时间戳,将SQL进行模板化,即将SQL中的数值信息进行掩蔽,用占位符替代,得到模板化的SQL和时间戳进行匹配,一同持久化到CSV文件中;
步骤3、对数据预处理模块中输出的CSV格式数据进行特征提取,将不同的特征进行不同的编码;
步骤4、采用机器学习方法学习workload的表示,在特征提取完成之后将步骤3中提取得到的向量输入机器学习模型进行训练;
所述机器学习模型包括单机器学习模型以及混合模型;其中单机器学习模型包括多层感知神经网络(MLP)、循环神经网络(RNN)、卷积神经网络(CNN)模型,用来学习三种不同维度的workload特征,混合模型将上述模型进行组合,得到组合模型;
步骤5、模型训练完成之后对待测的workload预测其表示;对未知的workload进行步骤2以及步骤3,并将使用完生成的general_log进行删除,得到未知workload的表示之后,从已有的workload数据集中匹配到属于当前workload的数据,数据由数据库参数、当前参数对应的吞吐量、时延性能指标组成;
步骤6、在得到未知workload的表示之后,通过匹配算法进行workload匹配,用当前workload的数据进行之后的数据库参数调优任务;
步骤7、对workload的变化进行监控,通过对工作负载的分析得到的数据集提升数据库的吞吐量性能指标,实现对工作负载的分析。
2.根据权利要求1所述的一种关系数据库下查询驱动的智能工作负载分析方法,其特征在于,所述步骤3具体包括:
步骤3.1:采用最大最小值的归一化编码方案,将同一参数的不同值归一化为0-1的浮点数;
步骤3.2:对数据的逻辑特征进行提取;通过解析器获取模板化SQL的查询树,给每一个节点采用one-hot的编码方案,将每个操作编码为一个one-hot;所述操作具体包括:物理查询操作,扫描操作,排序操作,聚合操作;其中表列以及索引元数据信息采用one-hot编码方案;谓词也采用one-hot编码;
步骤3.3:将查询树上的节点信息通过深度优先策略编码成一个张量,所述张量代表该模板的逻辑特征,将workload(工作量)的所有模板的逻辑特征通过一层全连接神经网络进行压缩,得到表征该workload的逻辑特征;
步骤3.4:对模板到达率进行特征提取;根据时间戳得到在不同的时间段内该模板的到达次数,即将一个模板SQL的时间戳从小到大排序,并记录每个时间戳下出现该模板的次数,用来表征模板到达率的特征;
步骤3.5:通分析各个模板的到达情况进行聚类,采用KNN、K-Means方法对各个模板的在同一段时间内的到达次数曲线进行比较,通过将查询到达次数组织成向量进行余弦相似度计算,设置阈值为0.95,当相似度大于等于0.95时将到达次数随时间变化的曲线为同一类模板,选取每一类的聚类中心表示该类,最终将这些聚类中心的到达率编码成向量,该编码为一个0-1的浮点数,通过时间戳的先后顺序进行排列。
3.根据权利要求1所述的一种关系数据库下查询驱动的智能工作负载分析方法,其特征在于,所述步骤7具体包括:
步骤7.1:对workload的变化进行监控,当数据库的性能降低到设定阈值,则发出新的workload匹配请求,监听模块收到请求后向DBMS发出信息重新采集请求,DBMS收到此请求之后,采集步骤2中阐述的数据库物理资源信息,开启general_log收集查询日志,跳转步骤2和步骤3进行数据处理;
步骤7.2:将经过特征提取得到的特征向量传到监听模块,监听模块将此特征向量传入workload匹配模块,进行workload的表示预测以及匹配算法,重新构造数据库参数调优的数据集,部署到数据库得到设定时间内的数据库吞吐量,与数据库默认参数进行比较,进行工作负载分析。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110127114.2A CN113157814B (zh) | 2021-01-29 | 2021-01-29 | 关系数据库下查询驱动的智能工作负载分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110127114.2A CN113157814B (zh) | 2021-01-29 | 2021-01-29 | 关系数据库下查询驱动的智能工作负载分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113157814A CN113157814A (zh) | 2021-07-23 |
CN113157814B true CN113157814B (zh) | 2023-07-18 |
Family
ID=76879088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110127114.2A Active CN113157814B (zh) | 2021-01-29 | 2021-01-29 | 关系数据库下查询驱动的智能工作负载分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113157814B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230169077A1 (en) * | 2021-12-01 | 2023-06-01 | International Business Machines Corporation | Query resource optimizer |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104794186A (zh) * | 2015-04-13 | 2015-07-22 | 太原理工大学 | 数据库负载响应时间预测模型训练样本的采集方法 |
CN105512264A (zh) * | 2015-12-04 | 2016-04-20 | 贵州大学 | 分布式数据库中并发工作负载的性能预测方法 |
CN105550323A (zh) * | 2015-12-15 | 2016-05-04 | 北京国电通网络技术有限公司 | 一种分布式数据库负载均衡预测方法和预测分析器 |
CN109344201A (zh) * | 2018-10-17 | 2019-02-15 | 国网江苏省电力有限公司信息通信分公司 | 一种基于机器学习的数据库性能负载评估系统和方法 |
CN110188086A (zh) * | 2019-05-05 | 2019-08-30 | 北京百度网讯科技有限公司 | 基于负载自动预测的数据库自动调优方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7908928B2 (en) * | 2006-10-31 | 2011-03-22 | Caterpillar Inc. | Monitoring system |
US8099399B2 (en) * | 2009-07-27 | 2012-01-17 | Hewlett-Packard Development Company, L.P. | Determining whether change in workload of database system has occurred, and/or whether executing current workload will likely result in problem developing with database system |
US9477707B2 (en) * | 2013-01-29 | 2016-10-25 | Nec Corporation | System and methods for predicting query execution time for concurrent and dynamic database workloads |
-
2021
- 2021-01-29 CN CN202110127114.2A patent/CN113157814B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104794186A (zh) * | 2015-04-13 | 2015-07-22 | 太原理工大学 | 数据库负载响应时间预测模型训练样本的采集方法 |
CN105512264A (zh) * | 2015-12-04 | 2016-04-20 | 贵州大学 | 分布式数据库中并发工作负载的性能预测方法 |
CN105550323A (zh) * | 2015-12-15 | 2016-05-04 | 北京国电通网络技术有限公司 | 一种分布式数据库负载均衡预测方法和预测分析器 |
CN109344201A (zh) * | 2018-10-17 | 2019-02-15 | 国网江苏省电力有限公司信息通信分公司 | 一种基于机器学习的数据库性能负载评估系统和方法 |
CN110188086A (zh) * | 2019-05-05 | 2019-08-30 | 北京百度网讯科技有限公司 | 基于负载自动预测的数据库自动调优方法及装置 |
Non-Patent Citations (3)
Title |
---|
Distribution Based Workload Modelling of Continuous Queries in Clouds;ALIREZ A KHO SHKBA RFOROUS HHA 等;IEEE Transactions on Emerging Topics in Computing;第5卷(第1期);120-133 * |
基于机器学习的Oracle数据库故障预测技术探索;陶镇威;;现代工业经济和信息化;第10卷(第02期);70-71 * |
数据库系统交易型负载自适应管理;赵建光 等;计算机工程与应用;第49卷(第06期);131-134 * |
Also Published As
Publication number | Publication date |
---|---|
CN113157814A (zh) | 2021-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106845717B (zh) | 一种基于多模型融合策略的能源效率评价方法 | |
CN110909066B (zh) | 一种基于SparkSQL和RestAPI的流数据处理方法 | |
CN107301205A (zh) | 一种大数据分布式实时查询方法及系统 | |
CN102693299A (zh) | 一种并行视频拷贝检测系统和方法 | |
CN115617830A (zh) | 一种基于机器学习的数据查询优化处理方法及装置 | |
CN112434024A (zh) | 面向关系型数据库的数据字典生成方法、装置、设备及介质 | |
CN115641162A (zh) | 一种基于建筑工程造价的预测数据分析系统和方法 | |
CN111858323B (zh) | 一种基于代码表示学习的即时软件缺陷预测方法 | |
CN117131449A (zh) | 面向数据治理的具有传播学习能力的异常识别方法及系统 | |
CN113157814B (zh) | 关系数据库下查询驱动的智能工作负载分析方法 | |
CN117725437B (zh) | 一种基于机器学习的数据精准匹配分析方法 | |
Doshi et al. | Kepler: Robust learning for parametric query optimization | |
CN113920366A (zh) | 一种基于机器学习的综合加权主数据识别方法 | |
CN117827881A (zh) | 一种基于历史信息的Spark SQL Shuffle任务数优化系统 | |
CN116738214B (zh) | 一种基于高阶张量的数据降维预处理方法 | |
CN109344171A (zh) | 一种基于数据流处理的非线性系统特征变量显著性挖掘法 | |
CN117851490A (zh) | 基于大数据的数据分析处理系统 | |
CN110287114A (zh) | 一种数据库脚本性能测试的方法及装置 | |
CN114218287B (zh) | 一种面向时序数据库的查询时间预测方法 | |
CN116127194A (zh) | 一种企业推荐方法 | |
CN115510331A (zh) | 一种基于闲置量聚合的共享资源匹配方法 | |
CN112967759B (zh) | 基于内存堆栈技术的dna物证鉴定str分型比对方法 | |
CN115687352A (zh) | 一种存储的方法及装置 | |
CN113806410A (zh) | 一种用于科技服务的服务推荐实验系统 | |
Lou | Massive Ship Fault Data Retrieval Algorithm Supporting Complex Query in Cloud Computing |
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 |