CN115705322A - 一种数据库管理系统、数据处理方法及设备 - Google Patents
一种数据库管理系统、数据处理方法及设备 Download PDFInfo
- Publication number
- CN115705322A CN115705322A CN202110930569.8A CN202110930569A CN115705322A CN 115705322 A CN115705322 A CN 115705322A CN 202110930569 A CN202110930569 A CN 202110930569A CN 115705322 A CN115705322 A CN 115705322A
- Authority
- CN
- China
- Prior art keywords
- model
- target
- database
- performance
- data
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- 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/21—Design, administration or maintenance of databases
-
- 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/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2415—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
-
- 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/044—Recurrent networks, e.g. Hopfield networks
- G06N3/0442—Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
-
- 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
- G06N3/0455—Auto-encoder networks; Encoder-decoder 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/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic 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
- G06N3/092—Reinforcement learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computing Systems (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Quality & Reliability (AREA)
- Probability & Statistics with Applications (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据库管理系统、数据处理方法及设备,系统包括:包含n个模型的优化器、训练数据收集器、模型管理器、模型评估器。优化器,用于根据SQL语句,通过n个模型得到目标物理计划;训练数据收集器,用于根据数据库进程的运行数据构建m个训练集;模型管理器,用于采用目标训练集(属于m个训练集)对第一目标模型(属于n个模型,需满足预设要求,如性能下降)进行微调(finetune)得到第二目标模型;模型评估器,用于评估第二目标模型的性能,并在性能满足预设要求(如性能提升)时将第一目标模型更新为第二目标模型。本申请通过与机器学习结合,以实现自动执行数据库调优、更新及其他传统上由DBA执行的数据库管理任务的功能,无需人工干预。
Description
技术领域
本申请涉及数据库管理领域,尤其涉及一种数据库管理系统、数据处理方法及设备。
背景技术
数据库(database)是“按照数据结构来组织、存储和管理数据的仓库”,是一个长期存储在计算机内的有组织、可共享、统一管理的大量数据的集合。数据库对现代企业高效运营至关重要。
在现实应用中,数据库的管理方式主要依赖于数据库管理员(databaseadministrator,简称DBA),DBA常常需要耗费大量时间和精力来手动管理和维护数据库,非常容易出错,给数据库正常运行时间、性能和安全性带来灾难性影响。例如,未及时、正确地打补丁和安装安全更新可能导致数据库漏洞,削弱甚至造成数据库保护措施完全失效,进而使企业面临严重的数据泄露风险,遭受严重的财务影响和商誉损失。
然而,传统的这种数据库管理方式是基于专家经验的传统优化技术,例如代价估计、连接顺序选择和参数调优等,已经不能满足多场景业务、海量应用和极致性能的要求。
发明内容
本申请实施例提供了一种数据库管理系统、数据处理方法及设备,通过与机器学习技术相结合,以实现自动执行数据库调优、保护、更新以及其他传统上由DBA执行的常规数据库管理任务的功能,无需人工干预。
基于此,本申请实施例提供以下技术方案:
第一方面,本申请实施例首先提供一种数据库管理系统,该系统具体可以包括:自学习的优化器(需注意的是,本申请提供的优化器中包括的部分内核组件可以是原生的内核组件,但该优化器中包括的n个模型是本申请新增的,n≥1)、训练数据收集器、模型管理器以及模型评估器,其中,该优化器,用于根据输入数据库的SQL语句,通过所述n个模型得到最终待执行的物理计划(可称为目标物理计划),其中,该目标物理计划是指执行开销满足某预设要求(可称为第一预设要求)的物理计划。训练数据收集器,用于根据数据库中进程的运行数据(如,数据库运行指标、查询日志、系统日志等)得到训练数据,并基于得到的这些训练数据构建m个训练集,m≥1。模型管理器,用于在第一目标模型满足某预设要求(可称为第二预设要求)的情况下,采用与该第一目标模型对应的目标训练集对该第一目标模型进行微调(finetune),从而得到第二目标模型(该第二目标模型实质就是更新了模型参数的第一目标模型)。其中,该第一目标模型为所述n个模型中的一个,该目标训练集为所述m个训练集中的一个。之后,可再将finetune后的第二目标模型的模型参数传递给模型评估器进行模型性能的评估。这里需要说明的是,m与n的取值可以相同,也可以不相同,若m=n,则说明n个模型中的每个模型都对应有一个自身使用的训练集,若m≠n,则说明n个模型中可能存在多个模型共用一个训练集的情形(即m<n的情况),也可能存在一个模型可有多个训练集用于进行训练的情形(即m>n的情况),具体本申请对此不作限定。模型评估器,用于评估得到的第二目标模型的性能,并在该第二目标模型的性能满足某预设要求(可称为第三预设要求)的情况下,将优化器中的第一目标模型更新为该第二目标模型。作为一种示例,更新的过程具体可以是:模型评估器将该第二目标模型的模型参数向优化器发送,优化器将接收到的更新的模型参数赋于该第一目标模型,从而得到该第二目标模型。需要注意的是,在本申请的一些实施方式中,该模型评估器可以是基于图嵌入的性能预测模型。
在本申请上述实施方式中,数据库管理系统包括具有n个模型的优化器、训练数据收集器、模型管理器以及模型评估器,其中,具有n个模型的优化器替代了传统启发式优化器,通过与机器学习技术相结合,可实现将逻辑查询转换为执行效率更高的物理执行计划;训练数据收集器,可基于数据库中进程的运行数据生成数据库所涉及的模型的训练数据,可实现持续优化数据库,提供可信的自治运维服务;模型管理器,可调用训练数据收集器中对应的目标训练集对该第一目标模型进行微调,以实现根据数据库的实时运行状态动态更新和替换数据库中使用的对应模型;模型评估器,用于提供二次校验能力,保证提供最佳有效模型。本申请实施例构建的数据库管理系统通过与机器学习技术相结合,可实现自动执行数据库调优、保护、更新以及其他传统上由DBA执行的常规数据库管理任务的功能,无需人工干预。
在第一方面的一种可能的实现方式中,该数据库管理系统还可以进一步包括建议器,该建议器可以包括p个模型,其中,p≥1;该建议器,用于发现数据库中进程的运行数据(如,CPU利用率、用户响应时间等)中存在的异常情况(即发现异常数据),并基于得到的异常数据诊断出异常原因,之后,再基于得到的异常原因优化与该异常原因对应的优化模块(该优化模块也位于建议器内,优化模块的作用是用于对数据库进行参数调优),以减小数据库中进程的运行数据发生异常的概率。
在本申请上述实施方式中,构建的数据库管理系统可以基于机器学习方法,在数据库管理系统中新增建议器,用于实现自监控、自诊断、自优化的功能,以便自动和智能地优化数据库。从而解决了现有技术中数据库监控、配置、诊断、优化方法(如,参数调优、慢SQL诊断、索引/视图顾问)依赖DBA,成本高,无法适应大规模实例(如云数据库)的问题。
在第一方面的一种可能的实现方式中,建议器具体可以包括三个模型,可以分别称为编解码器、第一模型、第二模型,分别用于执行数据库的自监控、自诊断以及自优化这三个步骤。具体地,该建议器通过编解码器,对数据库中进程的运行数据进行编码后再解码,从而得到编码数据,并将该编码数据与输入该编解码器的运行数据进行比对,得到异常数据。这里需要说明的是,利用编解码器得到异常数据的原理是:编解码器能还原正常的原始数据,而不能还原异常的原始数据,这样将输入的原始数据编码后再解码,得到编码数据,编码数据再与原始数据对比,就能得知是否存在异常数据。在得到异常数据后,若该运行数据属于系统指标数据(如,页面故障),则该建议器可以进一步通过第一模型,根据该异常数据诊断得到异常原因,其中,该第一模型为基于深度学习算法构建的模型;若该运行数据属于查询指标数据(如,平均延迟),则该建议器还可以进一步通过第二模型,根据该异常数据诊断得到异常原因,其中,该第二模型为基于深度学习算法构建的模型。这里需要注意的是,在本申请的另一些实施方式中,建议器还可以包括更多或更少的模型,用于实现数据库的自监控、自诊断的过程,在本申请实施例中,建议器包括是三个模型仅为示意。
在本申请上述实施方式中,具体阐述了建议器如何通过其中所包括的模型实现数据库的自监控、自诊断的功能,实现了数据库管理系统自动、智能地管理数据库的运行数据的目的。
在第一方面的一种可能的实现方式中,该第一模型中可以包括LSRM模型以及分类器,具体地,建议器通过调用LSRM模型将发现的异常数据编码成一个压缩向量(即降维/升维后的向量),然后利用学习型的分类器(如,二分类器、多分类器等)推理相应的根因(如,数据库备份操作);该第二模型可以包括Tree-LSTM模型以及softmax函数,具体地,建议器通过调用Tree-LSTM模型对慢查询(即查询的执行时间长)进行编码,定位导致异常的物理算子(即执行算子)操作,再通过使用softmax函数识别导致异常的根因。
在本申请上述实施方式中,具体阐述了第一模型、第二模型的一种典型的实现方式,具备可实现性。
在第一方面的一种可能的实现方式中,若本申请实施例构建的数据库管理系统包括该建议器,则上述所述的第一目标模型不仅可以是优化器中n个模型中的任意一个,也可以是建议器中p个模型中的任意一个。
在本申请上述实施方式中,明确了第一目标模型可以是优化器以及建议器中的任意一个模型,扩大了第一目标模型的选择范围,使得后续模型评估器不仅可以评估优化器中模型的性能,还可以进一步评估建议器中模型的性能,具备方案的可实现性。
在第一方面的一种可能的实现方式中,优化器具体可以包括三个模型,可分别称为第三模型、第四模型、第五模型,分别用于执行逻辑查询重写、代价估计以及物理计划生成这三个步骤。具体地,该优化器通过第三模型,对输入数据库的SQL语句(也可称为SQL查询)进行逻辑查询重写,从而得到重写后的逻辑计划,其中,该第三模型为基于树搜索算法构建的模型,例如,可以是蒙特卡洛树搜索算法;之后,该优化器再通过第四模型,根据该逻辑计划生成q个物理计划,其中,该第四模型为基于深度学习算法构建的模型,例如,可以是基于Tree-LSTM的模型,q≥1;最后,该优化器再通过第五模型,计算与该q个物理计划对应的q个执行开销(一个物理计划对应一个执行开销),并根据该q个执行开销确定最终待执行的目标物理计划,其中,该第五模型为基于强化学习算法构建的模型,例如,可以是基于深度强化学习(deep Q-learning,DQN)的模型。这里需要注意的是,在本申请的另一些实施方式中,优化器还可以包括更多或更少的模型,用于实现逻辑查询重写、代价估计以及物理计划生成的过程,在本申请实施例中,优化器包括是三个模型仅为示意。
在本申请上述实施方式中,具体阐述了优化器如何通过其中所包括的模型实现数据库的逻辑查询重写、代价估计以及物理计划生成的功能,从而替代了传统启发式优化器,通过与机器学习技术相结合,实现了将逻辑查询转换为执行效率更高的物理执行计划,并可以有效解决当前数据库体系结构问题导致的代价评估不准确、复杂SQL语句生成物理计划差的问题。
在第一方面的一种可能的实现方式中,若第二目标模型的性能未满足第三预设要求,则该模型评估器还将用于触发该数据库采用数据库内原生内核组件生成最终待执行的目标物理计划,例如,索引选择模块启用传统的爬山算法新建索引,以执行SQL语句的逻辑。也就是说,如果finetune后的第二目标模型的性能依然没有达到要求,就采用数据库传统内核组件算法来生成目标物理计划。
在本申请上述实施方式中,由于数据库的原生内核组件并未删除,而是与新增的优化器并存于数据库软件中,因此,在数据库运行过程中,若第二目标模型的性能未满足第三预设要求,则该模型评估器还将触发该数据库采用数据库内原生内核组件生成最终待执行的目标物理计划(因为在这种情况下,原生内核组件执行的效果更好),从而可基于对第二目标模型的当前性能的评估实时进行动态调整生成目标物理计划的方式,从整体上提高了数据库性能。
在第一方面的一种可能的实现方式中,若第二目标模型的性能未满足第三预设要求,模型评估器除了可以用于触发该数据库采用数据库内原生内核组件生成最终待执行的目标物理计划,也可以将模型更新失败的信息(即第二目标模型的性能未满足所述第三预设要求)向模型管理器反馈,以使得该模型管理器基于该信息调整对第一目标模型的微调策略。
在本申请上述实施方式中,模型评估器还可以进一步将模型更新失败的信息反馈至模型管理器,使得模型管理器为后续模型训练策略提供参考,从而可提升模型训练能力以及训练效率。
在第一方面的一种可能的实现方式中,执行开销满足第一预设要求包括但不限于:
1)目标物理计划的执行开销在q个执行开销中开销最低,该q个执行开销为基于输入数据库的SQL语句生成的q个物理计划各自对应的执行开销,一个物理计划对应一个执行开销,其中,q≥1;
2)目标物理计划的执行开销低于某个预设值(可称为第一预设阈值)。为便于阐述,在本申请后续实施例中,均以目标物理计划的执行开销在q个执行开销中开销最低作为执行开销满足第一预设要求的情形,后续不予赘述。
在本申请上述实施方式中,具体阐述了执行开销满足第一预设要求的几种具体情形,具备广泛适用性以及灵活性。
在第一方面的一种可能的实现方式中,第一目标模型满足第二预设要求包括但不限于:
1)第一目标模型的性能开始出现性能下降的情况;
2)第一目标模型的性能不仅出现下降,并且下降的程度达到某个预设值(可称为第二预设阈值);
3)对该第一目标模型的实时性能进行评估并预测接下来的性能表现,例如,可通过模型评估器对该第一目标模型的性能进行预测,假设预测出的第一目标模型的性能下降的概率达到某个预设值(可称为第三预设阈值),如预测的性能要下降的概率达到80%;
4)第一目标模型持续运行的时长达到某个预设时长,如,第一目标模型持续运行的时长已达到30分钟。
在本申请上述实施方式中,具体阐述了第一目标模型满足第二预设要求的几种具体情形,具备广泛适用性以及灵活性。
在第一方面的一种可能的实现方式中,第二目标模型满足第三预设要求可以包括但不限于:
1)该第二目标模型的性能相比第一目标模型的性能提高了某个预设值(可称为第四预设阈值),作为一个示例,第四预设阈值可以为零,说明只要第二目标模型的性能达到了原来第一目标模型的性能的水平,就认为第二目标模型满足第三预设要求;作为另一示例,第四预设阈值也可以是大于零的某个值或某个比例,说明只有第二目标模型的性能相对原来第一目标模型的性能提高到了一定程度,才认为第二目标模型满足第三预设要求;
2)第二目标模型的性能相比数据库内原生内核组件的性能提高了第五预设阈值。即验证该第二目标模型相对于传统数据库算法的性能提升,如果性能提升达到一定阈值,则实际替换数据相应模块使用的模型,否则,还是采用传统数据库算法执行目标物理计划。其中,第五预设阈值的取值可以为零,也可以是大于零的某个值或某个比例,具体请参阅上述第一种方式,此处不予赘述。
在本申请上述实施方式中,具体阐述了第二目标模型满足第三预设要求的几种具体情形,具备广泛适用性以及灵活性。
本申请实施例第二方面还提供了一种数据管理方法,该方法包括:首先,本地的计算机设备接收由客户端设备向该计算机设备中部署的数据库发送的SQL语句,其中,该数据库内包括优化器以及数据库原生内核组件,该优化器包括n个模型,n≥1。计算机设备在接收到客户端设备发送的SQL语句后,会先判断优化器中的n个模型是否存在有模型不满足某事先预设的要求(可称为第二预设要求),若存在第一目标模型(即n个模型中的一个)不满足该第二预设要求,则计算机设备会根据该SQL语句,通过优化器中包括的n个模型得到目标物理计划,其中,该目标物理计划为执行开销满足第一预设要求的物理计划。计算机设备在得到最终的目标物理计划后,会执行该目标物理计划,这个执行的过程实质就是利用生成的目标物理计划执行输入的该SQL语句的实际逻辑。
在本申请上述实施方式中,阐述了计算机设备如何基于数据库中所包括的优化器得到目标物理计划并最终执行该目标物理计划,该计算机设备中所部署的数据库包括具有n个模型的优化器,从而替代了传统启发式优化器,通过与机器学习技术相结合,实现了将逻辑查询转换为执行效率更高的物理执行计划。
在第二方面的一种可能的实现方式中,优化器具体可以包括三个模型,可分别称为第三模型、第四模型以及第五模型,分别用于执行逻辑查询重写、代价估计以及物理计划生成的步骤。在这种情况下,计算机设备根据该SQL语句,通过优化器中包括的n个模型得到目标物理计划的方式具体可以是:首先,该计算机设备通过第三模型,对输入数据库的SQL语句(也可称为SQL查询)进行逻辑查询重写,从而得到重写后的逻辑计划,其中,该模型A为基于树搜索算法构建的模型,例如,可以是蒙特卡洛树搜索算法;之后,再通过第四模型,根据该逻辑计划生成q个物理计划,其中,该第四模型为基于深度学习算法构建的模型,例如,可以是基于Tree-LSTM的模型,q≥1;最后通过第五模型计算与该q个物理计划对应的q个执行开销(一个物理计划对应一个执行开销),并根据该q个执行开销确定最终待执行的目标物理计划,其中,该第五模型为基于强化学习算法构建的模型,例如,可以是基于DQN的模型。这里需要注意的是,在本申请的另一些实施方式中,优化器还可以包括更多或更少的模型,用于实现逻辑查询重写、代价估计以及物理计划生成的过程,在本申请实施例中,优化器包括是三个模型仅为示意。
在本申请上述实施方式中,具体阐述了优化器如何通过其中所包括的模型实现数据库的逻辑查询重写、代价估计以及物理计划生成的功能,从而替代了传统启发式优化器,通过与机器学习技术相结合,实现了将逻辑查询转换为执行效率更高的物理执行计划,并可以有效解决当前数据库体系结构问题导致的代价评估不准确、复杂SQL语句生成物理计划差的问题。
在第二方面的一种可能的实现方式中,该计算机设备还可以将部署于其中的数据库中进程的运行数据向建议器发送,该建议器可以部署于该计算机设备中,也不可以部署于远端设备,此处不做限定。建议器接收到该运行数据,可基于该运行数据发送异常数据,并基于得到的异常数据诊断出异常原因,最后基于异常原因优化与该异常原因对应的自优化模块,以减小后续数据库中进程的运行数据发生异常的概率,其中,建议器包括p个模型,p≥1。
在本申请上述实施方式中,具体阐述了计算机设备还可以将数据库中进程的运行数据反馈给建议器,建议器可以基于该运行数据给出数据库全方位的优化建议,可以实现无人值守的数据库性能监控、根因识别,极大解放运维人力,并可以帮助数据库系统迅速恢复异常或提升性能。
在第二方面的一种可能的实现方式中,该计算机设备还可以将部署于其中的数据库中进程的运行数据向建议器发送之外,也可以将该运行数据向训练数据收集器发送,该训练数据收集器可以部署于该计算机设备中,也不可以部署于远端设备,此处不做限定。训练数据收集器接收到该运行数据后,可以根据该运行数据得到训练数据,并基于这些训练数据构建m个训练集,m≥1。
在本申请上述实施方式中,具体阐述了计算机设备还可以将数据库中进程的运行数据反馈给训练数据收集器,该训练数据收集器可基于数据库中进程的运行数据生成数据库所涉及的模型的训练数据,可实现持续优化数据库系统,降低数据库系统的误判概率,提供可信的自治运维服务。
在第二方面的一种可能的实现方式中,若第一目标模型满足第二预设要求,该计算机设备还可以进一步向模型管理器(该模型管理器可部署于该计算机设备中,也可以不部署于该计算机设备,此处不做限定)发送第一指令,该第一指令用于指示该模型管理器对该第一目标模型进行微调,并且,在第二目标模型的性能满足某预设要求(可称为第三预设要求)的情况下,计算机设备接收模型管理器发送的该第二目标模型的模型参数,其中,该第二目标模型为该模型管理器利用与第一目标模型对应的目标训练集对该第一目标模型进行微调得到的模型,该目标训练集为m个训练集中的一个,最后,计算机设备再将该第一目标模型更新为第二目标模型,并通过更新后的n个模型(此时更新后的n个模型中不包括第一目标模型,包括的是第二目标模型)得到目标物理计划。
在本申请上述实施方式中,具体阐述了在第一目标模型没有满足第二预设要求的情况下,还需要通过模型管理器利用与该第一目标模型对应的目标训练集对该第一目标模型进行微调,并在微调后得到的第二目标模型的性能满足第三预设要求的情况下,对第一目标模型进行更新,以实现根据数据库的实时运行状态动态更新和替换数据库中使用的对应模型。
在第二方面的一种可能的实现方式中,若该第二目标模型的性能不满足所述第三预设要求,那么该计算机设备还将接收模型评估器发送的第二指令,该第二指令用于指示该数据库采用数据库内原生内核组件生成最终的目标物理计划,其中,该模型评估器可以部署于该计算机设备中,也不可以部署于远端设备,此处不做限定。该模型评估器就用于评估该第二目标模型的性能。
在本申请上述实施方式中,具体阐述了当微调后的第二目标模型依然没有满足第三预设要求,则计算机设备接收模型评估器第二指令,以指示该数据库采用数据库传统算法(即原生内核组件)来生成目标物理计划。本申请实施例为目标物理计划的生成提供了多种选择,具备灵活性。
在第二方面的一种可能的实现方式中,第一目标模型满足第二预设要求包括但不限于:
1)第一目标模型的性能开始出现性能下降的情况;
2)第一目标模型的性能不仅出现下降,并且下降的程度达到某个预设值(可称为第二预设阈值);
3)对该第一目标模型的实时性能进行评估并预测接下来的性能表现,例如,可通过模型评估器对该第一目标模型的性能进行预测,假设预测出的第一目标模型的性能下降的概率达到某个预设值(可称为第三预设阈值),如预测的性能要下降的概率达到80%;
4)第一目标模型持续运行的时长达到某个预设时长,如,第一目标模型持续运行的时长已达到30分钟。
在本申请上述实施方式中,具体阐述了第一目标模型满足第二预设要求的几种具体情形,具备广泛适用性以及灵活性。
在第二方面的一种可能的实现方式中,第二目标模型满足第三预设要求可以包括但不限于:
1)该第二目标模型的性能相比第一目标模型的性能提高了某个预设值(可称为第四预设阈值),作为一个示例,第四预设阈值可以为零,说明只要第二目标模型的性能达到了原来第一目标模型的性能的水平,就认为第二目标模型满足第三预设要求;作为另一示例,第四预设阈值也可以是大于零的某个值或某个比例,则说明只有第二目标模型的性能相对原来第一目标模型的性能提高到了一定程度,才认为该第二目标模型满足第三预设要求;
2)第二目标模型的性能相比数据库内原生内核组件的性能提高了第五预设阈值。即验证该第二目标模型相对于传统数据库算法的性能提升,如果性能提升达到一定阈值,则实际替换数据相应模块使用的模型,否则,还是采用传统数据库算法执行目标物理计划。其中,第五预设阈值的取值可以为零,也可以是大于零的某个值或某个比例,具体请参阅上述第一种方式,此处不予赘述。
在本申请上述实施方式中,具体阐述了第二目标模型满足第三预设要求的几种具体情形,具备广泛适用性以及灵活性。
在第二方面的一种可能的实现方式中,执行开销满足第一预设要求包括但不限于:
1)目标物理计划的执行开销在q个执行开销中开销最低,该q个执行开销为基于输入数据库的SQL语句生成的q个物理计划各自对应的执行开销,一个物理计划对应一个执行开销,其中,q≥1;
2)目标物理计划的执行开销低于某个预设值(可称为第一预设阈值)。为便于阐述,在本申请后续实施例中,均以目标物理计划的执行开销在q个执行开销中开销最低作为执行开销满足第一预设要求的情形,后续不予赘述。
在本申请上述实施方式中,具体阐述了执行开销满足第一预设要求的几种具体情形,具备广泛适用性以及灵活性。
本申请实施例第三方面提供一种计算机设备,该计算机设备具有实现上述第二方面或第二方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
本申请实施例第四方面提供一种计算机设备,可以包括存储器、处理器以及总线系统,其中,存储器用于存储程序,处理器用于调用该存储器中存储的程序以执行本申请实施例第二方面或第二方面任意一种可能实现方式的方法。
本申请实施例第五方面提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机可以执行上述第二方面或第二方面任意一种可能实现方式的方法。
本申请实施例第六方面提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第二方面或第二方面任意一种可能实现方式的方法。
本申请实施例第七方面提供了一种芯片,该芯片包括至少一个处理器和至少一个接口电路,该接口电路和该处理器耦合,至少一个接口电路用于执行收发功能,并将指令发送给至少一个处理器,至少一个处理器用于运行计算机程序或指令,其具有实现如上述第二方面或第二方面任意一种可能实现方式的方法的功能,该功能可以通过硬件实现,也可以通过软件实现,还可以通过硬件和软件组合实现,该硬件或软件包括一个或多个与上述功能相对应的模块。此外,该接口电路用于与该芯片之外的其它模块进行通信。
附图说明
图1为本申请实施例提供的构建数据库管理系统的一个系统架构示意图;
图2为本申请实施例提供的数据库管理系统的一个逻辑架构示意图;
图3为本申请实施例提供的优化器的一个原理示意图;
图4为本申请实施例提供的模型评估器的一个原理示意图;
图5为本申请实施例提供的建议器的一个原理示意图;
图6为本申请实施例提供的优化器与三种重新策略对比的一个示意图;
图7为本申请实施例提供的模型评估器与两种已知性能评估方法对比的一个示意图;
图8为本申请实施例提供的数据处理方法的一个流程示意图;
图9为本申请实施例提供的计算机设备的一种结构示意图;
图10为本申请实施例提供的计算机设备的另一结构示意图。
具体实施方式
本申请实施例提供了一种数据库管理系统、数据处理方法及设备,通过与机器学习技术相结合,以实现自动执行数据库调优、保护、更新以及其他传统上由DBA执行的常规数据库管理任务的功能,无需人工干预。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
本申请实施例涉及了许多关于数据库、模型等相关知识,为了更好地理解本申请实施例的方案,下面先对本申请实施例可能涉及的相关术语和概念进行介绍。应理解的是,相关的概念解释可能会因为本申请实施例的具体情况有所限制,但并不代表本申请仅能局限于该具体情况,在不同实施例的具体情况可能也会存在差异,具体此处不做限定。
(1)数据库
数据库是一个按数据结构来存储和管理数据的计算机软件系统。数据库的概念实际包括两层意思:a、数据库是一个实体,它是能够合理保管数据的“仓库”,用户在该“仓库”中存放要管理的事务数据,“数据”和“库”两个概念结合成为数据库。b、数据库是数据管理的新方法和技术,它能更合适的组织数据、更方便的维护数据、更严密的控制数据和更有效的利用数据。
(2)数据库软件
数据库软件部署在本地设备上,如部署在本地服务器、本地终端设备(如,手机、智能手表、个人电脑等),通常以单个或多个进程的形式存在,因此数据库软件也可称为数据库进程。
(3)神经网络
神经网络可以是由神经单元组成的,具体可以理解为具有输入层、隐含层、输出层的神经网络,一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。其中,具有很多层隐含层的神经网络则称为深度神经网络(deep neural network,DNN)。神经网络中的每一层的工作可以用数学表达式来描述,从物理层面,神经网络中的每一层的工作可以理解为通过五种对输入空间(输入向量的集合)的操作,完成输入空间到输出空间的变换(即矩阵的行空间到列空间),这五种操作包括:1、升维/降维;2、放大/缩小;3、旋转;4、平移;5、“弯曲”。其中1、2、3的操作由完成,4的操作由“+b”完成,5的操作则由“a( )”来实现。这里之所以用“空间”二字来表述是因为被分类的对象并不是单个事物,而是一类事物,空间是指这类事物所有个体的集合,其中,W是神经网络各层的权重矩阵,该矩阵中的每一个值表示该层的一个神经元的权重值。该矩阵W决定着上文所述的输入空间到输出空间的空间变换,即神经网络每一层的W控制着如何变换空间。训练神经网络的目的,也就是最终得到训练好的神经网络的所有层的权重矩阵。因此,神经网络的训练过程本质上就是学习控制空间变换的方式,更具体的就是学习权重矩阵。
(4)损失函数(loss function)
在训练神经网络的过程中,因为希望神经网络的输出尽可能的接近真正想要预测的值,可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重矩阵(当然,在第一次更新之前通常会有初始化的过程,即为神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重矩阵让它预测低一些,不断的调整,直到神经网络能够预测出真正想要的目标值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数或目标函数(objectivefunction),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么神经网络的训练就变成了尽可能缩小这个loss的过程。
(5)反向传播算法
在神经网络的训练过程中,可以采用误差反向传播(back propagation,BP)算法修正初始的神经网络模型中参数的大小,使得神经网络模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的神经网络模型中的参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的神经网络模型的参数,例如权重矩阵。
(6)机器学习
机器学习是一门多领域交叉学科,涉及概率论、统计学、凸分析、算法复杂度等多门学科,专门研究计算机怎么模拟或实现人类的学习行为,以获得知识或技能,重新组织已有的知识结构使之不断改善自身的功能。下面对本申请实施例中使用到的几种机器学习模型进行介绍:
a、蒙特卡洛树搜索
蒙特卡洛树搜索(monte carlo tree search,MCTS)是一种在人工智能问题上进行策略优化的方法,通常是对于那些在组合游戏中需要移动规划的部分,蒙特卡洛树搜索将随机模拟的通用性与树搜索的准确性进行了结合。由于它在计算机围棋上的成果和某些难题的解决潜力,蒙特卡洛树搜索算法的应用领域除了博弈,已经可以涵盖任何能够以(状态,动作)形式描述、通过模拟来预测结果的领域(如,查询重写中的重写序列选择问题)。
b、循环神经网络(recurrent neural networks,RNN)
RNN是神经网络的一种,RNN的目的是用来处理序列数据。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,每层之间的节点是无连接的。但是这种普通的神经网络对于很多问题却无能无力。例如,要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。RNN之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。理论上,RNN能够对任何长度的序列数据进行处理。
由于单纯的RNN因为无法处理随着递归,权重指数级爆炸或梯度消失问题,难以捕捉长期时间关联;而结合不同的LSTM可以很好解决这个问题。时间循环神经网络可以描述动态时间行为,因为和前馈神经网络(feed forward neural network)接受较特定结构的输入不同,RNN将状态在自身网络中循环传递,因此可以接受更广泛的时间序列结构输入。
c、长短期记忆人工神经网络(long short-term memory,LSTM)
LSTM也可称为长短期记忆网络,是一种时间循环神经网络,是为了解决一般的RNN存在的长期依赖问题而专门设计出来的,所有的RNN都具有一种重复神经网络模块的链式形式。在标准RNN中,这个重复的结构模块只有一个非常简单的结构,例如一个tanh层。
d、树长短期记忆人工神经网络(tree long short-term memory,Tree-LSTM)
传统LSTM由于能够保持序列信息,在序列模型任务上能够有较好的表现。但是,数据库中的很多问题都建模成树形结构,如查询语句的逻辑计划、物理计划,而LSTM只能输入线性的序列,导致对于树形的输入无法很好处理。Tree-LSTM主要将LSTM拓展到树形的输入结构上,并在预测树上的语义相关性、语义分类任务上,超过传统LSTM模型。
e、卷积神经网络(convolutional neural networks,CNN)
CNN是一种带有卷积结构的深度神经网络,卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器与一个输入的图像或者卷积特征平面(feature map)做卷积。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。这其中隐含的原理是:图像的某一部分的统计信息与其他部分是一样的。即意味着在某一部分学习的图像信息也能用在另一部分上。所以对于图像上的所有位置,我们都能使用同样的学习得到的图像信息。在同一卷积层中,可以使用多个卷积核来提取不同的图像信息,一般地,卷积核数量越多,卷积操作反映的图像信息越丰富。
卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
f、图卷积神经网络(graph convolutional network,GCN)
受到CNN在计算机视觉领域所获巨大成功的激励,近来出现了很多为图数据重新定义卷积概念的方法。这些方法属于GCN的范畴。由于谱方法通常同时处理整个图,并且难以并行或扩展到大图上,基于空间的GCN通过聚集近邻节点的信息,直接在图结构上执行卷积。结合采样策略,计算可以在一个批量的节点而不是整个图中执行,从而可以有效的提高数据库中与图模型相关的问题(如,并发查询建模)的处理效率。
g、强化学习(reinforcement learning,RL)
RL是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利益。RL是除了监督学习和非监督学习之外的第三种基本的机器学习方法。与监督学习不同的是,RL不需要带标签的输入/输出对,同时也无需对非最优解的精确地纠正。其关注点在于寻找探索(对未知领域的)和利用(对已有知识的)的平衡,强化学习中的“探索-利用”的交换,在多臂老虎机问题和有限马尔科夫决策过程(markov decision process,MDP)中研究得最多。
例如,在本申请实施例中,对于多连接操作的查询语句,RL控制每次连接操作的执行顺序,保证总的查询执行开销最小。RL也有训练过程,需要不断的执行动作,观察执行动作后的效果,积累经验形成一个模型。与有监督学习不同的是,这里每个动作一般没有直接标定的标签值作为监督信号,系统只给算法执行的动作一个反馈。
(7)远程过程调用协议(remote procedure call,RPC)
RPC是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
在本申请实施例中,利用RPC实现数据库内核组件与外部模型管理器的快速交互,如提出模型更新请求、创建新的模型等。
此外,在介绍本申请实施例之前,先对目前数据库管理系统的几种管理架构进行简单介绍,使得后续便于理解本申请实施例。
方式一、数据库管理系统SageDB
SageDB的核心思想是构建多个关于数据分布的累积分布函数(cumulativedistribution function,CDF),分别利用这些CDF模型生成学习型索引、替换代价估计模型以及加速物理算子等。
作为一个概念系统,SageDB首先假设其可以学到一个“完美”的CDF模型,即模型的概率分布精确符合相应数据表的数据分布情况,然后分别在数据库不同模块插入CDF模型,提供基于机器学习的推理能力:1)对于优化器,SageDB直接用在单表上学习得到的CDF模型替代代价估计模型,估计不同查询的代价(cost)和基数(cardinality);2)对于数据结构,SageDB直接将传统多路搜索树(balance tree,B-Tree)上的块(block)替代为学到的CDF模型,并总结异常情况列表,用于纠正CDF定位错误的问题;3)对于物理算子加速,以排序操作为例,SageDB先根据学到的CDF模型,对底层数据进行粗排(输入数据值,输出相对位置序号),然后用传统排序算法(如,快排)得到最后的排序结果。
SageDB仍然处于研究出气,采用的是简单的CDF实验模型,难以适应大规模数据集等问题;并且,SageDB的所有学习功能都基于在单表上学习得到的CDF模型簇,适合简单的单表查询场景,但是无法有效处理多表连接问题;此外,CDF只用于学习数据或负载分布,不能提供如查询重写、查询计划生成、异常诊断等智能决策功能,并且SageDB没有提供多CDF的模型管理和模型更新机制。
方式二、关系数据库管理系统Oracle
Oracle数据库在数据库的自动化运维上具有很长时间的投入,Oracle 10g引入了各种自我管理功能,以简化管理、提高效率并降低与系统管理相关的总成本。这些管理功能包括:1)与SQL查询优化相关的统计分析;2)自动存储管理器:简化数据文件、控制文件和日志文件的存储方式;3)自动工作负载存储库:存储和管理用于自我调整的信息;4)自动数据库诊断监视器:分析存储的统计数据,识别可能的性能瓶颈并提供解决发现问题的建议;5)自动查询优化:通过使用查询重写规则和代价模型来确定执行结构化查询语言(structured query language,SQL)查询的有效方式;6)自动为SQL语句或工作负载生成调优建议。这些推荐被提供给用户,用户主观接受或拒绝这些建议;7)SQL调优建议根据查询优化器提供的信息做出决策,包括自动数据库诊断监视器和自动工作负载存储库;8)根据当前负载量推荐索引(包括位图索引、基于函数索引和B树索引)、物化视图和表分区、索引。从SQL缓存中获取内容,并在分析后选择适当的索引和物化视图;9)优化器统计收集器,收集有关优化的统计信息;10)通过管理数据库快照并将信息存储,协调服务器内的所有自主管理;11)服务器生成警报,配置系统以在触发事件时自动生成警报;12)自动化安装前和安装后任务:在安装前会自动检查系统,以保证安装过程的成功并建议更改;13)自动管理Oracle数据库实例使用的共享内存,并使管理员无需手动配置共享内存组件;14)数据库资源管理器允许DBA在逻辑上将工作负载划分为不同的单元,并将中央处理器(centralprocessing unit,CPU)资源分配给这些单元,而无需额外开销。在高峰时段,联机事务处理负载(on-line transaction processing,OLTP)应优先于联机事务分析负载(on-lineanalytical processing,OLAP),反之亦然。其调度机制用于固定时间间隔并控制一次执行的活动会话数。当活动会话的可用插槽被新会话填满时,剩余的会话将排队,直到某个插槽可用。其首个自治数据库发布版本是19c,以公有云的形式对外部提供服务,包括了自动化索引、分布列、物化视图推荐等功能。
然而,Oracle数据库的优化能力主要以单点、独立功能的形式呈现,各个功能并没有统一起来形成闭环,用户需要根据自己的需求进行按需调用;此外,Oracle数据库的自治功能主要体现在数据统计、分析和管理阶段,基于有限规则或传统统计学习,对数据库异常的优化能力有限;并且,Oracle数据库没有提供统一的模型和训练数据管理、更新机制,也没有提供组件性能的验证功能,属于被动式调优。
综上所述,为解决上述问题,本申请实施例提供了一种新的数据库管理系统,该系统基于机器学习算法和专家经验,实现自学习内核和模型优化,构筑数据库全方位的自治功能。
下面结合附图,对本申请的实施例进行描述。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
首先,对本申请实施例构建的数据库管理系统的系统架构进行描述,具体请参阅图1,图1为本申请实施例提供的构建数据库管理系统的一个系统架构示意图,该系统架构包括数据库软件101、机器学习平台组件102、自学习建议器103(可简称为建议器103),下面对各个结构的模块功能进行介绍:
(1)数据库软件101的模块功能
数据库软件101(类似服务器软件)部署在本地设备上,例如,可部署在本地服务器、本地终端设备(如手机、个人电脑等)上,通常以单个或多个进程的形式存在。本申请实施例的系统架构包括数据库的自学习内核组件,替代或者置换传统的数据库原生内核组件的算法或者实现(需注意的是,原生内核组件没有删减,还是一样在数据库进程中),实现数据库整体可靠性或性能提升。自学习内核组件意味着不是单点通过机器学习方法替代某个算法,突出的能力是基于系统负载变化或者业务状态变化,自动适应场景,基于算法训练模型进行自动更新,接入反馈机制和验证机制,进行模型自动漂移,持续模型可用性。
需要说明的是,在本申请的实施例中,自学习内核组件可以标识为自学习优化器1011(可简称为优化器1011)、自学习索引、自学习存储及自学习执行器等,不同的自学习内核组件可对应实现原生内核组件中对应模块的功能,为便于阐述,在本申请实施例中,以优化器1011为主介绍自学习内核组件的实现机理以及调用逻辑。
(2)机器学习平台组件102的模块功能
在本申请实施例中,无论是使用哪种机器学习算法,数据来源均为数据库系统,包括但不限于数据库内部指标(如,每秒传输的事物处理个数(transactions per second,TPS)、缓存命中、活跃事物、资源使用等)、操作系统信息、日志信息等。这些信息将用于模型训练,具体可以通过信息采集器将这些信息写入训练数据收集器1021(也可称为训练数据收集平台),模型管理器1022(也可称为模型管理平台)基于要训练的算法,结合数据信息,完成模型训练。训练好的模型将被推送到模型评估器1023,只有经过评估符合业务期望的模型,才可标识为即将应用的模型,否则需要重新调整及训练。
这里需要注意的是,信息采集器可以部署在数据库软件101内,也可以是数据库软件101外单独部署的一个进程,单独部署的目的是与数据库解耦,用于实现特定功能(即数据库中进程的运行数据的采集功能),具体本申请实施例对信息采集器的部署方式不做限定。
还需要注意的是,在本申请的另一些实施方式中,由于信息采集器的功能是采集数据,为便于阐述,可将信息采集器的功能集成在优化器1011内,或集成在训练数据采集器1021内,具体本申请对此不做限定,为便于阐述,在本申请下述实施例中,均以训练数据收集器1021兼具信息采集器的功能为例进行说明,后续不予赘述。
需要说明的是,在本申请实施例中,机器学习平台组件102中所包括的模型可以是事先经过预训练的,部署在该系统架构中的模型均可以是指经过预训练后的模型,在这种情况下,本申请实施例训练数据收集器1021收集得到的训练数据可用于对预训练后的模型进行微调(例如,在模型应用一段时间后,出现性能下降时,可进行微调);机器学习平台组件102中所包括的模型也可以是事先没有经过预训练的,而是直接将初始化的模型部署于该系统架构,再采用训练数据收集器1021收集得到的训练数据对各个模型进行训练以及后续的微调,具体本申请对机器学习平台组件102中所包括的模型部署时的状态(即是否经过预训练)不做限定。
还需要说明的是,在本申请的一些实施方式中,机器学习平台组件102可以部署在远端设备(如,远端服务器,在图1中示意的是部署在远端设备上),也可以部署本地设备(如,本地服务器),甚至于和数据库同进程一起实现(即在数据库内核里实现)均可。单独组件程序是对数据库已有能力侵入式最小方式,可以作为附件迭代式逐步替换数据库内核模块能力。部署在本地设备也是如此,对数据库侵入性小,但是会和数据库强制同一设备资源,通常需要新增调度组件进行平衡及资源管控。在数据库内核集成机器学习组件平台,即数据库本身提供机器学习(包括不限于深度学习、强化学习等)能力,对数据库侵入性大,但数据隐私保护好,减少通信开销,接口实现间接方便,更加易于模型调优或者微调。
(3)建议器103的模块功能
建议器103是用于发现数据库运行过程中可能存在问题,并进行诊断和调优,用于数据库的智能化运维管理。建议器103也需要机器学习平台组件,进行智能运维过程中使用的算法模型管理。使用的机器学习平台可以和数据库系统使用的机器学习平台组件同源,即两者可以使用同一个机器学习平台,或者分别管理,即建议器103中的模型可以单独部署一个机器学习平台组件,具体本申请对此不做限定,但机器学习平台组件的功能或者机制没有变化,也是进行模型自动更新,提供学习和反馈机制,保证模型的可用性。
这里需要说明的是,建议器103非数据库内核能力体现,但用于进行数据库管理,可以对数据库内核模块提供的能力进行调优或者加强。经过和数据库交互,建议器103获取更多信息和建议,模型更加优化,有利于系统智能化实施。
通常建议器103需要上报诊断信息及健康指数,也需要接受来自用户的指令,这时需要web前端来实现该功能,实现方式为常规操作,此处不予赘述。
还需要说明的是,在本申请上述实施例中,数据管理系统的系统架构是包括了建议器103,而由上述描述可知,该建议器103的模块功能是发现数据库运行过程中可能存在问题,并进行诊断和调优。因此,在本申请的另一些实施方式中,该建议器103也可以不需要。
基于上述对数据管理系统的系统架构的描述,下面具体介绍本申请实施例提供的数据库管理系统下的各个功能模块的具体功能和调用逻辑,各功能模块分别为图1所示的优化器1011、训练数据收集器1021(训练数据收集器也可称为训练数据收集平台)、模型管理器1022(模型管理器也可称为模型管理平台)、模型评估器1023、建议器103(在一些实施例中,建议器103也可不需要)。具体请参阅图2,图2为本申请实施例提供的数据库管理系统的一个逻辑架构示意图,其中,该数据库管理系统中的SQL查询解析器以及存储引擎为已有模块,其他均为该系统新增模块,新增模块包括自学习的优化器201(需注意的是,本申请提供的优化器201中包括的部分内核组件可以是原生的内核组件,但该优化器201中包括的n个模型是本申请新增的)、训练数据收集器202、模型管理器203、模型评估器204以及自学习的建议器205(在一些实施例中,建议器205也可不需要),下面分别从具体功能和调用逻辑上对各个功能模块进行说明:
一、优化器201
优化器中的大多数问题(例如,查询重写、代价估计和物理计划生成)都是NP-hard问题(很难有效算法来解决非确定性问题),现有的优化技术采用启发式方法,可能会陷入局部最优。因此,为了解决这些问题,本申请实施例提供的学习型的优化器使用机器学习技术来提高性能。
具体地,在本申请实施例中,优化器201中包括n个模型,n≥1。该优化器201,用于根据输入数据库的SQL语句,通过所述的n个模型得到最终待执行的物理计划(可称为目标物理计划),其中,该目标物理计划是指执行开销满足某预设要求(可称为第一预设要求)的物理计划。
需要说明的是,在本申请的一些实施方式中,执行开销满足第一预设要求包括但不限于:1)目标物理计划的执行开销在q个执行开销中开销最低,该q个执行开销为基于输入数据库的SQL语句生成的q个物理计划各自对应的执行开销,一个物理计划对应一个执行开销,其中,q≥1;2)目标物理计划的执行开销低于某个预设值(可称为第一预设阈值)。为便于阐述,在本申请后续实施例中,均以目标物理计划的执行开销在q个执行开销中开销最低作为执行开销满足第一预设要求的情形,后续不予赘述。
需要说明的是,在本申请的一些实施方式中,优化器201具体可以包括三个模型,可分别称为模型A、模型B、模型C,分别用于执行逻辑查询重写、代价估计以及物理计划生成这三个步骤。这里需要注意的是,在本申请的另一些实施方式中,优化器201还可以包括更多或更少的模型,用于实现逻辑查询重写、代价估计以及物理计划生成的过程,在本申请实施例中,优化器201包括是三个模型仅为示意,后续不予赘述。
具体地,该优化器201通过模型A,对输入数据库的SQL语句(也可称为SQL查询)进行逻辑查询重写,从而得到重写后的逻辑计划,其中,该模型A为基于树搜索算法构建的模型,例如,可以是蒙特卡洛树搜索算法;之后,该优化器201再通过模型B,根据该逻辑计划生成q个物理计划,其中,该模型B为基于深度学习算法构建的模型,例如,可以是基于Tree-LSTM的模型,q≥1;最后,该优化器201再通过模型C,计算与该q个物理计划对应的q个执行开销(一个物理计划对应一个执行开销),并根据该q个执行开销确定最终待执行的目标物理计划,其中,该模型C为基于强化学习算法构建的模型,例如,可以是基于DQN的模型。
需要说明的是,在本申请的一些实施方式中,优化器201执行的上述三个步骤具体可以通过学习型的重写器、学习型的代价估计器以及学习型的计划生成器这三个子模块生成,该过程具体可以是:首先本申请实施例提供的重写器使用基于树搜索算法的模型将输入数据库系统的初始SQL语句转换为数据库系统可识别的语义等价的逻辑计划A;再基于代价估计器得到改写的执行效率更高的逻辑计划B。计划生成器再基于逻辑计划B生成x个物理计划(如,x=5),再基于代价估计器得到x个物理计划各自的执行开销,从中选出执行开销满足第一预设要求的物理计划(即目标物理计划),最后利用生成的目标物理计划执行初始SQL语句的实际逻辑。
为便于理解,以优化器201包括学习型的重写器、学习型的代价估计器以及学习型的计划生成器这三个子模块为例,对优化器201所执行的逻辑查询重写、代价估计以及物理计划生成的过程进行详细说明:
(1)逻辑查询重写
学习型重写器使用基于MCTS的方法将输入的SQL语句重写为等效但执行代价更低的查询。其首先构建一个策略树,其中根节点是原始查询,树节点是通过应用重写规则(重写规则是已知技术,如子查询提升、冗余过滤删除等,此处不予赘述)从其父节点重写得到的查询。本重写器利用一种MCTS方法,首先构建一棵以输入的逻辑计划为根节点的策略树,其中每个子节点表示父节点经过一个重写操作获得的语义等价逻辑计划;然后在策略树上迭代选择开销最小或者被选概率最低的等价逻辑计划,对策略树进行扩展(即根据被选计划的所有重写策略,在被选计划相应的树节点下添加新的子节点);最后选择策略树上执行开销最小的逻辑计划,作为重写器的输出。
(2)代价估计
学习型代价估计器使用基于深度学习的方法来估计查询的代价和基数,其可以捕获不同列之间的相关性。其设计一个匹配查询语句的物理计划的树结构模型,类比物理计划由多个子计划组成,其中每个树结构模型可以由几个子模型组成,本申请实施例使用该树结构模型来估计计划的代价或基数。
(3)物理计划生成
学习型计划生成器使用基于强化学习的方法来生成优化的物理计划(即目标物理计划),这里的逻辑是:生成的等价逻辑计划会对应存在多个执行计划树,每个执行计划树包括一个或多个执行算子(也可称为物理算子),每个执行计划树下可能有多条执行路径,涉及到不同的执行算子,一颗执行计划树对应一个总开销,我们的目的是找到总开销最小的那个物理计划。其使用带有树结构的LSTM的强化学习进行连接顺序选择,具体地,该计划生成器利用Tree-LSTM将当前物理计划编码成一个压缩向量,作为深度强化学习的状态,然后迭代多次,每次选择长期收益最高的连接操作,最后输出执行开销最低的物理计划,作为执行SQL语句的实际逻辑。本申请实施例可以采用GCN来捕获支持数据库模式更新和表名多别名的连接树的结构。该模型可以自动选择合适的物理运算符。
综上所述,该优化器201的调用逻辑为:在本申请实施例提供的学习型的优化器201中,对于经过SQL查询解析器输入的逻辑计划,重写器首先构建一棵以输入的逻辑计划为根节点的策略树,其中每个子节点表示父节点经过一个重写操作获得的等价逻辑计划。重写器基于MCTS在策略树上搜索开销最小的等价逻辑计划,然后输入给计划生成器。计划生成器迭代的调整连接操作的顺序,得到多个不同的物理计划。对于每个物理计划,利用代价估计器估计执行开销,然后选择执行开销最小的物理计划输出。
为便于理解,下面基于优化器201的原理,对优化器201的执行过程进行详细阐述,具体请参阅图3,图3为本申请实施例提供的优化器的一个原理示意图,该优化器通过机器学习模型对数据库执行过程中的SQL语句重写、代价估计以及物理执行计划选择。该过程中的模型可以通过反馈与增量训练进行更新,从而动态适配负载的变化。其核心步骤如下:
1)在一条输入数据库的SQL语句在被执行之前,调用优化器的逻辑查询重写功能(即词学习型的重写器)对其进行语句级改写,以防不良的SQL书写习惯造成性能问题。具体过程如下:
a、第一步,首先构建一个策略树,其中根节点是输入SQL查询,非根节点是重写的查询语句。通过MCTS搜索算法发现获取最大收益的重写顺序,即在策略树上迭代选择开销最小或最不经常被选的等价逻辑计划,对策略树进行扩展(即根据被选计划的所有重写策略,在被选计划相应的树节点下添加新的子节点);最后选择策略树上执行开销最小的逻辑计划,作为重写器的输出。
b、第二步,确认每个树节点的潜在收益,根据给定的查询语句(原始或重写中的查询)、可用的重写规则以及数据列信息,设计基于神经网络的收益估计模型(如,注意力层计算规则与规则之间在重写算子上的相似度),并预测查询语句后续可降低的执行开销。
c、第三步,为提高搜索效率,特别是当查询逻辑运算符很多时,利用动态规划,自底向上计算从每个节点及其子树选择最优的前N个没有祖先-后代关系的节点,保证总收益值最大;然后输出根节点对应的节点选择方案,表示从相应的N个节点扩展策略树有最高概率采到最优的重写查询。
d、第四步,达到最大迭代次数或者无新叶子节点,输出执行开销最小的重写查询语句。
2)调用学习型的代价估计器,利用机器学习模型计算代价估计,通过Tree-LSTM模型估计任意执行计划的基数和成本,供优化器进行路径选择。具体过程如下:
a、对于离线训练,训练数据基于采集的历史查询语句,通过特征提取,将训练数据输入待训练的模型。训练时,基于当前训练损失,通过反向传播方式更新模型的权重。
b、对于在线使用代价估计时,如果已经评估了当前节点根的子计划,从缓存池中获取子计划估计信息;如果当前子计划未评估过,则对根进行编码,将编码后的计划向量输入Tree-LSTM模型中,然后模型将评估的代价和计划返回给优化器,并且将新评估信息放入缓存池,以便后面查询语句使用。
3)当侦测到的是复杂SQL语句时,则调用基于深度强化学习的模型进行执行路径枚举,相比传统数据库内的基于遗传算法等启发式算法可以更快、更有效率地获得可行的SQL执行计划。具体过程如下:
a、通过深度Q网络(DQN)结合Tree-LSTM模型来发现最优计划。
b、首先初始化空状态,仅包含查询的基本信息,之后,进一步设计许多中间状态,每一个中间状态包含部分计划树的可选计划,组成计划森林。
c、训练过程分为成本训练和延迟调整。其中成本训练通过强化学习方法不断选取执行计划中片段,判断新选计划的操作是否符合最佳计划;在这过程中使用Tree-LSTM模型中Q值检索方法,初步确定计划的优劣。延迟调整时,只有少数计划延迟被用作训练数据进行模型的微调。
d、DQN使用Q网络估计,并找到那个执行树更好。在计划树,有三类叶子节点,包括列、表和操作。使用深度优先搜索遍历计划树,Tree-LSTM网络层判断每个叶子节点表现代价。
4)当侦测到的是简单SQL语句时,则基于语句特征和数据分布,利用机器学习算法,在计划缓冲区中,搜索可选执行计划列表,匹配相似计划作为最终的执行计划。具体过程如下:
a、构建缓冲区,在简单SQL语句第一次被执行时,将其计划加入缓冲区。
b、在简单SQL语句第二次及后续执行中,基于90:10策略,90%的操作是在缓冲区中获取计划,10%的操作是重新生成计划后执行。重新生成计划若在缓冲区中不存在,则加入缓冲区中作为待选计划,每个语句最多存y个待选计划,其中,y可自定义,例如,y=5。
c、通过K最近邻(k-nearest neighbor,KNN)分类算法,将新执行语句特征与缓冲计划中信息进行匹配,选择匹配成功的执行计划。也就是说匹配计划为该语句真正可执行计划。
5)数据库执行引擎执行上述优化后的SQL语句执行计划,即执行最终的目标物理计划。
二、训练数据收集器202
在本申请实施例中,训练数据收集器202,用于根据数据库中进程的运行数据得到训练数据,并基于得到的这些训练数据构建m个训练集,m≥1。
具体地,在本申请的一些实施方式中,训练数据收集器202可自动收集数据库的统计信息,包括数据库运行指标、查询日志、系统日志等,利用这些信息生成本数据库管理系统所涉及的所有学习型模型(即建议器205(若有)、优化器201以及模型评估器204中所包括的模型)的训练数据,并可以分别针对不同的模型生成对应的训练集(即构建m个训练集)。
作为一种实例,假设优化器201、建议器205以及模型评估其204中一共包括6种模型,那么可基于各自的模型特点生成对应的6种不同的训练集,即m=6,在这种情况下,一个模型对应有一个训练集。在本申请的另一些实施方式中,构建的训练集也可以少于6种,即m<6,在这种情况下,某些模型可共用一个训练集,具体本申请对构建训练集的数量有自己训练集与模型的对应关系不做限定。
需要说明的是,本申请实施例所涉及的模型可以是事先经过预训练的,即部署在该数据库管理系统中的模型均是指经过预训练后的模型,在这种情况下,本申请实施例训练数据收集器202收集得到的训练数据可用于对预训练后的模型进行微调(例如,在模型应用一段时间后,出现性能下降时,可进行微调);本申请实施例所涉及的模型也可以是事先没有经过预训练的,而是直接将初始化的模型部署于该数据库管理系统,再采用训练数据收集器202收集得到的训练数据对各个模型进行训练以及后续的微调,具体本申请对数据库管理系统所包括的模型部署时的状态(即是否经过预训练)不做限定。
还需要说明的是,在本申请实施例中,训练数据收集器202可以从多个方面收集数据库中进程的运行数据,包括但不限于:1)数据库指标:数据库的运行状态,如每秒查询数(query per second,QPS)、CPU使用率、缓存命中率等。这些通常由时间序列数据表示;2)SQL查询:其收集SQL查询及其统计信息,如物理计划、响应时间和持续时间等。3)数据库日志:其收集运行日志,由于数据库管理系统中不同的模型需要不同的训练数据,本申请实施例可智能地为不同的学习模块组织训练数据,包括将相关列组织到同一个表中以减少连接开销、为模型选择训练数据等。
综上所述,该训练数据收集器202的调用逻辑为:训练数据收集器202接收来自数据库中进程的运行数据(如,数据库Agent程序的采集信息),并对接收到的运行数据进行数据清理和数据加工操作(如,经过数据清洗、数据合并、多指标直接关联分析等操作,从而使得数据更加适合后续的模型训练或微调),得到训练数据,该训练数据被构建为m个训练集,用于数据库管理系统中各个模型的训练或微调。若模型是未经过预训练的模型,则基于指定的算法和训练数据,对该模型进行训练;若模型是已经经过预训练的模型,则评估新得到的训练数据及该已预训练模型之间的关系,并持续监测,决定是否需要更新模型;监测时间基于训练模型的数据来源,是否属于频度很高且易于变化数据。
三、模型管理器203
在本申请实施例中,模型管理器203,用于在第一目标模型满足某预设要求(可称为第二预设要求)的情况下,采用与该第一目标模型对应的目标训练集对该第一目标模型进行微调(finetune),从而得到第二目标模型(该第二目标模型实质就是更新了模型参数的第一目标模型)。其中,该第一目标模型为所述n个模型中的一个,该目标训练集为所述m个训练集中的一个。之后,可再将finetune后的第二目标模型的模型参数传递给模型评估器204进行模型性能的评估。
这里需要说明的是,m与n的取值可以相同,也可以不相同,若m=n,则说明n个模型中的每个模型都对应有一个自身使用的训练集,若m≠n,则说明n个模型中可能存在多个模型共用一个训练集的情形(即m<n的情况),也可能存在一个模型可有多个训练集用于进行训练的情形(即m>n的情况),具体本申请对此不作限定。
还需要说明的是,在本申请的一些实施方式中,第一目标模型满足第二预设要求包括但不限于:1)第一目标模型的性能开始出现性能下降的情况;2)第一目标模型的性能不仅出现下降,并且下降的程度达到某个预设值(可称为第二预设阈值);3)对该第一目标模型的实时性能进行评估并预测接下来的性能表现,例如,可通过模型评估器204对该第一目标模型的性能进行预测,假设预测出的第一目标模型的性能下降的概率达到某个预设值(可称为第三预设阈值),如预测的性能要下降的概率达到80%;4)第一目标模型持续运行的时长达到某个预设时长,如,第一目标模型持续运行的时长已达到30分钟。
在本申请实施例中,模型管理器203集成了常用的机器学习能力,用于提供统一的应用接入接口,支持学习模型的管理和调度。具体地,模型管理器203根据训练数据收集器202更新的训练数据,生成更优的模型,以符合当前系统运行状态。
综上所述,该模型管理器203的调用逻辑为:模型管理器203接收到训练数据后,判断是否需要更新模型,如果需要更新,则完成更新模型后,将模型的模型参数传给模型验证器204。
四、模型评估器204
在本申请实施例中,模型评估器204,用于评估得到的第二目标模型的性能,并在该第二目标模型的性能满足某预设要求(可称为第三预设要求)的情况下,将优化器201中的第一目标模型更新为该第二目标模型。作为一种示例,更新的过程具体可以是:模型评估器204将该第二目标模型的模型参数向优化器201发送,优化器201将接收到的更新的模型参数赋于该第一目标模型,从而得到该第二目标模型。需要注意的是,在本申请的一些实施方式中,该模型评估器204可以是基于图嵌入的性能预测模型。
需要说明的是,在本申请的一些实施方式中,第二目标模型满足第三预设要求可以包括但不限于:1)该第二目标模型的性能相比第一目标模型的性能提高了某个预设值(可称为第四预设阈值),作为一个示例,第四预设阈值可以为零,说明只要第二目标模型的性能达到了原来第一目标模型的性能的水平,就认为第二目标模型满足第三预设要求;作为另一示例,第四预设阈值也可以是大于零的某个值或某个比例,说明只有第二目标模型的性能相对原来第一目标模型的性能提高到了一定程度,才认为第二目标模型满足第三预设要求;2)第二目标模型的性能相比数据库内原生内核组件的性能提高了第五预设阈值。即验证该第二目标模型相对于传统数据库算法的性能提升,如果性能提升达到一定阈值,则实际替换数据相应模块使用的模型,否则,还是采用传统数据库算法执行目标物理计划。其中,第五预设阈值的取值可以为零,也可以是大于零的某个值或某个比例,具体请参阅上述第一种方式,此处不予赘述。
还需要说明的是,在本申请的一些实施方式中,若第二目标模型的性能未满足第三预设要求,则该模型评估器204还将用于触发该数据库采用数据库内原生内核组件生成最终待执行的目标物理计划,例如,索引选择模块启用传统的爬山算法新建索引,以执行SQL语句的逻辑。也就是说,如果finetune后的第二目标模型的性能依然没有达到要求,就采用数据库传统内核组件算法来生成目标物理计划。由于数据库的原生内核组件并未删除,而是与新增的优化器并存于数据库软件中,因此,在数据库运行过程中,哪种方式能提升数据库性能,就实时进行动态调整,从整体上提高了数据库性能。
还需要说明的是,在本申请的另一些实施方式中,若第二目标模型的性能未满足第三预设要求,模型评估器204除了可以用于触发该数据库采用数据库内原生内核组件生成最终待执行的目标物理计划,也可以将模型更新失败的信息(即第二目标模型的性能未满足所述第三预设要求)向模型管理器203反馈,以使得该模型管理器203基于该信息调整对第一目标模型的微调策略,为后续模型训练策略提供参考。
基于上述所述,模型评估器是为了验证模型是否对工作负载有效,如果数据库采用了学习型模型,则可以利用模型评估器204预测模型性能。对于本申请实施例提供的数据库管理系统中所部署的模型,本申请都可通过该模型评估器204进行性能预测。如果模型的性能变好(如,性能提升达到一定阈值),则将得到的新的模型(即原模型更新了模型参数)标识为最佳模型,可实际部署到该数据库管理系统;否则标识为需要更新模型,放弃部署。
综上所述,该模型评估器204的调用逻辑为:模型评估器204获取来自模型管理器203生成的最新模型,并验证其模型是否稳定可靠,同时可以提升系统性能。验证结果反馈给模型管理器203,标识其为最佳模型或需要重新更新模型。
为便于理解,下面基于模型评估器204的原理,对模型评估器204的执行过程进行详细阐述,具体请参阅图4,图4为本申请实施例提供的模型评估器的一个原理示意图,该模型评估器对本申请实施例构建的数据库管理系统中部署的模型(如,优化器、建议器中所包括的模型)进行性能评估,校验其是否可以获得性能提升,如果新的模型没有提升性能,则放弃模型的部署。具体地,在本申请的一些实施方式中,该模型评估器可以是基于GNN实现的,其结构如图4所示。其核心步骤如下:
1)首先,通过将用户待执行的负载进行向量化表示,然后调用基于GNN的性能预测模型进行评估,结合新旧两个模型下的负载特征即可给出预估的执行效果,进而比较新模型是否有效。
2)其次,再将将工作负载图输入到预测模型中,若图太大,可能会影响预测效率。因此,本申请实施例提出了一种图压缩算法,它删除冗余顶点并合并相似的顶点。具体执行过程如下:
a、首先,在负载图构建中,利用图模型来捕获工作负载特征,其中顶点表示从查询计划中提取的算子特征,两个算子之间的边表示它们之间的查询相关性和资源竞争。
b、其次,性能预测模型将特征输入预测模型,在该模型中,本申请提出了一种图嵌入算法,在算子级别嵌入图特征(如,算子特征和K跳邻居),并构建一个深度学习模型来预测查询性能。
c、此外,若图太大,通过负载图优化程序中的图压缩算法,通过合并存在时间重叠的节点减小负载图的规模,使用的方法是先根据每个节点的执行时间范围将存在时间重叠的节点进行聚类,然后通过最少完全连接子图(clique)划分在各个类内将没有边关系的节点进行合并。
d、最终预测查询性能,验证输入模型是否带来收益。
五、建议器205
现有的数据库监控、配置、诊断、优化方法(如,参数调优、慢SQL诊断、索引/视图顾问)依赖DBA,成本高,无法适应大规模实例(如云数据库)。因此,为了解决该问题,本申请可以基于机器学习方法,实现自监控、自诊断、自优化的功能,以便自动和智能地优化数据库。
因此,在本申请实施例中,数据库管理系统还可以进一步包括建议器205,该建议器205中包括p个模型,其中,p≥1。该建议器205,用于发现数据库中进程的运行数据(如,CPU利用率、用户响应时间等)中存在的异常情况(即发现异常数据),并基于得到的异常数据诊断出异常原因,之后,再基于得到的异常原因优化与该异常原因对应的优化模块(该优化模块也位于建议器205内,优化模块的作用是用于对数据库进行参数调优),以减小数据库中进程的运行数据发生异常的概率。这里需要注意的是,若本申请实施例构建的数据库管理系统包括该建议器205,则上述所述的第一目标模型不仅可以是优化器201中n个模型中的任意一个,也可以是建议器205中p个模型中的任意一个。
需要说明的是,在本申请的一些实施方式中,建议器205具体可以包括三个模型,可以分别称为编解码器、模型D、模型E,分别用于执行数据库的自监控、自诊断以及自优化这三个步骤。这里需要注意的是,在本申请的另一些实施方式中,建议器205还可以包括更多或更少的模型,用于实现数据库的自监控、自诊断以及自优化的过程,在本申请实施例中,建议器205包括是三个模型仅为示意,后续不予赘述。
具体地,该建议器205通过编解码器,对数据库中进程的运行数据进行编码后再解码,从而得到编码数据,并将该编码数据与输入该编解码器的运行数据进行比对,得到异常数据。这里需要说明的是,利用编解码器得到异常数据的原理是:编解码器能还原正常的原始数据,而不能还原异常的原始数据,这样将输入的原始数据编码后再解码,得到编码数据,编码数据再与原始数据对比,就能得知是否存在异常数据。在得到异常数据后,若该运行数据属于系统指标数据(如,页面故障),则该建议器205可以进一步通过模型D,根据该异常数据诊断得到异常原因,其中,该模型D为基于深度学习算法构建的模型,例如,该模型D中可以包括LSRM模型以及分类器,具体地,建议器205通过调用LSRM模型将发现的异常数据编码成一个压缩向量(即降维/升维后的向量),然后利用学习型的分类器(如,二分类器、多分类器等)推理相应的根因(如,数据库备份操作);若该运行数据属于查询指标数据(如,平均延迟),则该建议器205还可以进一步通过模型E,根据该异常数据诊断得到异常原因,其中,该模型E为基于深度学习算法构建的模型。例如,该模型E可以包括Tree-LSTM模型以及softmax函数,具体地,建议器205通过调用Tree-LSTM模型对慢查询(即查询的执行时间长)进行编码,定位导致异常的物理算子(即执行算子)操作,再通过使用softmax函数识别导致异常的根因。
最后,建议器205在基于自监控、自诊断找到数据异常的根因后,会根据导致数据库系统性能下降的根因,选择相应的优化模块进行优化,比如,如果是因为缺少索引导致性能下降,建议器205可以调用索引选择模块,基于深度强化学习建立新的索引,使查询负载的性能得以提升(根因是索引没有建议);如果是由于参数导致的性能下降,建议器205可以分别从查询级别、连接级别、系统级别进行基于经验规则或强化学习的参数调优,优化的目的是使得系统尽可能少的出现异常的运行数据。
这里需要注意的是,建议器205所包括的优化模块与根因之间存在对应关系(但不一定是一一对应的关系),例如,可能一个优化模块对应一系列(即多个)的根因,也可能一个优化模块对应一个根因,具体本申请对此不做限定。作为一种示例,表1为建议器205中的优化模块与部分根因之间的对应关系的示意表。
表1、优化模块与部分根因之间的对应关系
基于上述所述,该建议器205主要用来实现如下三方面的功能:
(1)自监控
自监控数据库状态,并提供数据库运行时的运行数据(如,CPU使用率、响应时间、运行日志)。对于异常检测,本申请利用一种编解码器,以根据数据分布和指标相关性自动检测异常。具体地,通过编码器将运行数据转换为低维表示,并使用解码器对该低维表示进行恢复。若该编解码器不能很好地重建的数据则被视为异常数据。
(2)自诊断
自诊断旨在自动诊断异常,用于发现异常数据产生的根本原因。若异常数据是系统指标数据(如,锁冲突),则通过调用LSRM模型将发现的异常数据编码成一个压缩向量(即降维/升维后的向量),然后利用学习型的分类器(如,二分类器、多分类器等)推理相应的根因(如,数据库备份操作);若异常数据是查询指标数据(如,慢查询),则通过调用Tree-LSTM模型对慢查询进行编码,定位导致异常的物理算子(即执行算子)操作,再通过使用softmax函数识别导致异常的根因。
(3)自优化
自优化针对查询工作负载自动优化数据库,例如,索引/视图推荐。使用深度强化学习来自动推荐索引,学习型视图推荐利用一个编码器-解码器模型来自动推荐视图。自优化针对数据库系统进行调优,学习型调参模块采用深度强化学习技术来调整参数值。本申请实施例可以使用Actor-Critic模型来自动选择合适的参数值,可以支持SQL级、会话级和系统级参数调优。
综上所述,该建议器205的调用逻辑为:首先动态的收集数据库和查询执行的状态指标,然后利用自监控模块(即编解码器)发现异常数据。对于异常数据,自诊断模块分别利用系统诊断功能(即模型D)、查询诊断功能(即模型E)发现导致数据库性能下降的根因,然后指定自优化模块执行相应的优化功能。例如,如果根因是访问的列没有建立索引,自诊断模块会调用自优化模块的索引选择模块进行优化。
需要说明的是,在本申请的一些实施方式中,由于建议器205的模块功能是发现数据库运行过程中可能存在问题,并进行诊断和调优。因此,在本申请的一些实施方式中,该建议器103也可以不需要,本申请对此不做限定。
为便于理解,下面基于建议器205的原理,对建议器205的执行过程进行详细阐述,具体请参阅图5,图5为本申请实施例提供的建议器的一个原理示意图,该建议器包括自监控、自诊断、自优化三个部分。其中自监控可以根据数据库中进程的运行数据的性能指标判断数据库历史、当前、未来是否存在问题,判断数据库的异常或可能的异常状态。通过发掘数据库的异常状态来数据库自诊断、自优化功能,来解决数据库的实际问题。为便于阐述,假设该建议器分别包括自监控模块、自诊断模块、自优化模块,分别用于实现自监控、自诊断、自优化,其核心步骤如下:
1)自监控模块不断采集数据库性能指标,当数据库内部或外部发生异常时,可以通过相应的指标和系统日志来反映。因此,openGauss通过分析数据库和操作系统指标进行实时异常监控和发现。具体过程如下:
a、首先,训练数据收集器不断从数据库和操作系统中收集指标和日志,例如QPS、运行日志等,之后,将这些数据放在一起形成时间序列数据。
b、其次,采用基于重建的算法来发现异常,即正常的时间序列数据总是有规律的变化模式,异常的变化模式很有可能是系统异常。本申请实施例采用了一个带有注意力层的基于LSTM的自动编解码器。原始时间序列数据被编码为低维表示,解码器解析表示并尝试恢复原始数据。训练损失是重建质量。模型学习这些多维数据的分布,获得重构能力。无法重建(错误超过阈值)的数据被报告为异常。本申请实施例采用统计方法“极值理论”来确定动态阈值。因此,用户需要将系统灵敏度设置为1%或5%,它会根据历史数据计算相应的阈值:本发明首先对训练数据进行标准化,然后将处理后的数据输入时间序列自动编码器更新模型参数,模型具有重建正常数据库指标的能力后,openGauss收集重建误差并计算阈值。
2)若没有发现异常,则等待一段时间(即预设时长)后,重复执行步骤1);若发现异常,则执行步骤3)。
3)当发现数据库历史、当前或未来存在问题或潜在问题,则调用自诊断模块进行根因分析。
4)自诊断模块对发现的故障进行判断,若确实存在问题,则给出系统级或SQL语句级问题根因。具体过程如下:数据库自诊断功能可以识别出系统级、SQL语句级的故障或异常根因。其中,系统级故障分析方法采用LSTM+KNN算法实现;SQL语句级故障根因通过Tree-LSTM算法实现。对于定位出故障的根因,则调用自优化功能,给出对应的优化建议,从而进行问题解决。
5)通过自诊断给出的根因对数据库系统进行建议,调用自优化模块进行调优。具体过程如下:
a、自优化模块包括针对数据库系统特征优化参数配置。参数推荐是通过深度强化学习来实现的:首先,本申请实施例通过历史学习到的数据库参数配置及其对应表现进行建模,即在被选参数组成的搜索空间中搜索对应表现最优的参数组合;然后,深度强化学习模型将数据库状态和负载特征作为输入状态,根据从历史数据中学习的调参经验,选择合适的参数配置作为输出行为,从而给出最优的数据库参数优化方案。
b、自优化模块也包括针对数据库SQL语句的调优,例如,物化视图推荐与索引推荐。其中,物化视图推荐通过RNN与强化学习实现,通过分析用户的负载,采用枚举和评估的手段推荐可以创建的物化视图,用户可以通过创建该类物化视图来实现对负载的加速。索引推荐则是针对负载级别的索引推荐,根据用户的增删查改比例的不同给出与之适配的最优索引配置方案。
为了对本申请实施例所带来的有益效果有更为直观的认识,以下对本申请实施例所带来的技术效果作进一步的对比,对比结果分别如下:
(1)优化器201与三种重写策略(随机重写、自顶向下重写、启发式重写)的对比结果。
具体请参阅图6,图6为本申请实施例提供的优化器与三种重新策略对比的一个示意图,以查询重写为例,本申请实施例将openGauss中的查询重写与三种重写策略(随机重写、自顶向下重写、和启发式重写)进行比较。对于随机重写和自顶向下重写,本申请实施例在查询优化引擎Calcite中提取了82条重写规则,并用相应的策略重写了查询。此外,本申请实施例使用工具SQL-smith分别为TPC-H和JOB生成15,750和10,673个慢查询(>1s)。如图6所示,本重写策略在所有情况下都优于其他方法,即TPC-H的执行时间减少了49.7%以上,JOB的执行时间减少了36.8%以上。原因主要有两方面:首先,openGauss探索了执行成本低于PostgreSQL中默认自顶向下顺序的重写顺序。例如,使用外连接,PostgreSQL无法将谓词下推到输入表,而openGauss通过先将外连接转换为内连接,然后将谓词下推来解决问题。其次,openGauss中的估计模型预测了潜在的成本降低,openGauss据此选择了执行开销更低的重写顺序。此外,openGauss在TPC-H上的效果比JOB更好,因为TPC-H查询包含许多可以被查询重写优化的子查询,而JOB查询中的多连接将通过计划枚举器进一步优化。
综上所述,本申请实施例提供的数据库管理系统所包括的优化器201可以根据AI模型给出的优化方法进行SQL语句执行过程中的细粒度优化,提高SQL语句的执行效率,提高数据库性能表现。
(2)建议器205(若有)与两种索引策略(默认索引、人工设计的索引)的对比结果。
具体请参阅表2和表3,表2和表3为本申请实施例提供的建议器与两种索引策略对比的一个示意图,以索引选择为例,本发明在TPC-H和TPC-C上进行了实验,并将本申请实施例建议器与默认索引和人工设计的索引进行了比较。结果如表2和表3所示。本申请的索引选择算法在两个工作负载上的表现都优于默认索引和人工索引。因为本索引选择算法将系统统计信息编码到状态表示中,并能够根据历史数据优化索引选择策略,以便动态更新索引配置。
表2、索引程序
TPC-H(s) | TPC-C(tpmC) | |
数据库管理系统openGauss | 122.9 | 10202 |
数据库管理员DBA | 130.1 | 10001 |
默认设置 | 140.8 | 9700 |
表3、异常检测(TPC-C)
准确率 | 召回率 | F1分数 | |
数据库管理系统openGauss | 0.795 | 0.776 | 0.785 |
变分自编码器VAE | 0.302 | 0.821 | 0.441 |
生成式对抗网络GAN | 0.554 | 0.745 | 0.635 |
综上所述,本申请实施例提供的数据库管理系统所包括的优化器205(若有)可及时发现数据库历史、当前以及未来是否存在故障或异常,并根据业务类型以及特征,给出对应的故障根因,并提供最优的优化与配置方案。
(3)模型评估器204与两种已知性能评估方法的对比结果。
具体请参阅图7,图7为本申请实施例提供的模型评估器与BAL、DL两种已知性能评估方法对比的一个示意图,其中,BAL估计平均缓冲区访问延迟,并使用线性回归来预测并发查询的查询延迟;DL采用根据查询计划结构设计的神经网络,来预测单个查询的性能。本申请实施例在JOB上比较了预测精度和预测时间,结果如图7所示,由图7的比较结果可知,本申请实施例提供的模型评估器的错误率最低,比BAL低约29.9倍,比DL低22.5倍。原因有两方面:首先,本申请实施例提供的模型评估器中的工作负载图编码了资源争用等并发因素,与串行执行相比,这使JOB的查询延迟增加了20%以上。相反,BAL收集了缓冲区访问延迟,而DL依赖于单个查询功能。其次,openGauss利用图嵌入网络将结构信息直接映射到性能因素,可以在工作负载变化时提高通用性。相反,BAL使用了一种线性回归方法,该方法需要为单个工作负载提供许多统计样本。此外,由图7可知,本申请实施例提供的模型评估器的预测延迟比BAL和DL都少,并且当并发级别增加时,本申请实施例提供的模型评估器的预测延迟相对稳定。对于openGauss,本申请实施例提供的模型评估器同时预测所有顶点的执行时间。它嵌入了工作负载图中所有顶点的局部化图,因此工作负载的总预测时间接近于预测具有最大局部化图的顶点。而对于BAL,它需要最长的预测时间,因为它在执行工作负载时预测了性能。对于DL,它以自底向上的方式在查询计划树中传播中间数据特征,这比openGauss花费的时间相对较长。
综上所述,本申请实施例提供的数据库管理系统所包括的模型评估器204可有效、及时的校验新模型是否有效,若有效果,则进行部署,否则就放弃模型更新。
(4)训练数据收集器202以及模型管理器203在已知的数据库管理系统中不存在,本申请构建的数据库管理系统所包括的这两个模块可以保证数据处理的可靠性。
基于上述图1至图7中对本申请实施例构建的数据库管理系统的描述可知,本申请实施例提供了一款自治的数据库框架,其基于机器学习算法和专家经验,实现自学习内核和建议器,构筑数据库全方位的自治功能。
具体地,本申请实施例构建的数据库管理系统中内置数据库内核的学习型的优化器,具体可以包括基于MCTS的重写器、基于Tree-LSTM的代价估计器、基于RL的计划生成器,以实现优化器高效查询优化,满足多场景业务诉求;本发明实施例提供的数据库管理系统还可以包括数据库的学习型的建议器,其基于机器学习技术,实现自动异常监控、自动系统诊断、自动慢查询诊断以及自动性能优化(如,参数调优、索引推荐、视图推荐)功能,满足客户一键式运维管理操作,提升运维效率及数据库执行效率;本发明实施例提供的数据库管理系统还可以包括一个高效的模型评估器,其基于机器学习技术,预估数据库管理系统中所部署模型的表现,判断应用对应模型带来的收益,保证该数据库管理系统一直处于高性能和高可靠运行;本发明实施例提供的数据库管理系统还可以包括基于统一接口的训练数据收集器和模型管理器,训练数据收集器自动收集数据库中进程的运行数据,包括数据库运行指标、查询日志、系统日志等,利用这些信息生成数据库管理系统中所部署模型的训练数据;模型管理器则提供统一接口管理、控制模型版本,动态更新和替换各个模块使用的模型。
基于上述所述的数据库管理系统,具体可以解决现有传统数据库技术存在的以下技术问题:
1)传统数据库技术有不同模块和功能,难以选择合适的自动化算法从而获取最大化性能收益。如果需要把可能存在性能瓶颈的数据库模块替换成学习型模型,首先需要选择合适的机器学习模型或算法。比如,深度学习模型可以被应用到代价估计问题,因为深度学习能够拟合高维数据列的数据特征和访问相关性;深度强化学习可以被应用到参数调优问题,因为深度强化学习不要求预先提供训练数据,可以在少量样本的条件下对连续的高维参数空间做高效的探索。本申请实施例经过模型评估器的性能评估,为复杂多变的业务场景、大并发及高性能业务,提供合适的机器学习模型或算法。
2)模型有效性评估难。在设计一个新的学习型模型部署到数据库之前,需要预先确认上述模型是否较传统算法有性能提升。传统方法往往依赖于专家经验或大量的运行测试,开销大而且评价效率低。本申请实施例通过设计一款预判不同学习型模型性能在典型应用场景下性能的模型评估器。
3)传统数据库的各个模块都基于经典的启发式或规则定义的算法。然而,将各个模块替换成机器学习模型后,每个机器学习模型都需要收集数据和训练模型,并在场景变化时进行模型更新,如果分别进行上述操作,模型的训练和管理代价非常高。本申请实施例提供统一接口的训练数据收集器和模型管理器,根据采集信息变化,评估模型可用性,进行模型自动更新。
在图1至图5所对应的实施例的基础上,下面对应用该数据库管理系统的方法进行介绍,具体请参阅图8,图8为本申请实施例提供的数据处理方法的一个流程示意图,该方法具体可以包括如下步骤:
801、计算机设备接收客户端向数据库发送的SQL语句,该数据库部署于计算机设备内,该数据库内包括优化器以及原生内核组件,该优化器包括n个模型,n≥1。
首先,本地的计算机设备(即图1中所述的本地设备)接收由客户端设备向该计算机设备中部署的数据库发送的SQL语句,其中,该数据库内包括优化器以及数据库原生内核组件,该优化器包括n个模型,n≥1。
802、在第一目标模型不满足第二预设要求的情况下,计算机设备根据该SQL语句,通过优化器中包括的n个模型得到目标物理计划,该目标物理计划为执行开销满足第一预设要求的物理计划,该第一目标模型为n个模型中的一个。
计算机设备在接收到客户端设备发送的SQL语句后,会先判断优化器中的n个模型是否存在有模型不满足某事先预设的要求(可称为第二预设要求),若存在第一目标模型(即n个模型中的一个)不满足该第二预设要求,则计算机设备会根据该SQL语句,通过优化器中包括的n个模型得到目标物理计划,其中,该目标物理计划为执行开销满足第一预设要求的物理计划。
需要说明的是,在本申请的一些实施方式中,执行开销满足第一预设要求包括但不限于:1)目标物理计划的执行开销在q个执行开销中开销最低,该q个执行开销为基于输入数据库的SQL语句生成的q个物理计划各自对应的执行开销,一个物理计划对应一个执行开销,其中,q≥1;2)目标物理计划的执行开销低于某个预设值(可称为第一预设阈值)。为便于阐述,在本申请后续实施例中,均以目标物理计划的执行开销在q个执行开销中开销最低作为执行开销满足第一预设要求的情形,后续不予赘述。
还需要说明的是,在本申请的一些实施方式中,第一目标模型不满足第二预设要求可以包括但不限于:1)第一目标模型的性能没有出现性能下降的情况;2)第一目标模型的性能虽然出现下降,但是下降的程度没有达到某个预设值(可称为第二预设阈值);3)对该第一目标模型的实时性能进行评估并预测接下来的性能表现,假设预测出的第一目标模型的性能下降的概率没有达到某个预设值(可称为第三预设阈值),如预测的性能要下降的概率没有达到80%;4)第一目标模型持续运行的时长没有达到某个预设时长,如,第一目标模型持续运行的时长还没有达到30分钟。
还需要说明的是,在本申请的一些实施方式中,作为一种示例,优化器具体可以包括三个模型,可分别称为模型A、模型B、模型C,分别用于执行逻辑查询重写、代价估计以及物理计划生成的步骤。在这种情况下,计算机设备根据该SQL语句,通过优化器中包括的n个模型得到目标物理计划的方式具体可以是:首先,该计算机设备通过模型A,对输入数据库的SQL语句(也可称为SQL查询)进行逻辑查询重写,从而得到重写后的逻辑计划,其中,该模型A为基于树搜索算法构建的模型,例如,可以是蒙特卡洛树搜索算法;之后,再通过模型B,根据该逻辑计划生成q个物理计划,其中,该模型B为基于深度学习算法构建的模型,例如,可以是基于Tree-LSTM的模型,q≥1;最后通过模型C计算与该q个物理计划对应的q个执行开销(一个物理计划对应一个执行开销),并根据该q个执行开销确定最终待执行的目标物理计划,其中,该模型C为基于强化学习算法构建的模型,例如,可以是基于深度强化学习(deep Q-learning,DQN)的模型。
这里需要注意的是,在本申请的另一些实施方式中,优化器还可以包括更多或更少的模型,用于实现逻辑查询重写、代价估计以及物理计划生成的过程,在本申请实施例中,优化器包括是三个模型仅为示意,后续不予赘述。
还需要注意的是,在本申请实施例中,该计算机设备所涉及的优化器的具体功能以及调用逻辑可参阅上述图2所对应实施例中描述的优化器201部分,具体此处不予赘述。
803、计算机设备执行该目标物理计划。
计算机设备在得到最终的目标物理计划后,会执行该目标物理计划。这个执行的过程实质就是利用生成的目标物理计划执行输入的该SQL语句的实际逻辑。
在本申请上述实施方式中,阐述了计算机设备如何基于数据库中所包括的优化器得到目标物理计划并最终执行该目标物理计划,该计算机设备中所部署的数据库包括具有n个模型的优化器,从而替代了传统启发式优化器,通过与机器学习技术相结合,实现了将逻辑查询转换为执行效率更高的物理执行计划,并可以有效解决当前数据库体系结构问题导致的代价评估不准确、复杂SQL语句生成物理计划差的问题。
需要说明的是,在本申请的一些实施方式中,该计算机设备还可以将部署于其中的数据库中进程的运行数据向建议器发送,该建议器可以部署于该计算机设备中,也不可以部署于远端设备,此处不做限定。建议器接收到该运行数据,可基于该运行数据发送异常数据,并基于得到的异常数据诊断出异常原因,最后基于异常原因优化与该异常原因对应的自优化模块,以减小后续数据库中进程的运行数据发生异常的概率,其中,建议器包括p个模型,p≥1。
需要注意的是,在本申请实施例中,本申请实施例所涉及的建议器的具体功能以及调用逻辑可参阅上述图2所对应实施例中描述的建议器205部分,具体此处不予赘述。
在本申请上述实施方式中,具体阐述了计算机设备还可以将数据库中进程的运行数据反馈给建议器,建议器可以基于该运行数据给出数据库全方位的优化建议,可以实现无人值守的数据库性能监控、根因识别,极大解放运维人力,并可以帮助数据库系统迅速恢复异常或提升性能。
还需要说明的是,在本申请的另一些实施方式中,该计算机设备还可以将部署于其中的数据库中进程的运行数据向建议器发送之外,也可以将该运行数据向训练数据收集器发送,该训练数据收集器可以部署于该计算机设备中,也不可以部署于远端设备,此处不做限定。训练数据收集器接收到该运行数据后,可以根据该运行数据得到训练数据,并基于这些训练数据构建m个训练集,m≥1。
需要注意的是,在本申请实施例中,本申请实施例所涉及的训练数据收集器的具体功能以及调用逻辑可参阅上述图2所对应实施例中描述的训练数据收集器202部分,具体此处不予赘述。
在本申请上述实施方式中,具体阐述了计算机设备还可以将数据库中进程的运行数据反馈给训练数据收集器,该训练数据收集器可基于数据库中进程的运行数据生成数据库所涉及的模型的训练数据,可实现持续优化数据库系统,降低数据库系统的误判概率,提供可信的自治运维服务。
还需要说明的是,在本申请上述实施方式中,阐述了第一目标模型不满足第二预设要求所包括但不限于的情形,反之,第一目标模型满足第二预设要求包括但不限于的情形则是:1)第一目标模型的性能开始出现性能下降的情况;2)第一目标模型的性能不仅出现下降,并且下降的程度达到某个预设值(可称为第二预设阈值);3)对该第一目标模型的实时性能进行评估并预测接下来的性能表现,例如,可通过模型评估器204对该第一目标模型的性能进行预测,假设预测出的第一目标模型的性能下降的概率达到某个预设值(可称为第三预设阈值),如预测的性能要下降的概率达到80%;4)第一目标模型持续运行的时长达到某个预设时长,如,第一目标模型持续运行的时长已达到30分钟。
因此,在本申请的另一些实施方式中,若第一目标模型满足第二预设要求,该计算机设备还可以进一步向模型管理器(该模型管理器可部署于该计算机设备中,也可以不部署于该计算机设备,此处不做限定)发送第一指令,该第一指令用于指示该模型管理器对该第一目标模型进行微调(finetune),并且,在第二目标模型的性能满足某预设要求(可称为第三预设要求)的情况下,计算机设备接收模型管理器发送的该第二目标模型的模型参数,其中,该第二目标模型为该模型管理器利用与第一目标模型对应的目标训练集对该第一目标模型进行微调得到的模型,该目标训练集为m个训练集中的一个,最后,计算机设备再将该第一目标模型更新为第二目标模型,并通过更新后的n个模型(此时更新后的n个模型中不包括第一目标模型,包括的是第二目标模型)得到目标物理计划。
需要说明的是,在本申请的一些实施方式中,第二目标模型满足第三预设要求可以包括但不限于:1)该第二目标模型的性能相比第一目标模型的性能提高了某个预设值(可称为第四预设阈值),作为一个示例,第四预设阈值可以为零,说明只要第二目标模型的性能达到了原来第一目标模型的性能的水平,就认为第二目标模型满足第三预设要求;作为另一示例,第四预设阈值也可以是大于零的某个值或某个比例,说明只有第二目标模型的性能相对原来第一目标模型的性能提高到了一定程度,才认为第二目标模型满足第三预设要求;2)第二目标模型的性能相比数据库内原生内核组件的性能提高了第五预设阈值。即验证该第二目标模型相对于传统数据库算法的性能提升,如果性能提升达到一定阈值,则实际替换数据相应模块使用的模型,否则,还是采用传统数据库算法执行目标物理计划。其中,第五预设阈值的取值可以为零,也可以是大于零的某个值或某个比例,具体请参阅上述第一种方式,此处不予赘述。
在本申请上述实施方式中,具体阐述了计算机设备在第一目标模型满足第二预设要求的情况下,模型管理器调用训练数据收集器中对应的目标训练集对该第一目标模型进行微调,可实现根据数据库的实时运行状态动态更新和替换数据库中使用的对应模型。
需要注意的是,在本申请实施例中,本申请实施例所涉及的模型管理器的具体功能以及调用逻辑可参阅上述图2所对应实施例中描述的模型管理器203部分,具体此处不予赘述。
还需要说明的是,若该第二目标模型的性能不满足所述第三预设要求,那么该计算机设备还将接收模型评估器发送的第二指令,该第二指令用于指示该数据库采用数据库内原生内核组件生成最终的目标物理计划,其中,该模型评估器可以部署于该计算机设备中,也不可以部署于远端设备,此处不做限定。该模型评估器就用于评估该第二目标模型的性能。
在本申请上述实施方式中,具体阐述了当微调后的第二目标模型依然没有满足第三预设要求,则计算机设备接收模型评估器第二指令,以指示该数据库采用数据库传统算法(即原生内核组件)来生成目标物理计划。本申请实施例为目标物理计划的生成提供了多种选择,具备灵活性。
需要注意的是,在本申请实施例中,本申请实施例所涉及的模型评估器的具体功能以及调用逻辑可参阅上述图2所对应实施例中描述的模型评估器204部分,具体此处不予赘述。
在图8所对应的实施例的基础上,为了更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的计算机设备。具体参阅图9,图9为本申请实施例提供的一种计算机设备的示意图,该计算机设备900具体可以包括:接收模块901、确定模块902以及执行模块903,其中,接收模块901,用于接收客户端向该数据库发送的SQL语句;确定模块902,用于在第一目标模型不满足第二预设要求的情况下,根据该SQL语句,通过该n个模型得到目标物理计划,该目标物理计划为执行开销满足第一预设要求的物理计划,该第一目标模型为该n个模型中的一个;执行模块903,用于执行该目标物理计划。
在一种可能的设计中,该n个模型包括第三模型、第四模型以及第五模型,在这种情况下,确定模块902,具体用于:通过该第三模型,对该SQL语句进行逻辑查询重写,得到重写后的逻辑计划,该第三模型为基于树搜索算法构建的模型;通过该第四模型,根据该逻辑计划生成q个物理计划,该第四模型为基于深度学习算法构建的模型,q≥1;通过该第五模型,计算与该q个物理计划对应的q个执行开销,并根据该q个执行开销确定该目标物理计划,一个物理计划对应一个执行开销,该第五模型为基于强化学习算法构建的模型。
在一种可能的设计中,计算机设备900还包括发送模块904,该发送模块904,用于:将该数据库中进程的运行数据向建议器发送,以使得建议器基于该运行数据发现异常数据,并使得该建议器基于该异常数据诊断出异常原因,并基于该异常原因优化与该异常原因对应的自优化模块,以减小该运行数据发生异常的概率,其中,该建议器包括p个模型,p≥1。
在一种可能的设计中,该发送模块904,还可以用于:将该数据库中进程的运行数据向训练数据收集器发送,以使得该训练数据收集器根据该运行数据得到训练数据,并基于该训练数据构建m个训练集,m≥1。
在一种可能的设计中,该发送模块904,还可以用于:在该第一目标模型满足该第二预设要求的情况下,向模型管理器发送第一指令,该第一指令用于指示该模型管理器对该第一目标模型进行微调,该第一目标模型为该n个模型中的一个;该接收模块901,还可以用于:在第二目标模型的性能满足第三预设要求的情况下,接收该模型管理器发送的该第二目标模型的模型参数,该第二目标模型为该模型管理器利用与该第一目标模型对应的目标训练集对该第一目标模型进行微调得到的模型,该目标训练集为该m个训练集中的一个;该确定模块902,还可以用于:将该第一目标模型更新为该第二目标模型,并通过更新后的n个模型得到该目标物理计划。
在一种可能的设计中,该接收模块901,还可以用于:在该第二目标模型的性能不满足该第三预设要求的情况下,接收模型评估器发送的第二指令,该第二指令用于指示该数据库采用该数据库内原生内核组件生成该目标物理计划,该模型评估器用于评估该第二目标模型的性能。
在一种可能的设计中,该第一目标模型满足第二预设要求至少包括如下任意一种:该第一目标模型的性能出现下降;或,该第一目标模型的性能下降的程度达到第二预设阈值,或,预测出的该第一目标模型的性能下降的概率达到第三预设阈值;或,该第一目标模型持续运行的时长满足预设时长。
在一种可能的设计中,第二目标模型的性能满足该第三预设要求至少包括如下任意一项:该第二目标模型的性能相比该第一目标模型的性能提高了第四预设阈值;或,该第二目标模型的性能相比该数据库内原生内核组件的性能提高了第五预设阈值。
在一种可能的设计中,该执行开销满足第一预设要求至少包括如下任意一种:该目标物理计划的执行开销在q个执行开销中开销最低,该q个执行开销为基于该SQL语句生成的q个物理计划各自对应的执行开销,一个物理计划对应一个执行开销,q≥1;或,该目标物理计划的执行开销低于第一预设阈值。
需要说明的是,计算机设备900中各模块/单元之间的信息交互、执行过程等内容,与本申请中图8对应的方法实施例基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
接下来介绍本申请实施例提供的另一种计算机设备,请参阅图10,图10为本申请实施例提供的计算机设备的一种结构示意图,计算机设备1000上可以部署有图9对应实施例中所描述的计算机设备900,用于实现图9对应实施例中计算机设备900的功能,具体的,计算机设备1000由一个或多个服务器实现,计算机设备1000可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1022和存储器1032,一个或一个以上存储应用程序1042或数据1044的存储介质1030(例如一个或一个以上海量存储设备)。其中,存储器1032和存储介质1030可以是短暂存储或持久存储。存储在存储介质1030的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对计算机设备1000中的一系列指令操作。更进一步地,中央处理器1022可以设置为与存储介质1030通信,在计算机设备1000上执行存储介质1030中的一系列指令操作。
计算机设备1000还可以包括一个或一个以上电源1026,一个或一个以上有线或无线网络接口1050,一个或一个以上输入输出接口1058,和/或,一个或一个以上操作系统1041,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
本申请实施例中,中央处理器1022,用于执行图8对应实施例中的计算机设备执行的步骤。例如,中央处理器1022可以用于:首先,接收由客户端设备向该计算机设备中部署的数据库发送的SQL语句,其中,该数据库内包括优化器以及数据库原生内核组件,该优化器包括n个模型,n≥1。在接收到客户端设备发送的SQL语句后,会先判断优化器中的n个模型是否存在有模型不满足某事先预设的要求(可称为第二预设要求),若存在第一目标模型(即n个模型中的一个)不满足该第二预设要求,则根据该SQL语句,通过优化器中包括的n个模型得到目标物理计划,其中,该目标物理计划为执行开销满足第一预设要求的物理计划。在得到最终的目标物理计划后,会执行该目标物理计划,这个执行的过程实质就是利用生成的目标物理计划执行输入的该SQL语句的实际逻辑。
需要说明的是,中央处理器1022执行上述各个步骤的具体方式,与本申请中图8对应的方法实施例基于同一构思,其带来的技术效果也与本申请上述实施例相同,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
Claims (25)
1.一种数据库管理系统,其特征在于,包括:
优化器、训练数据收集器、模型管理器、模型评估器,所述优化器中包括n个模型,n≥1;
所述优化器,用于根据输入所述数据库的SQL语句,通过所述n个模型得到目标物理计划,所述目标物理计划为执行开销满足第一预设要求的物理计划;
所述训练数据收集器,用于根据所述数据库中进程的运行数据得到训练数据,并基于所述训练数据构建m个训练集,m≥1;
所述模型管理器,用于在第一目标模型满足第二预设要求的情况下,利用与所述第一目标模型对应的目标训练集对所述第一目标模型进行微调,得到第二目标模型,所述第一目标模型为所述n个模型中的一个,所述目标训练集为所述m个训练集中的一个;
所述模型评估器,用于评估所述第二目标模型的性能,并在所述第二目标模型的性能满足第三预设要求的情况下,将所述第一目标模型更新为所述第二目标模型。
2.根据权利要求1所述的系统,其特征在于,所述系统还包括:
建议器,所述建议器包括p个模型,p≥1;
所述建议器,用于发现所述运行数据中的异常数据,并基于所述异常数据诊断出异常原因;
所述建议器,还用于基于所述异常原因优化与所述异常原因对应的优化模块,以减小所述运行数据发生异常的概率。
3.根据权利要求2所述的系统,其特征在于,所述p个模型包括编解码器、第一模型以及第二模型,所述建议器,具体用于:
通过所述编解码器,对所述运行数据进行编码后再解码,得到编码数据,并将所述编码数据与所述运行数据进行比对,得到所述异常数据;
通过所述第一模型,在所述运行数据属于系统指标数据的情况下,根据所述异常数据诊断得到所述异常原因,所述第一模型为基于深度学习算法构建的模型;
通过所述第二模型,在所述运行数据属于查询指标数据的情况下,根据所述异常数据诊断得到所述异常原因,所述第二模型为基于深度学习算法构建的模型。
4.根据权利要求3所述的系统,其特征在于,
所述第一模型包括长短时记忆模型LSTM以及分类器;
所述第二模型包括树长短时记忆模型Tree-LSTM以及softmax函数。
5.根据权利要求2-4中任一项所述的系统,其特征在于,所述第一目标模型还包括:
所述p个模型中的任意一个。
6.根据权利要求1-5中任一项所述的系统,其特征在于,所述n个模型包括第三模型、第四模型以及第五模型,所述优化器,具体用于:
通过所述第三模型,对输入所述数据库的SQL语句进行逻辑查询重写,得到重写后的逻辑计划,所述第三模型为基于树搜索算法构建的模型;
通过所述第四模型,根据所述逻辑计划生成q个物理计划,所述第四模型为基于深度学习算法构建的模型,q≥1;
通过所述第五模型,计算与所述q个物理计划对应的q个执行开销,并根据所述q个执行开销确定所述目标物理计划,一个物理计划对应一个执行开销,所述第五模型为基于强化学习算法构建的模型。
7.根据权利要求1-6中任一项所述的系统,其特征在于,所述模型评估器,还用于:
在所述第二目标模型的性能未满足所述第三预设要求的情况下,触发所述数据库采用所述数据库内原生内核组件生成目标物理计划。
8.根据权利要求7所述的系统,其特征在于,所述模型评估器,还用于:
将模型更新失败的信息向所述模型管理器反馈,以使得所述模型管理器基于所述信息调整对所述第一目标模型进行微调的策略,所述模型更新失败为所述第二目标模型的性能未满足所述第三预设要求。
9.根据权利要求1-8中任一项所述的系统,其特征在于,所述执行开销满足第一预设要求至少包括如下任意一种:
所述目标物理计划的执行开销在q个执行开销中开销最低,所述q个执行开销为基于所述SQL语句生成的q个物理计划各自对应的执行开销,一个物理计划对应一个执行开销,q≥1;
或,
所述目标物理计划的执行开销低于第一预设阈值。
10.根据权利要求1-9中任一项所述的系统,其特征在于,所述第一目标模型满足第二预设要求至少包括如下任意一种:
所述第一目标模型的性能出现下降;
或,
所述第一目标模型的性能下降的程度达到第二预设阈值;
或,
预测出的所述第一目标模型的性能下降的概率达到第三预设阈值;
或,
所述第一目标模型持续运行的时长达到预设时长。
11.根据权利要求1-10中任一项所述的系统,其特征在于,所述第二目标模型的性能满足所述第三预设要求至少包括如下任意一种:
所述第二目标模型的性能相比所述第一目标模型的性能提高了第四预设阈值;
或,
所述第二目标模型的性能相比所述数据库内原生内核组件的性能提高了第五预设阈值。
12.一种数据处理方法,其特征在于,所述方法应用于计算机设备,所述计算机设备部署有数据库,所述数据库内包括优化器以及原生内核组件,所述优化器包括n个模型,n≥1,所述方法包括:
所述计算机设备接收客户端向所述数据库发送的SQL语句;
在第一目标模型不满足第二预设要求的情况下,所述计算机设备根据所述SQL语句,通过所述n个模型得到目标物理计划,所述目标物理计划为执行开销满足第一预设要求的物理计划,所述第一目标模型为所述n个模型中的一个;
所述计算机设备执行所述目标物理计划。
13.根据权利要求12所述的方法,其特征在于,所述n个模型包括第三模型、第四模型以及第五模型,所述计算机设备根据所述SQL语句,通过所述n个模型得到目标物理计划包括:
所述计算机设备通过所述第三模型,对所述SQL语句进行逻辑查询重写,得到重写后的逻辑计划,所述第三模型为基于树搜索算法构建的模型;
所述计算机设备通过所述第四模型,根据所述逻辑计划生成q个物理计划,所述第四模型为基于深度学习算法构建的模型,q≥1;
所述计算机设备通过所述第五模型,计算与所述q个物理计划对应的q个执行开销,并根据所述q个执行开销确定所述目标物理计划,一个物理计划对应一个执行开销,所述第五模型为基于强化学习算法构建的模型。
14.根据权利要求12-13中任一项所述的方法,其特征在于,所述方法还包括:
所述计算机设备将所述数据库中进程的运行数据向建议器发送,以使得所述建议器基于所述运行数据发现异常数据,并使得所述建议器基于所述异常数据诊断出异常原因,并基于所述异常原因优化与所述异常原因对应的自优化模块,以减小所述运行数据发生异常的概率,其中,所述建议器包括p个模型,p≥1。
15.根据权利要求12-14中任一项所述的方法,其特征在于,所述方法还包括:
所述计算机设备将所述数据库中进程的运行数据向训练数据收集器发送,以使得所述训练数据收集器根据所述运行数据得到训练数据,并基于所述训练数据构建m个训练集,m≥1。
16.根据权利要求15所述的方法,其特征在于,所述方法还包括:
在所述第一目标模型满足所述第二预设要求的情况下,所述计算机设备向模型管理器发送第一指令,所述第一指令用于指示所述模型管理器对所述第一目标模型进行微调,所述第一目标模型为所述n个模型中的一个;
在第二目标模型的性能满足第三预设要求的情况下,所述计算机设备接收所述模型管理器发送的所述第二目标模型的模型参数,所述第二目标模型为所述模型管理器利用与所述第一目标模型对应的目标训练集对所述第一目标模型进行微调得到的模型,所述目标训练集为所述m个训练集中的一个;
所述计算机设备将所述第一目标模型更新为所述第二目标模型,并通过更新后的n个模型得到所述目标物理计划。
17.根据权利要求16所述的方法,其特征在于,所述方法还包括:
在所述第二目标模型的性能不满足所述第三预设要求的情况下,所述计算机设备接收模型评估器发送的第二指令,所述第二指令用于指示所述数据库采用所述数据库内原生内核组件生成所述目标物理计划,所述模型评估器用于评估所述第二目标模型的性能。
18.根据权利要求16-17中任一项所述的方法,其特征在于,所述第一目标模型满足第二预设要求至少包括如下任意一种:
所述第一目标模型的性能出现下降;
或,
所述第一目标模型的性能下降的程度达到第二预设阈值;
或,
预测出的所述第一目标模型的性能下降的概率达到第三预设阈值;
或,
所述第一目标模型持续运行的时长满足预设时长。
19.根据权利要求16-18中任一项所述的方法,其特征在于,所述第二目标模型的性能满足所述第三预设要求至少包括如下任意一种:
所述第二目标模型的性能相比所述第一目标模型的性能提高了第四预设阈值;
或,
所述第二目标模型的性能相比所述数据库内原生内核组件的性能提高了第五预设阈值。
20.根据权利要求12-19中任一项所述的方法,其特征在于,所述执行开销满足第一预设要求至少包括如下任意一种:
所述目标物理计划的执行开销在q个执行开销中开销最低,所述q个执行开销为基于所述SQL语句生成的q个物理计划各自对应的执行开销,一个物理计划对应一个执行开销,q≥1;
或,
所述目标物理计划的执行开销低于第一预设阈值。
21.一种计算机设备,所述设备具有实现权利要求12-20中任一项所述方法的功能,所述功能通过硬件或通过硬件执行相应的软件实现,所述硬件或所述软件包括一个或多个与所述功能相对应的模块。
22.一种计算机设备,包括处理器和存储器,所述处理器与所述存储器耦合,其特征在于,
所述存储器,用于存储程序;
所述处理器,用于执行所述存储器中的程序,使得所述计算机设备执行如权利要求12-20中任一项所述的方法。
23.一种计算机可读存储介质,包括程序,当其在计算机上运行时,使得计算机执行如权利要求12-20中任一项所述的方法。
24.一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如权利要求12-20中任一项所述的方法。
25.一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行如权利要求12-20中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110930569.8A CN115705322A (zh) | 2021-08-13 | 2021-08-13 | 一种数据库管理系统、数据处理方法及设备 |
PCT/CN2022/111991 WO2023016537A1 (zh) | 2021-08-13 | 2022-08-12 | 一种数据库管理系统、数据处理方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110930569.8A CN115705322A (zh) | 2021-08-13 | 2021-08-13 | 一种数据库管理系统、数据处理方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115705322A true CN115705322A (zh) | 2023-02-17 |
Family
ID=85180159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110930569.8A Pending CN115705322A (zh) | 2021-08-13 | 2021-08-13 | 一种数据库管理系统、数据处理方法及设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115705322A (zh) |
WO (1) | WO2023016537A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116108025A (zh) * | 2023-04-14 | 2023-05-12 | 安元科技股份有限公司 | 一种数据虚拟化性能优化方法 |
CN116627773A (zh) * | 2023-07-21 | 2023-08-22 | 四川发展环境科学技术研究院有限公司 | 产销差统计平台系统的异常分析方法及系统 |
CN116821171A (zh) * | 2023-06-27 | 2023-09-29 | 杭州云之重器科技有限公司 | 一种生成新虚拟视图加速计算任务的方法 |
CN118153065A (zh) * | 2024-05-09 | 2024-06-07 | 青岛国创智能家电研究院有限公司 | 基于图神经网络的密码误用漏洞识别方法及装置、系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7979422B2 (en) * | 2008-07-30 | 2011-07-12 | Oracle International Corp. | Hybrid optimization strategies in automatic SQL tuning |
CN106991116B (zh) * | 2017-02-10 | 2020-04-14 | 阿里巴巴集团控股有限公司 | 数据库执行计划的优化方法和装置 |
CN111813888A (zh) * | 2019-04-12 | 2020-10-23 | 微软技术许可有限责任公司 | 训练目标模型 |
CN112215357A (zh) * | 2020-09-29 | 2021-01-12 | 三一专用汽车有限责任公司 | 模型优化方法、装置、设备和计算机可读存储介质 |
-
2021
- 2021-08-13 CN CN202110930569.8A patent/CN115705322A/zh active Pending
-
2022
- 2022-08-12 WO PCT/CN2022/111991 patent/WO2023016537A1/zh active Application Filing
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116108025A (zh) * | 2023-04-14 | 2023-05-12 | 安元科技股份有限公司 | 一种数据虚拟化性能优化方法 |
CN116108025B (zh) * | 2023-04-14 | 2023-08-01 | 安元科技股份有限公司 | 一种数据虚拟化性能优化方法 |
CN116821171A (zh) * | 2023-06-27 | 2023-09-29 | 杭州云之重器科技有限公司 | 一种生成新虚拟视图加速计算任务的方法 |
CN116821171B (zh) * | 2023-06-27 | 2024-04-19 | 杭州云之重器科技有限公司 | 一种生成新虚拟视图加速计算任务的方法 |
CN116627773A (zh) * | 2023-07-21 | 2023-08-22 | 四川发展环境科学技术研究院有限公司 | 产销差统计平台系统的异常分析方法及系统 |
CN116627773B (zh) * | 2023-07-21 | 2023-09-22 | 四川发展环境科学技术研究院有限公司 | 产销差统计平台系统的异常分析方法及系统 |
CN118153065A (zh) * | 2024-05-09 | 2024-06-07 | 青岛国创智能家电研究院有限公司 | 基于图神经网络的密码误用漏洞识别方法及装置、系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2023016537A1 (zh) | 2023-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11567937B2 (en) | Automated configuration parameter tuning for database performance | |
CN115705322A (zh) | 一种数据库管理系统、数据处理方法及设备 | |
Schaarschmidt et al. | Lift: Reinforcement learning in computer systems by learning from demonstrations | |
CN103513983A (zh) | 用于预测性警报阈值确定工具的方法和系统 | |
US20220067008A1 (en) | Method and apparatus for determining configuration knob of database | |
CN108804473B (zh) | 数据查询的方法、装置和数据库系统 | |
WO2004038587A2 (en) | Enterprise multi-agent software system | |
CN109634924A (zh) | 基于机器学习的文件系统参数自动调优方法及系统 | |
US10963802B1 (en) | Distributed decision variable tuning system for machine learning | |
CN112181659B (zh) | 云仿真内存资源预测模型构建方法与内存资源预测方法 | |
Sîrbu et al. | Towards operator-less data centers through data-driven, predictive, proactive autonomics | |
JP7481902B2 (ja) | 管理計算機、管理プログラム、及び管理方法 | |
Gu et al. | Efficient dynamic clustering: Capturing patterns from historical cluster evolution | |
CN115544029A (zh) | 一种数据处理方法及相关装置 | |
CN117971384A (zh) | 一种基于容器和大数据的自动化运维方法 | |
Valavala et al. | Automatic database index tuning using machine learning | |
Koutsoumpakis | Spark-based application for abnormal log detection | |
KR102480518B1 (ko) | 신용평가 모델 업데이트 또는 교체 방법 및 장치 | |
Halford et al. | Selectivity correction with online machine learning | |
US20230018525A1 (en) | Artificial Intelligence (AI) Framework to Identify Object-Relational Mapping Issues in Real-Time | |
KR20080087571A (ko) | 상황 예측 시스템 및 그 방법 | |
Yedida et al. | Old but Gold: Reconsidering the value of feedforward learners for software analytics | |
Wu et al. | Progressive neural index search for database system | |
CN117539520B (zh) | 固件自适应升级方法、系统以及设备 | |
Zhou et al. | A user behavior anomaly detection approach based on sequence mining over data streams |
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 |