CN113806190A - 一种预测数据库管理***的性能的方法、装置及*** - Google Patents

一种预测数据库管理***的性能的方法、装置及*** Download PDF

Info

Publication number
CN113806190A
CN113806190A CN202010555420.1A CN202010555420A CN113806190A CN 113806190 A CN113806190 A CN 113806190A CN 202010555420 A CN202010555420 A CN 202010555420A CN 113806190 A CN113806190 A CN 113806190A
Authority
CN
China
Prior art keywords
performance
feature
feature set
prediction
historical
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
Application number
CN202010555420.1A
Other languages
English (en)
Inventor
岳行之
杨迪
宋清怡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202010555420.1A priority Critical patent/CN113806190A/zh
Publication of CN113806190A publication Critical patent/CN113806190A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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
    • G06F11/3447Performance evaluation by modeling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Biology (AREA)
  • Computer Hardware Design (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Quality & Reliability (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Data Mining & Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请公开了一种预测数据库管理***(DBMS)的性能的方法,包括:确定查询语句的查询计划;根据查询语句和查询计划确定多个特征,采用自动化特征工程的方式,按照DBMS的性能指标,从多个特征确定至少一个特征集合,至少一个特征集合包括与第一性能指标相对应的第一特征集合,第一性能指标为描述数据库管理***的性能指标中的任意一个;根据第一特征集合确定第一性能指标的预测结果。该方案可以提高第一性能指标的预测结果的准确度,即使DBMS包含复杂多变的业务场景下的数据,也可以准确预测出该DBMS的各性能指标的预测结果。

Description

一种预测数据库管理***的性能的方法、装置及***
技术领域
本申请涉及数据库管理技术领域,具体涉及一种预测数据库管理***的性能的方法、装置及***。
背景技术
数据库管理***(database management system,DBMS)针对查询语句的执行性能是数据库管理中一个十分重要的指标,它的优劣会直接影响到实际业务的发展和用户体验。
针对一个查询语句,DBMS可以生成多种执行计划,每种执行计划对DBMS的性能影响都不同。为了优化DBMS的查询能力,可以预先预测出DBMS执行查询语句时的性能,为该查询语句确定出一种最好的执行计划并配置给DBMS,这样DBMS就可以选择该最好的执行计划来执行该查询语句。
目前,预测执行查询语句时DBMS的性能的方案有基于规则的查询优化(rule-based optimization,RBO)方案和基于代价的查询优化(cost-based optimizer,CBO)方案等,无论是哪种预测方案都是基于统计信息和经验模型进行优化的,没有考虑实际复杂多变的业务场景,所以预测结果非常不准确。
发明内容
本申请实施例提供一种预测数据库管理***的性能的方法,可以提高预测数据库管理***(database management system,DBMS)的性能指标的准确度。本申请实施例还提供了相应的装置及***。
本申请第一方面提供一种预测数据库管理***的性能的方法,包括:确定查询语句的查询计划;根据查询语句和查询计划确定多个特征,并从多个特征确定至少一个特征集合,至少一个特征集合包括与第一性能指标相对应的第一特征集合,第一性能指标为描述数据库管理***的性能指标中的任意一个;根据第一特征集合确定第一性能指标的预测结果。
上述第一方面中,查询语句会包含要实现一个或多个查询目的的意思表示,该查询语句可以是结构化查询语言(structured query language,SQL)语句。查询计划是DBMS为完成查询语句的查询而确定的一组步骤。查询语句和查询计划中都会包括多个特征,这些特征的类型可以不同,例如:多个特征中可以有查询语句类型的特征、谓词类型的特征,算子类型的特征以及结构类型的特征等。至少一个特征集合中的每个特征集合都会对应一个DBMS的性能指标,DBMS的性能指标可以是DBMS的查询时延、处理器的使用率、内存占用率以及查询语句的结果集的大小等。因为不同类型的特征对性能指标的影响可能不同,例如:查询时延、处理器的使用率、内存占用率与结构类型的特征或算子类型的密切相关,结果集大小则对查询语句类型的特征或谓词类型的特征比较敏感。因此,在通过查询语句和查询计划得到多个特征后,可以根据这些特征的类型以及与各性能指标的关系对特征进行重组,得到与各个性能指标分别对应的特征集合,例如:第一特征集合与第一性能指标对应,第二特征集合与第二性能指标对应等。因为第一特征集合中所包含的特征是与第一性能指标相关的,不包含与第一性能指标无关的特征,因此不会对第一性能指标的预测结果造成额外的影响,所以该第一方面提供的方案可以提高第一性能指标的预测结果的准确度。而且,该第一方面提供的方案即使在复杂多变的业务场景下,都可以对各业务场景下的查询语句和查询计划进行特征提取,并根据性能指标与各类型特征的关系重组得到相应性能指标的特征集合,从而得到预测结果,即使业务场景再复杂多变,也可以准确预测出相应业务场景下该DBMS的性能指标。
在第一方面的一种可能的实现方式中,上述步骤:根据第一特征集合确定第一性能指标的预测结果,包括:将第一特征集合输入一个或多个第一预测模型,以得到第一性能指标的预测结果,一个或多个第一预测模型可以是采用机器学习(machine learning,ML)的方式,使用第一性能指标对应的样本特征集合进行模型训练得到的。
该种可能的实现方式中,可以通过预测模型来预测各性能指标的预测结果。一个性能指标可以对应一个或多个预测模型,该处的多个包括两个及两个以上。一个预测模型可以预测一种性能指标,也可以预测多种性能指标。无论是只能预测一种性能指标的预测模型,还是可以预测多种性能指标的预测模型,在模型训练时都采用与性能指标相对应的样本特征集合进行训练得到,该样本特征集合可以参阅上述第一方面中的至少一个特征集合进行理解,第一预测模型可以预测第一性能指标,也就是第一预测模型可以输出第一性能指标的预测结果。机器学习的方法可以有多种,如:有监督的机器学习、半监督的机器学习、无监督的机器学习、强化学习以及基于对抗网络的机器学习等。该种通过预测模型得到预测结果的方式有利于快速得到预测结果。
在第一方面的一种可能的实现方式中,若第一预测模型有多个,上述步骤:将第一特征集合输入一个或多个第一预测模型,以得到第一性能指标的预测结果,包括:将第一特征集合分别输入到多个第一预测模型中的每个第一预测模型,以得到多个预测结果;根据多个预测结果确定第一性能指标的预测结果。
该种可能的实现方式中,第一预测模型有多个,那么每个第一预测模型都会输出一个预测结果,可以对这多个预测结果进行融合,得到一个融合后的该第一性能指标的预测结果。结果融合的策略可以包括投票(voting)、平均值(averaging)或者排名(ranking)等。该种针对同一性能指标,使用多个预测结果进行融合再得到最终预测结果的方式有利于提高预测结果的准确度。
在第一方面的一种可能的实现方式中,该方法还包括:根据多个预测结果确定第一性能指标的预测结果的置信度,置信度用于指示第一性能指标的预测结果的可信程度。
该种可能的实现方式中,置信度是变异系数的(coefficient of variation)的倒数,变异系数等于多个预测结果的方差再除以平均值,例如:用P1来表示预测结果1,P2来表示预测结果2,P3来表示预测结果3,用AVE来表示平均值,用S来表示方差,用C来表示变异系数,那么方差S=[(P1-AVE)2+(P2-AVE)2+(P3-AVE)2]/3,其中,AVE=(P1+P2+P3)/3,变异系数C=S/AVE,置信度=AVE/S。置信度越大,说明该融合后的第一性能指标的预测结果越可信,或者说,变异系数越小,该融合后的第一性能指标的预测结果越可信。反之,置信度越小,说明该融合后的第一性能指标的预测结果越不可信,或者说,变异系数越大,该融合后的第一性能指标的预测结果越不可信。该种确定置信度的方案有利于为后续策略选择做出指导。
在第一方面的一种可能的实现方式中,该方法还包括:根据第一性能指标的预测结果的置信度,确定第一性能指标的优化策略。
该种可能的实现方式中,优化策略可以有多种,有激进类型的优化策略,如:一旦确定第一性能指标的预测结果,就按照该预测结果立即调整DBMS参数。也有保守类型的优化策略,在得到第一性能指标的预测结果后不立即调整DBMS参数,或者只会微调DBMS参数。该种可能的实现方式种,通过置信度可以对选择优化策略做出较好的指导,如果置信度较大,就可以按照第一性能指标的预测结果调整优化策略,如果置信度较小,就选择保守的优化策略。
在第一方面的一种可能的实现方式中,上述步骤:从多个特征确定至少一个特征集合,包括:从多个特征中确定与数据库管理***的各性能指标相对应的特征,以得到至少一个特征集合,其中,每个特征集合通过标签或映射的方式与一个性能指标相对应。
该种可能的实现方式中,按照性能指标对多个特征重组后,需要建立特征集合与性能指标的对应关系,该对应关系可以是通过在特征集合上打标签的方式来建立,也可以是通过映射表的方式来建立。该种通过标签或映射的方式建立特征集合与性能指标的对应关系可以方便把相应特征集合传递到相应性能指标的预测模型中,也进一步提高了性能指标预测的速度。
在第一方面的一种可能的实现方式中,上述步骤:从多个特征确定至少一个特征集合,包括:从多个特征中确定至少一个结构特征和至少一个特征向量,其中,结构特征用于指示查询语句或查询计划的结构,特征向量是对查询计划或查询语句编码后得到的向量;从至少一个结构特征和至少一个特征向量中,确定与第一性能指标对应的目标结构特征和目标特征向量;根据目标结构特征确定与第一性能指标对应的数据编码结构,数据编码结构上包括至少一个向量节点;将目标特征向量添加到至少一个向量节点上,以得到第一特征集合。
该种可能的实现方式中,结构特征可以包括上述第一方面中描述的查询语句类型的特征以及结构类型的特征。上述第一方面中谓词类型的特征以及算子类型的特征都属于特征向量。当然,如果多个特征中还包括其他类型的特征,若该其他类型的特征表示结构,则为结构特征。数据编码结构可以包括树型、图型或矩阵型等,数据编码结构确定后,将与第一性能指标相关的目标特征向量添加到相应的向量节点上,就得到了一个与第一性能指标对应的第一特征集合。该可能的实现方式通过自动化特征工程的方式实现了特征重组,提高了使用各业务场景的数据进行性能指标预测的自适应能力。
在第一方面的一种可能的实现方式中,上述至少一个特征集合还包括第二特征集合,第二特征集合与第二性能指标相对应,第二特征集合用于确定第二性能指标的预测结果。
该种可能的实现方式,可以确保实现多个性能指标的预测。
在第一方面的一种可能的实现方式中,该方法还包括:根据与第一性能指标相对应的有效性能特征集合更新一个或多个第一预测模型,有效性能特征集合包括可靠程度满足预设条件的至少一个有效性能特征。
该种可能的实现方式,可以对第一预测模型进行在线更新,当然,其他性能指标的预测模型都可以在线更新,预测模型在线更新后可以更好的适应DBMS的变化,即使DBMS的参数有变化,预测模型及时做了更新,也可以准确的预测出参数发生了变化的DBMS的性能指标。
在第一方面的一种可能的实现方式中,该方法还包括:获取与第一性能指标对应的多个历史性能特征,其中,每个历史性能特征包含该历史性能特征产生的时间戳;针对每个历史性能特征,获取从时间戳所指示的时刻到至少一个第一预测模型的更新时刻所发生的关键性能事件;根据关键性能事件的数量,从多个历史性能特征中确定有效性能特征,关键性能事件越多的历史性能特征的可靠程度越低。
该种可能的实现方式,DBMS中产生历史性能特征时会有历史性能特征产生的时间戳,在为预测模型更新而收集历史性能特征时会记录该历史性能特征产生的时间戳。DBMS会对DBMS中发生的关键性能事件进行记录,在校验历史性能特征时,可以根据该历史性能特征的时间戳所指示的时刻到预测模型更新的时刻的时间段内,所发生的关键性能事件的多少来确定该历史性能特征的可靠性。关键性能事件指的是对后续DBMS性能存在较大影响的操作事件,包括但不限于集群数据库扩缩容、通信或存储介质升级、表的增删改、索引的建立或删除、视图的变化,以及关键配置参数的变化等。关键性能事件越多,说明对历史性能特征的影响越大,该历史性能特征越不可信。也可以根据关键性能事件的多少为历史性能事件打分,关键性能事件越多,则该历史性能特征打分越低,可靠性程度低,关键性能事件越少,则该历史性能特征打分越高,可靠程度越高。可以将可靠程度较低的历史性能特征删除,保留可靠性较高的历史性能特征,这样可以提高预测模型更新的准确度。该种可能的实现方式,采用最新的,且采用可靠程度较高的历史性能特征,进行预测模型的更新,可以提高预测模型的准确率,从而提高预测结果的准确率。
本申请第二方面提供一种预测模型训练的方法,包括:获取多对历史查询语句和历史查询计划;根据每对历史查询语句和历史查询计划确定一个包含多个特征的样本集合,并从每个样本集合确定至少一个特征集合,至少一个特征集合包括与第一性能指标相对应的第一特征集合,第一性能指标为描述数据库管理***的多个性能指标中的任意一个;使用从多个样本集合中确定出的多个第一特征集合对与第一性能指标对应的预测模型进行训练,以得到第一预测模型。
上述第二方面中,历史查询语句和历史查询计划可以是DBMS之前已经执行过的查询语句和查询计划,关于查询语句、查询计划以及特征集合的含义可以参阅上述第一方面中相应的内容进行理解,此处不做重复赘述。因为第一特征集合所包含的特征是与第一性能指标相关的,不包含与第一性能指标无关的特征,因此通过多个第一特征集合训练得到的第一预测模型对各业务场景的数据的自适应能力更好,也可以提高第一性能指标的预测结果的准确度。
在第二方面的一种可能的实现方式中,至少一个特征集合还包括第二特征集合,第二特征集合与第二性能指标相对应,第二性能指标对应的预测模型与第一预测模型的结构相同,该方法还包括:在第一预测模型的基础上,初始化第二性能指标对应的预测模型;使用从多个样本集合中确定出的多个第二特征集合,采用机器学习的方式对初始化的与第二性能指标对应的预测模型进行训练,以得到第二预测模型,第二预测模型用于预测第二性能指标的预测结果。
该种可能的实现方式中,若第一预测模型与第二预测模型的结构相同,如都是树型结构,那么在第一预测模型训练好后,可以在该第一预测模型的基础上训练得到第二预测模型。这样,第二性能指标的预测模型就可以共享第一预测模型的部分模型知识,可以提高第二性能指标的预测模型的收敛效率,快速训练得到第二预测模型。
在第二方面的一种可能的实现方式中,上述步骤:从每个样本集合确定至少一个特征集合,包括:从每个样本集合的多个特征中与数据库管理***的各性能指标相对应的特征,以得到至少一个特征集合,其中,每个特征集合与一个性能指标通过标签或映射的方式相对应。
该种可能的实现方式中,按照性能指标对多个特征重组后,需要建立特征集合与性能指标的对应关系,该对应关系可以是通过在特征集合上打标签的方式来建立,也可以是通过映射表的方式来建立。该种通过标签或映射的方式建立特征集合与性能指标的对应关系可以在训练模型时方便将与相应性能指标的特征集合输入到预测模型中。这样可以提高预测模型训练的速度。
在第二方面的一种可能的实现方式中,上述步骤:从每个样本集合确定至少一个特征集合,包括:从每个样本集合的多个特征中确定至少一个结构特征和至少一个特征向量,其中,结构特征用于指示历史查询语句或历史查询计划的结构,特征向量是对查询计划或查询语句编码后得到的向量;从至少一个结构特征和至少一个特征向量中,确定与第一性能指标对应的目标结构特征和目标特征向量;根据目标结构特征确定与第一性能指标对应的数据编码结构,数据编码结构上包括至少一个向量节点;将目标特征向量添加到至少一个向量节点上,以得到第一特征集合。
该种可能的实现方式中,结构特征可以包括上述第一方面中描述的查询语句类型的特征以及结构类型的特征。上述第一方面中谓词类型的特征以及算子类型的特征都属于特征向量。当然,如果多个特征中还包括其他类型的特征,若该其他类型的特征表示结构,则为结构特征,若该其他类型的特征通过向量表示则为特征向量。数据编码结构可以包括树型、图型或矩阵型等,数据编码结构确定后,将与第一性能指标相关的目标特征向量添加到相应的向量节点上,就得到了一个与第一性能指标对应的第一特征集合。该可能的实现方式通过自动化特征工程的方式实现了特征重组,提高了使用各业务场景的数据进行模型训练的自适应能力。
在第二方面的一种可能的实现方式中,上述步骤:上述步骤:根据每对历史查询语句和历史查询计划确定一个包含多个特征的样本集合,包括:从每对历史查询语句和历史查询计划中确定多个历史性能特征,其中,每个历史性能特征包含该历史性能特征产生的时间戳;针对每个历史性能特征,获取从时间戳所指示的时刻到第一性能指标对应的预测模型的训练起始时刻所发生的关键性能事件;根据关键性能事件的数量,从多个历史性能特征中确定多个特征,关键性能事件越多的历史性能特征的可靠程度越低。
该种可能的实现方式中,DBMS中产生历史性能特征时会有历史性能特征产生的时间戳,在为训练预测模型而收集历史性能特征时会记录该历史性能特征产生的时间戳。DBMS会对DBMS中发生的关键性能事件进行记录,在校验历史性能特征时,可以根据该历史性能特征的时间戳所指示的时刻到预测模型更新的时刻的时间段内,所发生的关键性能事件的多少来确定该历史性能特征的可靠性。关键性能事件指的是对后续DBMS性能存在较大影响的操作事件,包括但不限于集群数据库扩缩容、通信或存储介质升级、表的增删改、索引的建立或删除、视图的变化,以及关键配置参数的变化等。关键性能事件越多,说明对历史性能特征的影响越大,该历史性能特征越不可信。也可以根据关键性能事件的多少为历史性能事件打分,关键性能事件越多,则该历史性能特征打分越低,可靠性程度低,关键性能事件越少,则该历史性能特征打分越高,可靠程度越高。可以将可靠程度较低的历史性能特征删除,保留可靠性较高的历史性能特征,这样可以提高预测模型训练的准确度。
本申请第三方面,提供了一种预测装置,用于执行上述第一方面或第一方面的任意可能的实现方式中的方法。具体地,该装置包括用于执行上述第一方面或第一方面的任意可能的实现方式中的方法的模块或单元,如:第一处理单元、第二处理单元、第三处理单元和第四处理单元,需要说明的是,这四个处理单元所执行的功能也可以通过一个、两个或三个处理单元来实现。
本申请第四方面,提供了一种预测模型训练的装置,用于执行上述第二方面或第二方面的任意可能的实现方式中的方法。具体地,该装置包括用于执行上述第二方面或第二方面的任意可能的实现方式中的方法的模块或单元,如:获取单元、第一处理单元和第二处理单元,需要说明的是,获取单元、第一处理单元和第二处理单元所执行的功能也可以通过一个、两个处理单元来实现。
本申请第五方面,提供了一种预测装置。该装置可以包括至少一个处理器、存储器和通信接口。处理器与存储器和通信接口耦合。存储器用于存储指令,处理器用于执行该指令,通信接口用于在处理器的控制下与其他网元进行通信。该指令在被处理器执行时,使处理器执行第一方面或第一方面的任意可能的实现方式中的方法。
本申请第六方面,提供了一种预测模型训练的装置。该装置可以包括至少一个处理器、存储器和通信接口。处理器与存储器和通信接口耦合。存储器用于存储指令,处理器用于执行该指令,通信接口用于在处理器的控制下与其他网元进行通信。该指令在被处理器执行时,使处理器执行第二方面或第二方面的任意可能的实现方式中的方法。
本申请第七方面,提供了一种数据库***。该数据库***集成有上述第三方面或第五方面的预测装置的数据库管理***和数据库。
本申请第八方面,提供了一种数据库***。该数据库***包括上述第三方面或第五方面的预测装置、数据库管理***和数据库。
本申请第九方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有程序,该程序使得处理器执行上述第一方面,及其各种实现方式中的任一种预测数据库管理***的性能的方法。
本申请第十方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有程序,该程序使得处理器执行上述第二方面,及其各种实现方式中的任一种预测模型训练的方法。
本申请第十一方面,提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;设备的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得设备实施上述第一方面或者第一方面的任一种可能的实现方式所提供的一种预测数据库管理***的性能的方法。
第十二方面,提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;设备的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得设备实施上述第二方面或者第二方面的任一种可能的实现方式所提供的一种预测模型训练的方法。
本申请第十三方面提供了一种芯片***,该芯片***包括处理器,用于支持预测装置实现上述第一方面或第一方面任意一种可能的实现方式中所涉及的功能。在一种可能的设计中,芯片***还可以包括存储器,存储器用于保存预测装置必要的程序指令和数据。该芯片***,可以由芯片构成,也可以包含芯片和其他分立器件。
本申请第十四方面提供了一种芯片***,该芯片***包括处理器,用于支持预测模型训练的装置实现上述第一方面或第一方面任意一种可能的实现方式中所涉及的功能。在一种可能的设计中,芯片***还可以包括存储器,存储器用于保存预测模型训练的装置必要的程序指令和数据。该芯片***,可以由芯片构成,也可以包含芯片和其他分立器件。
可以理解地,上述提供的任一种预测装置、计算机存储介质、计算机程序产品或者芯片***均用于执行上文所提供的对应的预测数据库管理***的性能的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
附图说明
图1A是单机数据库***示意图;
图1B是采用共享磁盘架构的集群数据库***示意图;
图1C是采用无共享架构的集群数据库***示意图;
图1D是本申请实施例提供的数据库***中节点的一结构示意图;
图1E是本申请实施例提供的数据库***中节点的另一结构示意图;
图2是本申请实施例提供的预测数据库管理***的性能的方法的一实施例示意图;
图3是本申请实施例提供的预测模型训练的方法的一实施例示意图;
图4是本申请实施例提供的一场景示例示意图;
图5是本申请实施例提供的另一场景示例示意图;
图6A是本申请实施例提供的另一场景示例示意图;
图6B是本申请实施例提供的另一场景示例示意图;
图6C是本申请实施例提供的另一场景示例示意图;
图7是本申请实施例提供的预测数据库管理***的性能的方法的另一实施例示意图;
图8A是本申请实施例提供的查询引擎和人工智能引擎的一框架示意图;
图8B是本申请实施例提供的神经网络的一结构示意图;
图8C是本申请实施例提供的神经网络的另一结构示意图;
图8D是本申请实施例提供的神经网络的另一结构示意图;
图8E是本申请实施例提供的一效果对比图;
图8F是本申请实施例提供的另一效果对比图;
图9是本申请实施例提供的预测装置的一实施例示意图;
图10是本申请实施例提供的预测模型训练的装置的一实施例示意图;
图11是本申请实施例提供的预测装置的另一实施例示意图;
图12是本申请实施例提供的数据库***的另一实施例示意图;
图13是本申请实施例提供的集群数据库***的一实施例示意图。
具体实施方式
下面结合附图,对本申请的实施例进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例提供一种预测数据库管理***的性能的方法,可以提高预测数据库管理***(database management system,DBMS)的性能指标的准确度。本申请实施例还提供了相应的装置及***。以下分别进行详细说明。
本申请实施例提供的方法、可以实现为数据库管理***的一部分,或者实现为一个独立的组件。本申请实施例提供的方法可以应用于单机数据库***或者集群数据库***。数据库***(database system)一般由以下三部分组成:(1)数据库(database,DB),指长期存储在计算机内的,有组织,可共享的数据的集合。数据库中的数据按一定的数学模型组织、描述和存储,具有较小的冗余,较高的数据独立性和易扩展性,并可为各种用户共享。(2)硬件,包括存储数据所需的数据存储器,例如内存和/或磁盘。(3)软件,包括DBMS,DBMS是数据库***的核心软件,是用于科学地组织和存储数据,以及高效获取和维护数据的***软件,数据库引擎是DBMS的核心组件。
具体地,图1A为单机数据库***示意图,包括一个数据库管理***和数据存储器(data storage),该数据库管理***用于提供数据库的查询和修改等服务,该数据库管理***将数据存储到数据存储器中。在单机数据库***中,数据库管理***和数据存储器通常位于单一服务器上,比如一台对称多处理(symmetric multi-processor,SMP)服务器。该SMP服务器包括多个处理器,所有的处理器共享资源,如总线,内存和I/O***等。数据库管理***的功能可由一个或多个处理器执行内存中的程序来实现。
图1B为采用共享磁盘(shared-storage)架构的集群数据库***示意图,包括多个节点(如图1B中的节点1-N),每个节点部署有数据库管理***,分别为用户提供数据库的查询和修改等服务,多个数据库管理***存储有共享的数据在共享数据存储器中,并且通过交换机对数据存储器中的数据执行读写操作。共享数据存储器可以为共享磁盘阵列。集群数据库***中的节点可以为物理机,比如数据库服务器,也可以为运行在抽象硬件资源上的虚拟机(virtual machine,VM)或容器(container)。当节点为虚拟机或容器时,节点中部署的数据库管理***为DBMS实例(instance),该DBMS可以是进程或线程。若节点为物理机,则交换机为存储区网络(storage area network,SAN)交换机、以太网交换机,光纤交换机或其它物理交换设备。若节点为虚拟机或容器,则交换机为虚拟交换机。
图1C为采用无共享(shared-nothing)架构的集群数据库***示意图,每个节点具有各自独享的硬件资源(如数据存储器)、操作***和数据库,节点之间通过网络来通信。该体系下,数据将根据数据库模型和应用特点被分配到各个节点上,查询任务将被分割成若干部分,在所有节点上并行执行,彼此协同计算,作为整体提供数据库服务,所有通信功能都在一个高宽带网络互联体系上实现。如同图1B所描述的shared-storage架构的集群数据库***一样,这里的节点既可以是物理机,也可以是虚拟机。
在本申请所有实施例中,数据库***的数据存储器(data storage)包括但不限于固态硬盘(solid state drives,SSD)、磁盘阵列或其他类型的非瞬态计算机可读介质。图1A-1C中虽未示出数据库,应理解,数据库存储在数据存储器中。所属领域的技术人员可以理解一个数据库***可能包括比图1A-1C中所示的部件更少或更多的组件,或者包括与图1A-1C中所示组件不同的组件,图1A-1C仅仅示出了与本申请实施例所公开的实现方式更加相关的组件。例如,虽然图1B和1C中已经描述了4个节点,但所属领域的技术人员可理解成一个集群数据库***可包含任何数量的节点。各节点的数据库管理***功能可分别由运行在各节点上的软件、硬件和/或固件的适当组合来实现。
上述图1A至1C的数据库***都包括节点,下面结合附图对节点的结构进行介绍。如图1D所示,本申请实施例提供一种节点100,包括:至少一个处理器104、存储可执行代码的非瞬态计算机可读介质(non-transitory computer-readable medium)106和数据库管理***108。可执行代码在被至少一个处理器104执行时被配置为实现数据库管理***108的组件和功能。非瞬态计算机可读介质106可以包括一个或多个非易失性存储器,作为示例,非易失性存储器包括半导体存储器设备,例如可擦可编程只读存储器(erasableprogrammable read only memory,EPROM),电可擦只读存储器(electrically erasableprogrammable read only memory,EEPROM)和闪存(flash memory);磁盘,例如内部硬盘(internal hard disk)或可移动磁盘(removable disk),磁光盘(magneto opticaldisk),以及CD ROM和DVD-ROM。此外,非瞬态计算机可读介质106还可以包括被配置为主存储器(main memory)的任何设备。至少一个处理器104可以包括任何类型的通用计算电路或专用逻辑电路,例如:现场可编程门阵列(field-programmable gate array,FPGA)或专用集成电路(application specific integrated circuit,ASIC)。至少一个处理器104也可以是耦合到一个或多个半导体基板的一个或多个处理器,例如CPU。
数据库管理***108可以是关系型数据库管理***(relational databasemanagement system,RDBMS)。数据库管理***108支持结构化查询语言(structured querylanguage,SQL)。通常,SQL是指专门用于管理关系型数据库中保存的数据的专用编程语言。SQL可以指代各种类型的数据相关语言,包括例如数据定义语言和数据操纵语言,其中SQL的范围可以包括数据***,查询,更新和删除,模式创建和修改以及数据访问控制。此外,在一些示例中,SQL可以包括与各种语言元素相关的描述,包括子句(clause),表达式(expression),谓词(predicate)和查询语句(Query statement),查询语句通常也简称为“查询(query)”。例如,子句可以指语句和查询的各种组成部分,并且在一些情况下,子句可以被认为是可选的。此外,表达式可以被配置为产生包括数据列和/或行的标量值(scalarvalue)和/或表。另外,谓词可经配置以指定条件,以用于调节语句和查询的效果。
查询语句是请求查看,访问和/或操纵存储在数据库中的数据。数据库管理***108可以从数据库客户端102接收SQL格式的查询(称为SQL查询)。该SQL查询也可以称为SQL语句。通常,数据库管理***108通过从数据库访问相关数据并操纵相关数据以生成查询所对应的查询结果,并将查询结果返回到数据库客户端102。数据库是按一定的数学模型组织、描述和存储的数据集合,数据库可以包括一个或多个数据库结构或格式,例如行存储和列存储。数据库通常存储于数据存储器中,比如图1D中的外部数据存储器140,或者非瞬态计算机可读介质106。当数据库存储于非瞬态计算机可读介质106时,数据库管理***108为内存数据库管理***。
数据库客户端102可以包括被配置成与数据库管理***108交互的任何类型的设备或应用程序。在一些示例中,数据库客户端102包括一个或多个应用服务器。
数据库管理***108可以包括本申请实施例中的预测装置120,执行引擎122、存储引擎134,该预测装置120包括查询引擎110和人工智能引擎130。在一个实施例中,该查询引擎110可以是SQL引擎。查询引擎110根据客户端102提交的查询语句,生成对应的执行计划,执行引擎122依照语句的执行计划进行操作,以产生查询结果。存储引擎134负责在文件***之上,管理表的数据、索引的实际内容,同时也会管理运行时的Cache、Buffer、事务、Log等数据。例如存储引擎134可以将执行引擎122的执行结果通过物理I/O写入数据存储器140。查询引擎110包括解析器112和优化器114,其中,解析器110用于执行对查询语句的语法、语义分析,将查询中的视图展开、划分为小的查询块。优化器114为语句生成一组可能被使用的执行计划,估算出每个执行计划的代价,比较计划的代价,最终选择一个代价最小的执行计划。人工智能引擎130可以从查询引擎110获取查询语句和查询计划中的特征。该节点100的另一种可能的结构中,如图1E所示,预测装置120也可以独立于数据库管理***108之外,该种结构中,预测装置120会包括另外一个查询引擎126。
基于上述图1A至图1C的数据库***,以及图1D和图1E的节点,结合图2,介绍本申请实施例提供的预测装置120预测数据库管理***的性能的方法。
参阅图2,本申请实施例提供的预测数据库管理***的性能的方法的一实施例包括:
201、确定查询语句的查询计划。
该查询语句会包含要实现一个或多个查询目的的意思表示,如:要查询某个购物平台上一定时期内消费者所购买的商品的信息。该查询语句会包括查询条件等信息。该查询语句可以是结构化查询语言(structured query language,SQL)语句。查询计划是DBMS为完成查询语句的查询而确定的一组步骤。该查询计划中可以包括要得到查询语句的查询结果的执行路径,以及执行路径上所包含的算子,该算子可以理解为是一个计算单元,例如:为与日期查询相关的计算单元,或者与商品查询相关的计算单元。
202、根据查询语句和查询计划确定多个特征,并从多个特征确定至少一个特征集合。
至少一个特征集合包括与第一性能指标相对应的第一特征集合,第一性能指标为描述数据库管理***的性能指标中的任意一个。
查询语句和查询计划中都会包括多个特征,这些特征的类型可以不同,例如:多个特征中可以有查询语句类型的特征、谓词类型的特征,算子类型的特征以及结构类型的特征等。其中,查询语句类型的特征指的是该查询语句涉及的查询主体以及查询主体之间的连接条件如:该查询语句要查询哪几张表以及这几张表之间的连接条件。谓词类型的特征指的是表中的条件特征,例如:在一个员工表中,要查询“男性”的职员的信息,那么“男性”这一查询条件为谓词类型的特征。算子类型的特征指的是查询计划中算子的逻辑属性和物理属性,例如:通过员工姓名将两张表中同一员工的职业和年龄都查询出来,两表通过姓名为连接条件的操作为逻辑属性,而该连接操作实际使用的算法(如哈希连接、嵌套循环连接等)就是该算子的物理属性。结构类型的特征指的是查询计划的结构,如:树型结构或矩阵型结构等。至少一个特征集合中的每个特征集合都会对应一个DBMS的性能指标,该性能指标可以是DBMS的查询时延、处理器的使用率、内存占用率以及查询语句的结果集的大小等。因为不同类型的特征对性能指标的影响可能不同,例如:查询时延、处理器的使用率、内存占用率与结构类型的特征或算子类型的密切相关,结果集大小则对查询语句类型的特征或谓词类型的特征比较敏感。因此,在通过查询语句和查询计划得到多个特征后,可以根据这些特征的类型以及与各性能指标的关系进行重组,得到与各个性能指标分别对应的特征集合,例如:第一特征集合与第一性能指标对应,第二特征集合与第二性能指标对应等。
203、根据第一特征集合确定第一性能指标的预测结果。
本申请实施例中,因为第一特征集合中所包含的特征是与第一性能指标相关的,不包含与第一性能指标无关的特征,因此不会对第一性能指标的预测结果造成额外的影响,所以该第一方面提供的方案可以提高第一性能指标的预测结果的准确度。而且,本申请实施例提供的方案即使在复杂多变的业务场景下,都可以对各业务场景下的查询语句和查询计划进行特征提取,并根据性能指标与各类型特征的关系重组得到相应性能指标的特征集合,从而得到预测结果,即使业务场景再复杂多变,也可以准确预测出相应业务场景下该DBMS的性能指标。
本申请实施例中,预测性能指标可以是通过预测模型实现的,如:上述步骤203的过程,可以是将第一特征集合输入一个或多个与第一性能指标对应的第一预测模型,由每个第一预测模型使用第一特征集合进行预测,然后每个第一预测模型输出一个预测结果。
其中,一个或多个第一预测模型是采用机器学习(machine learning,ML)的方式,使用第一性能指标对应的样本特征集合进行模型训练得到的。机器学习的方法可以有多种,如:有监督的机器学习、半监督的机器学习、无监督的机器学习、强化学习以及基于对抗网络的机器学习等。
关于预测模型训练的过程可以参阅图3进行理解。该训练过程可以由预测模型训练的装置来执行,该预测模型训练的装置的结构或产品形态可以参阅上述节点100进行理解。如图3所示,本申请实施例提供的预测模型训练的方法的一实施例可以包括:
301、获取多对历史查询语句和历史查询计划。
历史查询语句和历史查询计划可以是DBMS之前已经执行过的查询语句和查询计划,可以从DBMS中获取历史查询语句和历史查询计划。
关于查询语句、查询计划的含义可以参阅上述图2所对应实施例的相应内容进行理解,此处不做重复赘述。
302、根据每对历史查询语句和历史查询计划确定一个包含多个特征的样本集合。
每个样本集合中所包含的多个特征的类型,如:查询语句类型的特征、谓词类型的特征,算子类型的特征以及结构类型的特征等,以及各类型的特征对性能指标的影响可以参阅图2所对应实施例的相应内容进行理解,此处不做重复赘述。
303、从每个样本集合确定至少一个特征集合。
每个样本集合中都可以通过自动化特征工程的方式确定出至少一个特征集合,至少一个特征集合包括与第一性能指标相对应的第一特征集合,第一性能指标为描述数据库管理***的性能指标中的任意一个。除了第一特征集合,每个样本集合中还也可以确定出第二特征集合、第三特征集合,或者更多的特征集合。每个特征集合对应一种性能指标,特征集合与性能指标的对应关系可以参阅表1进行理解。
表1:特征集合与性能指标的对应关系
第一特征集合 第二特征集合 第三特征集合
第一性能指标 第二性能指标 第三性能指标
特征集合与性能指标之间的对应关系可以通过类似于上述表1的映射关系的方式来表示,也可以通过打标签的方式来表示。
304、使用从多个样本集合中确定出的多个第一特征集合对与第一性能指标对应的预测模型进行训练,以得到第一预测模型。
每个样本集合都可能确定出一个第一特征集合,在模型训练时,针对与第一性能指标相对应的模型采用多个第一特征集合进行训练,就可以得到第一预测模型,同理,采用多个第二特征集合对与第二性能指标相对应的模型进行训练,就可以得到第二预测模型。预测模型与性能指标的对应关系,可以参阅表2进行理解。
表2:预测模型与性能指标的对应关系
第一预测模型 第二预测模型 第三预测模型
第一性能指标 第二性能指标 第三性能指标
本申请实施例提供的预测模型训练的方案,因为第一特征集合所包含的特征是与第一性能指标相关的,不包含与第一性能指标无关的特征,因此通过多个第一特征集合训练得到的第一预测模型对各业务场景的数据的自适应能力更好,也可以提高第一性能指标的预测结果的准确度。
上述步骤302确定样本集合的过程中,可以对特征进行数据管理,该数据管理的过程可以包括:从每对历史查询语句和历史查询计划中确定多个历史性能特征,其中,每个历史性能特征包含该历史性能特征产生的时间戳;针对每个历史性能特征,获取从时间戳所指示的时刻到第一性能指标对应的预测模型的训练起始时刻所发生的关键性能事件;根据关键性能事件的数量,从多个历史性能特征中确定多个特征,关键性能事件越多的历史性能特征的可靠程度越低。
该数据管理的过程可以参阅图4进行理解。如图4所示,每个历史性能特征都有一个时间戳,该时间戳表示产生该历史性能特征的时刻。其中,历史性能特征所产生的时刻可以不相同,如图4中的历史性能特征1、历史性能特征2,以及历史性能特征n所产生的时刻可能都不相同,当然,有些历史性能特征所产生的时刻可以相同。若这些历史性能特征都用于某个预测模型的训练,那么从一个历史性能特征的时间戳所指示的时刻到该预测模型的训练起始时刻就是一个时间段,在该时间段内可能会发生关键性能事件,该关键性能事件指的是对后续DBMS性能存在较大影响的操作事件,包括但不限于集群数据库扩缩容、通信或存储介质升级、表的增删改、索引的建立或删除、视图的变化,以及关键配置参数的变化等。关键性能事件越多,说明对历史性能特征的影响越大,该历史性能特征越不可信。如图4中,历史性能特征1的时间戳所指示的时刻到预测模型的训练起始时刻这个时间段1内产生了两个关键性能事件。历史性能特征2的时间戳所指示的时刻到预测模型的训练起始时刻这个时间段2内产生了五个关键性能事件。历史性能特征n的时间戳所指示的时刻到预测模型的训练起始时刻这个时间段n内产生了一个关键性能事件。那么,历史性能特征1、历史性能特征2和历史性能特征n相比较,历史性能特征2的可信程度最低。如果设置的过滤阈值为3,那么,该历史性能特征2就会被过滤掉。历史性能特征1和历史性能特征n会成为样本特征集合的特征,n为大于2的整数。
通过设置过滤阈值,按照关键性能事件的数量进行过滤是一种实现方案,还可以根据上述所描述的时间段中关键性能事件的数量为相应的历史性能特征打分。关键性能事件越多的历史性能特征的打分越低,也可以不过滤掉个别分数较低的历史性能特征,而是根据分数对整个样本特征集合赋予权重,分数越低则权重越低,如果整个样本特征集合中的历史性能特征的整体分数较低,可以淘汰该样本特征集合。
本申请实施例中可以将可靠程度较低的历史性能特征删除,保留可靠性较高的历史性能特征,这样可以提高预测模型训练的准确度。
上述步骤302确定至少一个特征集合的过程可以通过自动化特征工程的方式来实现,该过程包括:从每个样本集合的多个特征中确定至少一个结构特征和至少一个特征向量,其中,结构特征用于指示历史查询语句或历史查询计划的结构,特征向量是对查询计划或查询语句编码后得到的向量;从至少一个结构特征和至少一个特征向量中,确定与第一性能指标对应的目标结构特征和目标特征向量;根据目标结构特征确定与第一性能指标对应的数据编码结构,数据编码结构上包括至少一个向量节点;将目标特征向量添加到至少一个向量节点上,以得到第一特征集合。
结构特征可以包括查询语句类型的特征以及结构类型的特征。特征向量可以包括谓词类型的特征以及算子类型的特征。当然,如果多个特征中还包括其他类型的特征,若该其他类型的特征表示结构,则为结构特征,若该其他类型的特征通过向量表示则为特征向量。该自动化特征工程得到至少一个特征集合的过程可以参阅图5进行理解。如图5所示,通过结构特征确定数据编码结构,该数据编码结构包括多个节点,然后将特征向量添加到数据编码结构的多个节点上,如图5中,将特征向量1、特征向量2,…,以及特征向量m添加到数据编码结构的各节点上,m为大于2的整数,该图5中特征向量的数量只是示例,实际上,该数据编码结构上有一个特征向量和两个向量都可以。每个特征向量可以是谓词类型的特征,也可以是向量类型的特征。
数据编码结构与结构特征相关,若结构特征是树型,则该数据编码结构也为树型,若结构特征是图型,则该数据编码结构也为图型,若结构特征是矩阵型,则该数据编码结构也为矩阵型。
关于使用查询语句和查询计划中的特征来确定数据编码结构,以及将特征向量添加到相应数据编码结构上的过程下面通过一场景示例进行描述。
若查询语句是:
Figure BDA0002544121690000141
查询计划是:
Figure BDA0002544121690000142
由以上查询语句和查询计划的示例可以看出,该查询语句中特征向量有算子类型的特征和谓词类型的特征,算子类型的特征包括t1、t2和t3,谓词类型的特征包括为t1*c1=t2*c1和t2*c2=t3*c2。从该场景示例的查询语句来看,该数据编码结构可以用图型来表示,也可以用矩阵型来表示。从该场景示例的查询计划来看,该数据编码结构也可以用树型来表示。
若采用树型作为数据编码结构,可以参阅图6A进行理解。如图6A所示,该树型结构的根节点为查询计划中的第一层级上的“Hash Join”,该根节点下有两个分支,分别为查询计划中的第二层级上的“Hash Join”和“Hash”。第二层级上的“Hash Join”下还有两个分支,分别为第三层级的“Seq Scan”和“Hash”。第二层级上的“Hash”下还有一个分支“SeqScan”。第三层级的“Hash”下还有一个分支,即第四层级的“Seq Scan”。数据编码结构确定后,将用于表征算子属性的特征向量如t1、t2和t3的基表信息,以及t1*c1=t2*c1和t2*c2=t3*c2表示连接条件的信息和表示SeqScan和HashJoin等算子的信息添加到相应的根节点和各层级的分支节点中,就可以得到用树型表示的一个特征集合。
若采用图型作为数据编码结构,可以参阅图6B进行理解。如图6B所示,该图型结构通过算子和边组成,该边表示算子之间的连接关系。从查询语句中可以看出算子有三个,边有两条。将特征向量t1*c1=t2*c1和t2*c2=t3*c2添加两条边中,然后根据这两条边中的特征向量,将特征向量t1、t2和t3添加到相应的算子中,就可以得到用图型表示的一个特征集合。按照图型结构得到特征集合的过程也可以是直接将特征向量t1、t2和t3添加到三个算子中,然后根据特征向量t1*c1=t2*c1建立t1与t2之间的边,根据t2*c2=t3*c2建立t2与t3之间的边。
若采用矩阵型作为数据编码结构,可以参阅图6C进行理解。如图6C所示,该矩阵结构包括三个维度,其中第一个和第二个维度相同,为数据库中表的数量,第三个维度为编码向量的长度,例如图6C中的五行五列,按顺序行和列都分别用t1、t2、t3、t4和t5来标记。若两表间有连接关系则填入表示该连接条件的编码向量,若没有连接关系用0向量来标记。根据连接条件t1*c1=t2*c1,可以确定t1和t2之间有连接关系,所以在将特征向量添加到矩阵中时,将t1行t2列,以及t2行t1列的位置都填上标识t1*c1=t2*c1的特征向量,图6C中用用1来表示。根据连接条件t2*c2=t3*c2,可以确定t2和t3之间有连接关系,所以在将特征向量添加到矩阵中时,将t2行t3列,以及t3行t2列的位置都填上标识t2*c2=t3*c2的特征向量,图6C中用1来表示。
以上采用多个第一特征集训练得到第一预测模型,采用多个第二特征集训练得到第二预测模型,考虑到有些预测模型的结构相同,为了避免重复构建模型,若第二性能指标对应的预测模型与第一预测模型的结构相同,第二性能指标的预测模型就可以共享第一预测模型的部分模型知识,则可以在第一预测模型的基础上,初始化第二性能指标对应的预测模型;使用多个第二特征集合,可以采用机器学习的方式对初始化的与第二性能指标对应的预测模型进行训练,就可以得到第二预测模型,这样可以提高第二性能指标的预测模型的收敛效率,快速训练得到第二预测模型。
该第一预测模型与第一性能指标相对应,这样,该第一预测模型就可以用来预测第一性能指标的预测结果。实际上,不限于一个预测模型只用于预测一个性能指标,若预测模型在训练时,分别采用了第一特征集合以及第二特征集合进行的训练,那么训练得到的预测模型可以用于预测第一性能指标和第二性能指标。
以上描述了预测模型的训练的方案,预测模型训练好后,就会得到与各性能指标对应的预测模型,如:第一预测模型、第二预测模型和第三预测模型。下面结合图7的场景,对采用上述训练好的预测模型对数据库管理***的性能的预测过程进行介绍。
如图7所示,该场景中,预测装置40包括查询引擎401、人工智能引擎402和数据管理模块403。该查询引擎401中包括数据库优化器4011和代价预测模型4012。人工智能引擎402包括自动化特征工程模块4021、第一预测模型4022、第二预测模型4023、第三预测模型4024和融合模块4025。
其中,数据库优化器4011接收到查询语句,为该查询语句确定查询计划。然后,从查询语句和查询计划中确定出多个特征,该多个特征可以包括查询语句类型的特征、谓词类型的特征,算子类型的特征以及结构类型的特征等。
代价预测模型4012会对查询语句和查询计划进行代价预测,向人工智能引擎402中的融合模块4025输出第一性能指标的第一结果,第二性能指标的第一结果,以及第三性能指标的第一结果。
自动化特征工程模块4021可以采用自动化特征工程的方式根据多个特征确定至少一个特征集合,关于自动化特征工程的执行过程包括:从多个特征中确定至少一个结构特征和至少一个特征向量,其中,结构特征用于指示查询语句或查询计划的结构,特征向量是对查询计划或查询语句编码后得到的向量;从至少一个结构特征和至少一个特征向量中,确定与第一性能指标对应的目标结构特征和目标特征向量;根据目标结构特征确定与第一性能指标对应的数据编码结构,数据编码结构上包括至少一个向量节点;将目标特征向量添加到至少一个向量节点上,以得到第一特征集合。
该场景中,确定的特征集合有第一特征集合、第二特征集合和第三特征集合。关于自动化特征工程模块4021得到这三个特征集合的过程可以参阅前述图5,图6A、图6B和图6C部分的相应描述进行理解,此处不再重复赘述。通过自动化特征工程的方式实现了特征重组,提高了使用各业务场景的数据进行性能指标预测的自适应能力。
自动化特征工程模块4021确定出第一特征集合、第二特征集合和第三特征集合后,将第一特征集合传输到第一预测模型4022中,将第二特征集合传输到第二预测模型4023中,将第三特征集合传输到第三预测模型4024中。
第一特征集合与第一性能指标,以及第一预测模型4022的对应关系,第二特征集合与第二性能指标,以及第二预测模型4023的对应关系,第三特征集合与第三性能指标,以及第三预测模型4024的对应关系,可以参阅前述表1和表2进行理解,当然,每个特征集合也可以通过标签的方式与一个性能指标相对应。
第一预测模型4022使用第一特征集合进行预测,向融合模型4025输出第一性能指标的第二结果。第二预测模型4023使用第二特征集合进行预测,向融合模型4025输出第二性能指标的第二结果。第三预测模型4024使用第三特征集合进行预测,向融合模型4025输出第三性能指标的第二结果。
融合模型4025接收到第一性能指标的第一结果,以及第二结果,可以对这两个结果进行融合,得到一个最终的第一性能指标的预测结果。同时,对第二性能指标的第一结果,以及第二结果进行融合,得到一个最终的第二性能指标的预测结果。对第三性能指标的第一结果,以及第二结果进行融合,得到一个最终的第三性能指标的预测结果。
该处针对每个性能指标只是列举了两个预测结果,实际上,每个预测模型可能会预测出多个性能指标的结果,那么每个性能指标可能会有多个结果,无论有两个还是更多个结果,都可以针对同一性能指标的结果进行融合。结果融合的策略可以包括投票(voting)、平均值(averaging)或者排名(ranking)等。关于这三种融合策略,下面分别进行说明。
若采用投票的融合策略,那么就需要对每个性能指标的第一结果和第二结果进行投票,由每个结果的票数来确定最终的预测结果。针对第一性能指标,如果第一结果的票数最高,那么第一性能指标的预测结果就为第一结果。针对第二性能指标,如果第二结果的票数最高,那么第二性能指标的预测结果就为第二结果。
若采用平均值的融合策略,那么针对每个性能指标,只需要将第一结果和第二结果相加再求平均值,得到的平均值就是相应性能指标的预测结果。
若采用排名的融合策略,那么针对每个性能指标,只需要将第一结果和第二结果进行排序,选出其中最优的一个作为该性能指标的预测结果。
需要说明的是,该处针对同一指标只是列举了两个结果,采用两个结果按照融合策略进行融合,得到相应的性能指标的预测结果。若每个性能指标有多个预测结果,也同样适用于上述所列举的融合策略。
本申请实施例提供的方案中,针对同一性能指标,使用多个预测结果进行融合再得到最终预测结果的方式有利于提高预测结果的准确度。
可选地,融合模型4025得到每个性能指标的预测结果后,还可以确定每个性能指标的置信度,置信度表示相应性能指标的可信程度。置信度是变异系数的(coefficient ofvariation)的倒数,变异系数等于多个预测结果的方差再除以平均值,所以可以通过变异系数来确定置信度。
下面以第一性能指标的置信度的确定过程为例进行说明,如:针对第一性能指标有三个预测结果,分别为预测结果1、预测结果2和预测结果3。用P1来表示预测结果1,P2来表示预测结果2,P3来表示预测结果3,用AVE来表示平均值,用S来表示方差,用C来表示变异系数,那么方差S=[(P1-AVE)2+(P2-AVE)2+(P3-AVE)2]/3,其中,AVE=(P1+P2+P3)/3,变异系数C=S/AVE,置信度=AVE/S。置信度越大,说明该融合后的第一性能指标的预测结果越可信,或者说,变异系数越小,该融合后的第一性能指标的预测结果越可信。反之,置信度越小,说明该融合后的第一性能指标的预测结果越不可信,或者说,变异系数越大,该融合后的第一性能指标的预测结果越不可信。
可选地,确定置信度后,还可以根据第一性能指标的预测结果的置信度,确定第一性能指标的优化策略。
优化策略可以有多种,有激进类型的优化策略,如:一旦确定第一性能指标的预测结果,就立即按照该预测结果调整DBMS参数。也有保守类型的优化策略,在得到第一性能指标的预测结果后不会立即调整DBMS参数,或者只会微调DBMS参数。该种可能的实现方式种,通过置信度可以对选择优化策略做出较好的指导,如果置信度较大,就可以按照第一性能指标的预测结果调整优化策略,如果置信度较小,就选择保守的优化策略。
另外,本申请实施例提供的预测数据库管理***的性能的方法,还可以对预测模型进行在线更新,如:在线更新图7中的第一预测模型、第二预测模型或第三预测模型。
以第一预测模型的在线更新为例,可以从DBMS获取历史性能特征,还可以通过数据管理模块403对历史性能特征进行管理,该管理过程可以包括:获取与第一性能指标对应的多个历史性能特征,其中,每个历史性能特征包含该历史性能特征产生的时间戳;针对每个历史性能特征,获取从时间戳所指示的时刻到至少一个第一预测模型的更新时刻所发生的关键性能事件;根据关键性能事件的数量,从多个历史性能特征中确定有效性能特征,关键性能事件越多的历史性能特征的可靠程度越低。根据与第一性能指标相对应的有效性能特征集合更新一个或多个第一预测模型,有效性能特征集合包括可靠程度满足预设条件的至少一个有效性能特征。
数据管理模块403对历史性能特征的管理可以参阅上述图3和图4对应实施例中的相应内容进行理解,此处不再重复赘述。
上述图7中,涉及到了查询引擎和人工智能引擎,下面结合图8A对查询引擎和人工智能引擎的结构进行介绍。
如图8A所示,查询引擎可以包括解析器、重写器、计划器和执行器,解析器可以对查询语句进行解析,重写器可以选取出解析后的特征,计划器可以为查询语句确定查询计划,执行器可以按照查询计划执行该查询语句。应用程序接口(application programminginterface,API)可以通过统一资源定位符(uniform resource locator,URL)发起超文本传输安全(hypertext transfer protocol secure,HTTPS)请求和人工智能引擎进行通信,该处的URL可以是cURL。
人工智能引擎包括表示应用框架的Flask模块、张量板(tensorboard)模块、模式管理(model management)模块、训练(training)模块、预测(Prediction)模块,以及张量流(tensorflow)、机器学习库(pytorch)、中央处理器(CPU)和图形处理器(GPU)。
Flask模块接收外部发送的HTTPS请求,根据该HTTPS请求拉起人工智能引擎,通过对应的API调用相关的模块和功能。
TensorBoard模块用于预测模型的在线更新以及性能指标的结果的预测过程,通过调用TensorBoard模块,可以实现训练和预测过程可视化的功能,用户可以通过该模块进行参数设置。
Model Management模块:检查HTTPS请求的预测模型参数等信息,确保预测模型被正确加载和拉起;更新和保存预测模型的参数信息和训练状态,使历史训练模型可被再次加载和调用。
Training模块:基于收集的历史计划和标签,选取合适的预测模型和特征工程流程进行训练,并返回对应的准确率,导出数据预处理流程和训练模型。在特征的自动化特征工程阶段加入递归子树生成的方式对特征进行增强,从而提升数据的利用效率和模型的泛化能力。
Prediction模块:加载对应的模型群后,各模型分别对性能指标的结果进行预测,预测的结果可以为预测模型基于自身训练准确率的加权平均结果,置信度为各模型预测结果的变异系数的倒数。
Tensorflow模块和pytorch模块为其他前述几个模块的运行提供架构,CPU和GPU为上述过程的执行提供硬件资源。
本申请实施例的预测模型可以采用如图8B所示的基于树结构的卷积神经网络(tree-base convolutional neural network,TBCNN)、如图8C所示的递归长短期记忆神经网络(recursion long short term memory,RLSTM)以及如图8D所示的深度卷积神经网络(depth convolutional neural network,DCNN)学习模型。
如图8E所示,开发人员基于本申请的方案(ML)和现有技术的代价模型(cost)针对主流的三种基准测试场景TPC-H,TPC-DS和Join Order Benchmark查询语句分别做了预测,相比于代价模型的方案,本申请实施例提供的方案处于两倍误差区间的准确率分别提升了110%、266%和53%,处于十倍误差区间的准确率分别提升了39%、50%、40%。另外如图8F所示,其中,每个横坐标的标记点位置的两个柱中低的为采用本申请的方案得到的时延,两个柱中高的为采用代价模型得到的时延。由该图8F中,每个标记点的两个柱的比较可知,本申请实施例提供的方案对查询语句性能预测的结果作为遗传算法优化器的阈值从而使得优化器提前识别性能较好的查询计划,本申请实施例提供使得Join Order Benchmark的多表连接场景端到段的性能提升了至少8.5倍。
由上述描述可知,本申请实施例提供的预测数据库管理***的性能的方法可以是通过预测装置来实现的,该预测装置可以是集成于图1D的数据库服务器中描述的DBMS108,也可以如图1E所示的独立于以上描述的DBMS108之外的,无论预测装置是集成在DBMS上还是独立于DBMS,该预测装置通过上述方法实施例部分所描述的预测过程对DBMS的性能指标进行预测。该预测装置可以是一台或多台服务器,可以是物理机,也可以是虚拟机(virtualmachine,VM)。
以上介绍了预测数据库管理***的性能的方法,以及预测模型训练的方法,下面结合附图介绍本申请实施例提供的相应装置。
图9是本申请实施例提供的预测装置的一实施例示意图。
如图9所示,本申请实施例提供的预测装置50的一实施例包括:
第一处理单元501,用于确定查询语句的查询计划。
第二处理单元502,用于根据查询语句和第一处理单元501确定的查询计划确定多个特征,并从多个特征确定至少一个特征集合,至少一个特征集合包括与第一性能指标相对应的第一特征集合,第一性能指标为描述数据库管理***的性能指标中的任意一个。
第三处理单元503,用于根据第二处理单元确定的第一特征集合确定第一性能指标的预测结果。
本申请实施例提供的方案,因为第一特征集合中所包含的特征是与第一性能指标相关的,不包含与第一性能指标无关的特征,因此不会对第一性能指标的预测结果造成额外的影响,所以该第一方面提供的方案可以提高第一性能指标的预测结果的准确度。而且,该该方案即使在复杂多变的业务场景下,都可以对各业务场景下的查询语句和查询计划进行特征提取,并根据性能指标与各类型特征的关系重组得到相应性能指标的特征集合,从而得到预测结果,即使业务场景再复杂多变,也可以准确预测出相应业务场景下该DBMS的性能指标。
可选地,第三处理单元503,用于将第一特征集合输入一个或多个第一预测模型,以得到第一性能指标的预测结果,一个或多个第一预测模型可以是采用机器学习的方式,使用第一性能指标对应的样本特征集合进行模型训练得到的。
可选地,第三处理单元503,用于若第一预测模型有多个,将第一特征集合分别输入到多个第一预测模型中的每个第一预测模型,以得到多个预测结果;根据多个预测结果确定第一性能指标的预测结果。
可选地,第三处理单元503,还用于根据多个预测结果确定第一性能指标的预测结果的置信度,置信度用于指示第一性能指标的预测结果的可信程度。
可选地,第三处理单元503,还用根据第一性能指标的预测结果的置信度,确定第一性能指标的优化策略。
可选地,第二处理单元502,用于从多个特征中确定与数据库管理***的各性能指标相对应的特征,以得到至少一个特征集合,其中,每个特征集合通过标签或映射的方式与一个性能指标相对应。
可选地,第二处理单元502用于:从多个特征中确定至少一个结构特征和至少一个特征向量,其中,结构特征用于指示查询语句或查询计划的结构,特征向量是对查询计划或查询语句编码后得到的向量;从至少一个结构特征和至少一个特征向量中,确定与第一性能指标对应的目标结构特征和目标特征向量;根据目标结构特征确定与第一性能指标对应的数据编码结构,数据编码结构上包括至少一个向量节点;将目标特征向量添加到至少一个向量节点上,以得到第一特征集合。
可选地,该装置50还包括第四处理单元504,第四处理单元504,用于根据与第一性能指标相对应的有效性能特征集合更新一个或多个第一预测模型,有效性能特征集合包括可靠程度满足预设条件的至少一个有效性能特征。
可选地,第四处理单元504用于:获取与第一性能指标对应的多个历史性能特征,其中,每个历史性能特征包含该历史性能特征产生的时间戳;针对每个历史性能特征,获取从时间戳所指示的时刻到至少一个第一预测模型的更新时刻所发生的关键性能事件;根据关键性能事件的数量,从多个历史性能特征中确定有效性能特征,关键性能事件越多的历史性能特征的可靠程度越低。
上述第一处理单元501可以位于上述图7中的查询引擎401中,第二处理单元502可以包含数据库优化器4011的功能,也可以包括人工智能引擎402中自动化特征工程部分的功能,第三处理单元503位于人工智能引擎402中,第四处理单元504位于数据管理模块403中。
图10是本申请实施例提供的预测模型训练的装置的一实施例示意图。
如图10所示,本申请实施例提供的预测模型训练的装置60的一实施例包括:
获取单元601,用于获取多对历史查询语句和历史查询计划。
第一处理单元602,用于根据获取单元601获取的每对历史查询语句和历史查询计划确定一个包含多个特征的样本集合,并从每个样本集合确定至少一个特征集合,至少一个特征集合包括与第一性能指标相对应的第一特征集合,第一性能指标为描述数据库管理***的性能指标中的任意一个。
第二处理单元603,用于使用从第一处理单元602确定的多个样本集合中确定出的多个第一特征集合对与第一性能指标对应的预测模型进行训练,以得到第一预测模型。
本申请实施例提供的方案,因为第一特征集合所包含的特征是与第一性能指标相关的,不包含与第一性能指标无关的特征,因此通过多个第一特征集合训练得到的第一预测模型对各业务场景的数据的自适应能力更好,也可以提高第一性能指标的预测结果的准确度。
可选地,至少一个特征集合还包括第二特征集合,第二特征集合与第二性能指标相对应,第二性能指标对应的预测模型与第一预测模型的结构相同,第二处理单元603,还用于在第一预测模型的基础上,初始化第二性能指标对应的预测模型;使用从多个样本集合中确定出的多个第二特征集合对初始化的与第二性能指标对应的预测模型进行训练,以得到第二预测模型,第二预测模型用于预测第二性能指标的预测结果。
可选地,第一处理单元602,用于从每个样本集合的多个特征中与数据库管理***的各性能指标相对应的特征,以得到至少一个特征集合,其中,每个特征集合与一个性能指标通过标签或映射的方式相对应。
可选地,第一处理单元602,用于从每个样本集合的多个特征中确定至少一个结构特征和至少一个特征向量,其中,结构特征用于指示历史查询语句或历史查询计划的结构,特征向量是对查询计划或查询语句编码后得到的向量;从至少一个结构特征和至少一个特征向量中,确定与第一性能指标对应的目标结构特征和目标特征向量;根据目标结构特征确定与第一性能指标对应的数据编码结构,数据编码结构上包括至少一个向量节点;将目标特征向量添加到至少一个向量节点上,以得到第一特征集合。
可选地,第一处理单元602,用于从每对历史查询语句和历史查询计划中确定多个历史性能特征,其中,每个历史性能特征包含该历史性能特征产生的时间戳;针对每个历史性能特征,获取从时间戳所指示的时刻到第一性能指标对应的预测模型的训练起始时刻所发生的关键性能事件;根据关键性能事件的数量,从多个历史性能特征中确定多个特征,关键性能事件越多的历史性能特征的可靠程度越低。
以上,本申请实施例提供的预测装置,以及预测模型训练的装置可以参阅前述方法实施例部分的相应内容进行理解,此处不再重复赘述。
图11所示,为本申请的实施例提供的上述实施例中所涉及的预测装置70的一种可能的逻辑结构示意图。预测装置70包括:处理器701、通信接口702、存储器703以及总线704。处理器701、通信接口702以及存储器703通过总线704相互连接。在本申请的实施例中,处理器701用于对预测装置70的动作进行控制管理,例如,处理器701用于执行图3中的步骤201至203,图7中步骤301至307和/或用于本文所描述的技术的其他过程。通信接口702用于支持预测装置70进行通信,例如:通信接口702可以执行上述方法实施例中接收第一参数组、第二参数组、活跃数据的数据量以及SQL语句的步骤。存储器703,用于存储数据库服务器70的程序代码和数据。
其中,处理器701可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。总线704可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
预测模型训练的装置的结构也可以参阅该图11进行理解。
参见图12,本申请实施例还提供一种数据库***,包括:数据库服务器800,与数据库服务器800通过通信网络连接的客户端设备900。其中,
客户端设备900的硬件层906上运行有客户端操作***904,操作***904上运行有应用程序902;数据库服务器800的硬件层816上运行有操作***814,以及在操作***814上运行有数据库管理***812。应用程序902经由通信网络与在数据库服务器800上运行的数据库管理***812连接并且访问或者操作存储在数据存储器818中的数据库,例如,通过SQL语句查询、更新或删除数据库中的数据,或者导入新的数据至数据库。
硬件层906和816包含操作***和应用程序运行所需的基本硬件单元,例如,处理器,例如CPU,内存(Memory)、输入/输出设备、网络接口等。
数据存储器818可以是数据库服务器800的外部存储器,比如硬盘、磁盘、存储阵列,或存储服务器等,与数据库服务器800通信连接。或者,数据存储器818也可以集成在数据库服务器800内部,与处理器和I/O设备通过总线或其它内部通信方式交互数据。
数据库服务器800的内存中存储有可执行代码,该可执行代码在被处理器执行时被配置为实现数据库管理***812的组件和功能。数据库管理***812具体可以为图3和图7所示的数据库管理***,相关功能及实现细节可参照图3至图7相关的实施例,此处不再赘述。
参见图13,本申请实施例还提供一种集群数据库***,包括:包括硬件层1007和运行在硬件层1007之上的虚拟机监控器(VMM)1001,以及多个虚拟机1002。一个虚拟机可以作为集群数据库***的一个数据节点。可选第,还可以指定一个虚拟机作为协调节点。
具体的,虚拟机1002是通过虚拟机软件在公共硬件资源上模拟出的虚拟的计算机,虚拟机上可以安装操作***和应用程序,虚拟机还可访问网络资源。对于在虚拟机中运行的应用程序而言,虚拟机就像是在真正的计算机中进行工作。
硬件层1007:虚拟化环境运行的硬件平台,可以由一个或多个物理主机的硬件资源抽象得到的。其中,硬件层可包括多种硬件,例如包括处理器1004(例如CPU)和存储器1005,还可以包括网卡1003(例如RDMA网卡)、高速/低速输入/输出(I/O,Input/Output)设备,及具有特定处理功能的其它设备。
虚拟机1002基于VMM,以及硬件层1007提供的硬件资源,运行可执行程序,以实现上述图2至图8F相关的实施例中预测装置的部分或全部功能。为了简洁,在此不再赘述。
进一步地,该集群数据库***还可以包括宿主机(Host):作为管理层,用以完成硬件资源的管理、分配;为虚拟机呈现虚拟硬件平台;实现虚拟机的调度和隔离。其中,Host可能是虚拟机监控器(VMM);也有可能是由VMM和1个特权虚拟机的结合。其中,虚拟硬件平台对其上运行的各个虚拟机提供各种硬件资源,如提供虚拟处理器(如VCPU)、虚拟内存、虚拟磁盘、虚拟网卡等等。其中,该虚拟磁盘可对应Host的一个文件或者一个逻辑块设备。虚拟机运行在Host为其准备的虚拟硬件平台上,Host上运行一个或多个虚拟机。虚拟机1002的VCPU通过执行存储在其对应的虚拟内存中的可执行程序,以实现或者执行本发明上述各方法实施例中所描述的方法步骤。例如,实现上述图2至图8F相关的实施例中预测装置的部分或全部功能。
在本申请的另一实施例中,还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当设备的至少一个处理器执行该计算机执行指令时,设备执行上述图2至图8F部分实施例所描述的预测数据库管理***的性能的方法。
在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;设备的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得设备执行上述图2至图8F部分实施例所描述的预测数据库管理***的性能的方法。
在本申请的另一实施例中,还提供一种芯片***,该芯片***包括处理器,用于支持预测装置实现上述图2至图8F部分实施例所描述的预测数据库管理***的性能的方法。在一种可能的设计中,芯片***还可以包括存储器,存储器用于预测装置必要的程序指令和数据。该芯片***,可以由芯片构成,也可以包含芯片和其他分立器件。
在本申请的另一实施例中,还提供一种芯片***,该芯片***包括处理器,用于支持预测模型训练的装置实现上述图2至图8F部分实施例所描述的预测模型训练的方法。在一种可能的设计中,芯片***还可以包括存储器,存储器用于预测模型训练的装置必要的程序指令和数据。该芯片***,可以由芯片构成,也可以包含芯片和其他分立器件。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请实施例各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以权利要求的保护范围为准。

Claims (30)

1.一种预测数据库管理***的性能的方法,其特征在于,包括:
确定查询语句的查询计划;
根据所述查询语句和所述查询计划确定多个特征,并从所述多个特征确定至少一个特征集合,所述至少一个特征集合包括与第一性能指标相对应的第一特征集合,所述第一性能指标为描述所述数据库管理***的多个性能指标中的任意一个;
根据所述第一特征集合确定所述第一性能指标的预测结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一特征集合确定所述第一性能指标的预测结果,包括:
将所述第一特征集合输入一个或多个第一预测模型,以得到所述第一性能指标的预测结果,所述一个或多个第一预测模型是使用所述第一性能指标对应的样本特征集合进行模型训练得到的。
3.根据权利要求2所述的方法,其特征在于,所述第一预测模型有多个,所述将所述第一特征集合输入一个或多个第一预测模型,以得到所述第一性能指标的预测结果,包括:
将所述第一特征集合分别输入到所述多个第一预测模型中的每个第一预测模型,以得到多个预测结果;
根据所述多个预测结果确定所述第一性能指标的预测结果。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
根据所述多个预测结果确定所述第一性能指标的预测结果的置信度,所述置信度用于指示所述第一性能指标的预测结果的可信程度。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
根据所述第一性能指标的预测结果的置信度,确定所述第一性能指标的优化策略。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述从所述多个特征确定至少一个特征集合,包括:
从所述多个特征中确定与所述数据库管理***的各性能指标相对应的特征,以得到所述至少一个特征集合,其中,每个特征集合通过标签或映射的方式与一个性能指标相对应。
7.根据权利要求1-5任一项所述的方法,其特征在于,所述从所述多个特征确定至少一个特征集合,包括:
从所述多个特征中确定至少一个结构特征和至少一个特征向量,其中,所述结构特征指示所述查询语句或所述查询计划的结构,所述特征向量是对所述查询计划或所述查询语句编码后得到的向量;
从所述至少一个结构特征和所述至少一个特征向量中,确定与所述第一性能指标对应的目标结构特征和目标特征向量;
根据所述目标结构特征确定与所述第一性能指标对应的数据编码结构,所述数据编码结构上包括至少一个向量节点;
将所述目标特征向量特征添加到所述至少一个向量节点上,以得到所述第一特征集合。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述至少一个特征集合还包括第二特征集合,所述第二特征集合与第二性能指标相对应,所述第二特征集合用于确定所述第二性能指标的预测结果。
9.根据权利要求2-5任一项所述的方法,其特征在于,所述方法还包括:
根据与所述第一性能指标相对应的有效性能特征集合更新所述一个或多个第一预测模型,所述有效性能特征集合包括可靠程度满足预设条件的至少一个有效性能特征。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
获取与所述第一性能指标对应的多个历史性能特征,其中,每个历史性能特征包含该历史性能特征产生的时间戳;
针对每个历史性能特征,获取从所述时间戳所指示的时刻到所述至少一个第一预测模型的更新时刻所发生的关键性能事件;
根据所述关键性能事件的数量,从所述多个历史性能特征中确定所述有效性能特征,所述关键性能事件越多的历史性能特征的可靠程度越低。
11.一种预测模型训练的方法,其特征在于,包括:
获取多对历史查询语句和历史查询计划;
根据每对历史查询语句和历史查询计划确定一个包含多个特征的样本集合,并从每个样本集合确定至少一个特征集合,所述至少一个特征集合包括与第一性能指标相对应的第一特征集合,所述第一性能指标为描述所述数据库管理***的多个性能指标中的任意一个;
使用从所述多个样本集合中确定出的多个第一特征集合对与所述第一性能指标对应的预测模型进行训练,以得到第一预测模型。
12.根据权利要求11所述的方法,其特征在于,所述至少一个特征集合还包括第二特征集合,所述第二特征集合与第二性能指标相对应,所述第二性能指标对应的预测模型与所述第一预测模型的结构相同,所述方法还包括:
在所述第一预测模型的基础上,初始化所述第二性能指标对应的预测模型;
使用从所述多个样本集合中确定出的多个第二特征集合,对初始化的与所述第二性能指标对应的预测模型进行训练,以得到第二预测模型,所述第二预测模型用于预测所述第二性能指标的预测结果。
13.根据权利要求11或12所述的方法,其特征在于,所述从每个样本集合确定至少一个特征集合,包括:
从所述每个样本集合的多个特征中与所述数据库管理***的各性能指标相对应的特征,以得到所述至少一个特征集合,其中,每个特征集合与一个性能指标通过标签或映射的方式相对应。
14.根据权利要求11或12所述的方法,其特征在于,所述从每个样本集合确定至少一个特征集合,包括:
从所述每个样本集合的多个特征中确定至少一个结构特征和至少一个特征向量,其中,所述结构特征用于指示所述历史查询语句或所述历史查询计划的结构,所述特征向量是对所述查询计划或所述查询语句编码后得到的向量;
从所述至少一个结构特征和所述至少一个特征向量中,确定与所述第一性能指标对应的目标结构特征和目标特征向量;
根据所述目标结构特征确定与所述第一性能指标对应的数据编码结构,所述数据编码结构上包括至少一个向量节点;
将所述目标特征向量添加到所述至少一个向量节点上,以得到所述第一特征集合。
15.根据权利要求11-14任一项所述的方法,其特征在于,所述根据每对历史查询语句和历史查询计划确定一个包含多个特征的样本集合,包括:
从每对历史查询语句和历史查询计划中确定多个历史性能特征,其中,每个历史性能特征包含该历史性能特征产生的时间戳;
针对每个历史性能特征,获取从所述时间戳所指示的时刻到所述第一性能指标对应的预测模型的训练起始时刻所发生的关键性能事件;
根据所述关键性能事件的数量,从所述多个历史性能特征中确定所述多个特征,所述关键性能事件越多的历史性能特征的可靠程度越低。
16.一种预测装置,其特征在于,包括:
第一处理单元,用于确定查询语句的查询计划;
第二处理单元,用于根据所述查询语句和所述第一处理单元确定的查询计划确定多个特征,并从所述多个特征确定至少一个特征集合,所述至少一个特征集合包括与第一性能指标相对应的第一特征集合,所述第一性能指标为描述所述数据库管理***的多个性能指标中的任意一个;
第三处理单元,用于根据所述第二处理单元确定的第一特征集合确定所述第一性能指标的预测结果。
17.根据权利要求16所述的装置,其特征在于,
所述第三处理单元,用于将所述第一特征集合输入一个或多个第一预测模型,以得到所述第一性能指标的预测结果,所述一个或多个第一预测模型是使用所述第一性能指标对应的样本特征集合进行模型训练得到的。
18.根据权利要求17所述的装置,其特征在于,所述第一预测模型有多个,
所述第三处理单元,用于将所述第一特征集合分别输入到所述多个第一预测模型中的每个第一预测模型,以得到多个预测结果;根据所述多个预测结果确定所述第一性能指标的预测结果。
19.根据权利要求17所述的装置,其特征在于,
所述第三处理单元,还用于根据所述多个预测结果确定所述第一性能指标的预测结果的置信度,所述置信度用于指示所述第一性能指标的预测结果的可信程度。
20.根据权利要求16-19任一项所述的装置,其特征在于,
所述第二处理单元,用于从所述多个特征中确定与所述数据库管理***的各性能指标相对应的特征,以得到所述至少一个特征集合,其中,每个特征集合通过标签或映射的方式与一个性能指标相对应。
21.根据权利要求16-19任一项所述的装置,其特征在于,
所述第二处理单元用于:
从所述多个特征中确定至少一个结构特征和至少一个特征向量,其中,所述结构特征用于指示所述查询语句或所述查询计划的结构,所述特征向量是对所述查询计划或所述查询语句编码后得到的向量;
从所述至少一个结构特征和所述至少一个特征向量中,确定与所述第一性能指标对应的目标结构特征和目标特征向量;
根据所述目标结构特征确定与所述第一性能指标对应的数据编码结构,所述数据编码结构上包括至少一个向量节点;
将所述目标特征特征向量添加到所述至少一个向量节点上,以得到所述第一特征集合。
22.根据权利要求17-19任一项所述的装置,其特征在于,所述装置还包括第四处理单元,
所述第四处理单元,用于根据与所述第一性能指标相对应的有效性能特征集合更新所述一个或多个第一预测模型,所述有效性能特征集合包括可靠程度满足预设条件的至少一个有效性能特征。
23.根据权利要求22所述的装置,其特征在于,
所述第四处理单元用于:
获取与所述第一性能指标对应的多个历史性能特征,其中,每个历史性能特征包含该历史性能特征产生的时间戳;
针对每个历史性能特征,获取从所述时间戳所指示的时刻到所述至少一个第一预测模型的更新时刻所发生的关键性能事件;
根据所述关键性能事件的数量,从所述多个历史性能特征中确定所述有效性能特征,所述关键性能事件越多的历史性能特征的可靠程度越低。
24.一种预测模型训练的装置,其特征在于,包括:
获取单元,用于获取多对历史查询语句和历史查询计划;
第一处理单元,用于根据所述获取单元获取的每对历史查询语句和历史查询计划确定一个包含多个特征的样本集合,并从每个样本集合确定至少一个特征集合,所述至少一个特征集合包括与第一性能指标相对应的第一特征集合,所述第一性能指标为描述所述数据库管理***的多个性能指标中的任意一个;
第二处理单元,用于使用从所述第一处理单元确定的多个样本集合中确定出的多个第一特征集合对与所述第一性能指标对应的预测模型进行训练,以得到第一预测模型。
25.根据权利要求24所述的装置,其特征在于,所述至少一个特征集合还包括第二特征集合,所述第二特征集合与第二性能指标相对应,所述第二性能指标对应的预测模型与所述第一预测模型的结构相同,
第二处理单元,还用于在所述第一预测模型的基础上,初始化所述第二性能指标对应的预测模型;使用从所述多个样本集合中确定出的多个第二特征集合,对初始化的与所述第二性能指标对应的预测模型进行训练,以得到第二预测模型,所述第二预测模型用于预测所述第二性能指标的预测结果。
26.一种预测装置,其特征在于,所述装置包括至少一个处理器、存储器及存储在所述存储器上并可被所述至少一个处理器执行的指令,其特征在于,所述至少一个处理器执行所述指令,以实现权利要求1至10中任一项所述的方法的步骤。
27.一种预测模型训练的装置,其特征在于,包括:所述装置包括至少一个处理器、存储器及存储在所述存储器上并可被所述至少一个处理器执行的指令,其特征在于,所述至少一个处理器执行所述指令,以实现权利要求11至15中任一项所述的方法的步骤。
28.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至10中任一项所述的方法,或者,该程序被处理器执行时实现权利要求11至15中任一项所述的方法。
29.一种数据库***,其特征在于,包括数据库和集成有权利要求16至23中任一项所述的预测装置的数据库管理***。
30.一种数据库***,其特征在于,包括权利要求16至23中任一项所述的预测装置、数据库管理***和数据库。
CN202010555420.1A 2020-06-17 2020-06-17 一种预测数据库管理***的性能的方法、装置及*** Pending CN113806190A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010555420.1A CN113806190A (zh) 2020-06-17 2020-06-17 一种预测数据库管理***的性能的方法、装置及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010555420.1A CN113806190A (zh) 2020-06-17 2020-06-17 一种预测数据库管理***的性能的方法、装置及***

Publications (1)

Publication Number Publication Date
CN113806190A true CN113806190A (zh) 2021-12-17

Family

ID=78943249

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010555420.1A Pending CN113806190A (zh) 2020-06-17 2020-06-17 一种预测数据库管理***的性能的方法、装置及***

Country Status (1)

Country Link
CN (1) CN113806190A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116401232A (zh) * 2023-03-24 2023-07-07 天云融创数据科技(北京)有限公司 数据库参数配置优化方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140136512A1 (en) * 2012-11-09 2014-05-15 International Business Machines Corporation Relative performance prediction of a replacement database management system (dbms)
CN107291060A (zh) * 2016-03-31 2017-10-24 上海海事大学 基于Oracle数据库的大规模工业信息控制***及其控制方法
CN108804473A (zh) * 2017-05-04 2018-11-13 华为技术有限公司 数据查询的方法、装置和数据库***
CN110109951A (zh) * 2017-12-29 2019-08-09 华为软件技术有限公司 一种关联查询的方法、数据库应用***及服务器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140136512A1 (en) * 2012-11-09 2014-05-15 International Business Machines Corporation Relative performance prediction of a replacement database management system (dbms)
CN107291060A (zh) * 2016-03-31 2017-10-24 上海海事大学 基于Oracle数据库的大规模工业信息控制***及其控制方法
CN108804473A (zh) * 2017-05-04 2018-11-13 华为技术有限公司 数据查询的方法、装置和数据库***
CN110109951A (zh) * 2017-12-29 2019-08-09 华为软件技术有限公司 一种关联查询的方法、数据库应用***及服务器

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116401232A (zh) * 2023-03-24 2023-07-07 天云融创数据科技(北京)有限公司 数据库参数配置优化方法、装置、电子设备及存储介质
CN116401232B (zh) * 2023-03-24 2024-01-30 天云融创数据科技(北京)有限公司 数据库参数配置优化方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US10936588B2 (en) Self-described query execution in a massively parallel SQL execution engine
CA2953959C (en) Feature processing recipes for machine learning
CN103177055B (zh) 存储为行存储和列存储二者的混合数据库表
CN108804473B (zh) 数据查询的方法、装置和数据库***
CN106897322A (zh) 一种数据库和文件***的访问方法和装置
US20070250517A1 (en) Method and Apparatus for Autonomically Maintaining Latent Auxiliary Database Structures for Use in Executing Database Queries
US11556590B2 (en) Search systems and methods utilizing search based user clustering
CN101587491A (zh) 使用运行时可重配置硬件的混合数据库***
US11200223B2 (en) System and method for dependency analysis in a multidimensional database environment
CN103970902A (zh) 一种大量数据情况下的可靠即时检索方法及***
CN108536692A (zh) 一种执行计划的生成方法、装置及数据库服务器
US9646051B1 (en) Query plan management in shared distributed data stores
CN113806190A (zh) 一种预测数据库管理***的性能的方法、装置及***
Bailis et al. Readings in database systems
US11294906B2 (en) Database record searching with multi-tier queries
CN116739336A (zh) 基于多源异构数据融合模型的电网灾害预警方法及***
US11947537B1 (en) Automatic index management for a non-relational database
Reniers et al. Schema design support for semi-structured data: Finding the sweet spot between NF and De-NF
Uttamchandani The Self-Service Data Roadmap
US11940966B2 (en) Method, apparatus, and system for estimating database management system performance
Affetti New horizons for stream processing
Kvet et al. Classification rules for temporal databases
Graf et al. Frost: Benchmarking and exploring data matching results
Ingemarsson Database Performance for GIS: A Comparison of Database Schemas for Measurements with Spatial Attributes
Brugnara UNDERSTANDING AND MANAGING COMPLEX DATASETS

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