掌桥专利:专业的专利平台
掌桥专利
首页

一种存储的方法及装置

文献发布时间:2023-06-19 18:30:43


一种存储的方法及装置

技术领域

本发明涉及大数据技术领域,尤其涉及一种存储的方法及装置。

背景技术

随着科技的不断发展,针对不同业务产生的业务数据也越来越多。当业务数据存储在不同的数据库时,对应的数据模型也是不同的,例如,数据源存储在关系型数据库中,对应的数据模型为二维表模型;数据源存储在键值型数据库中,对应的数据模型为KV模型;数据源存储在面向文档型数据库中,对应的数据模型为全文检索模型。

目前,将业务数据同时存储在每个数据模型中,从而实现业务数据可以同时具有多种业务处理的能力。但是由于存储资源是有限的,会导致没有合理的使用存储空间。

综上,如何实现合理的使用存储空间,是当前亟需解决的技术问题。

发明内容

本发明实施例提供一种存储的方法及装置,用以解决现有技术中没有合理的使用存储空间的问题。

第一方面,本发明实施例提供一种存储的方法,包括:获取多个目标查询语句;基于每个目标查询语句与N个业务类型之间的匹配关系,确定所述N个业务类型各自对应的查询语句比例;基于所述N个业务类型的查询语句比例,以及所述N个业务类型各自在M种存储模型下存储时对应的执行代价,确定所述M种存储模型各自对应的执行效率,其中,N和M为正整数;基于所述M种存储模型各自对应的执行效率,以及所述M种存储模型各自对应的占用存储空间,从所述M种存储模型中确定用于存储所述N个业务类型的业务数据的至少一个目标存储模型。

本发明实施例中,通过根据目标查询语句,从而较准确的确定M种存储模型各自对应的执行效率,通过考虑存储模型存在占用存储空间,因此,通过根据M种存储模型各自对应的执行效率和M种存储模型各自对应的占用存储空间,从而可以实现较准确的从M种存储模型中确定用于存储N个业务类型的业务数据的至少一个目标存储模型,进而在有限的存储空间中选择出至少目标存储模型,实现可以合理的使用存储空间。

可选的,所述基于所述M种存储模型各自对应的执行效率,以及所述M种存储模型各自对应的占用存储空间,从所述M种存储模型中确定用于存储所述N个业务类型的业务数据的至少一个目标存储模型,包括:基于每种存储模型对应的执行效率和占用存储空间,确定每种存储模型的存储性价比;基于所述M种存储模型各自对应的存储性价比,从所述M种存储模型中确定用于存储所述N个业务类型的业务数据的至少一个目标存储模型。

本发明实施例中,通过确定M种存储模型各自对应的存储性价比,可以实现从M种存储模型中较准确的确定用于存储N个业务类型的业务数据的至少一个目标存储模型,进而实现在有限的存储空间中,平衡存储与性能之间的关系,实现合理的使用存储空间。

可选的,所述基于所述M种存储模型各自对应的存储性价比,从所述M种存储模型中确定用于存储所述N个业务类型的业务数据的至少一个目标存储模型,包括:对获得的多个存储性价比进行排序,获得目标排序结果;按照所述目标排序结果依次从所述M种存储模型选取目标存储模型保存至预设存储区,直到所述预设存储区的剩余存储空间小于下一个添加的目标存储模型的占用存储空间时停止;选取已添加至所述预设存储区的至少一个目标存储模型存储所述N个业务类型的业务数据。

本发明实施例中,由于预设存储区的存储空间是有限的,因此,需要对获得的多个存储性价比进行排序,然后根据排序结果从M种存储模型中选取目标存储模型,从而实现平衡存储与性能之间的关系,进而实现合理的使用存储空间。

可选的,所述获取多个目标查询语句,包括:获取多个历史查询语句;采用目标模板将每个历史查询语句,转换为相应的候选查询语句;基于获得的多个候选查询语句各自对应的访问频率,从所述多个候选查询语句中筛选出多个目标查询语句。

本发明实施例中,由于获取的历史查询语句的数量较多,且格式不统一,因此,首先需要采用目标模板将历史查询语句转换成相应的候选查询语句,从而实现将历史查询语句的格式统一,便于后续确定目标存储模型。然后根据获得的多个候选查询语句各自对应的访问频率,筛选出多个目标查询语句,从而实现避免因历史查询语句因数量较多而导致后续处理复杂的问题,进而提高后续确定目标存储模型的效率。

可选的,所述基于获得的多个候选查询语句各自对应的访问频率,从所述多个候选查询语句中筛选出多个目标查询语句,包括:基于获得的多个候选查询语句各自对应的访问频率,对所述多个候选查询语句进行一次聚类,获得多个查询语句簇;从所述多个查询语句簇中,筛选出多个目标查询语句。

本发明实施例中,通过根据多个候选查询语句各自对应的访问频率进行聚类,从而实现从多个候选查询语句中筛选出多个目标查询语句,进而实现后续根据多个目标查询语句可以较准确的确定目标存储模型。

可选的,所述基于获得的多个候选查询语句各自对应的访问频率,从所述多个候选查询语句中筛选出多个目标查询语句,包括:将每个候选查询语句输入分类模型,确定每个候选查询语句的访问频率类型,其中,所述分类模型的训练样本包括:基于历史访问频率聚类获得的多个查询语句集合;基于所述多个候选查询语句的访问频率类型,从所述多个候选查询语句中筛选出多个目标查询语句。

本发明实施例中,通过将候选查询语句输入至分类模型中,可以快速的确定候选查询语句的访问频率类型,通过根据候选查询语句的访问频率类型,从多个候选查询语句中筛选出多个目标查询语句,从而实现提高确定目标查询语句的效率。

可选的,所述基于每个目标查询语句与多个业务类型之间的匹配关系,确定所述多个业务类型各自对应的查询语句比例,包括:根据每个目标查询语句的解析树特征,从多个业务类型中确定每个目标查询语句的目标业务类型;基于所述多个目标查询语句各自对应的目标业务类型,确定所述多个业务类型各自对应的查询语句比例。

本发明实施例中,通过根据每个目标查询语句的解析树特征进行聚类,从而可以实现从多个业务类型中确定每个目标查询语句的目标业务类型以及多个业务类型各自对应的查询语句比例,进而便于后续根据多个业务类型各自对应的查询语句比例较准确的确定目标存储模型。

可选的,所述根据每个目标查询语句的解析树特征,从多个业务类型中确定每个目标查询语句的目标业务类型,包括:基于所述多个目标查询语句的解析树特征,对所述多个目标查询语句进行二次聚类,并基于聚类结果从多个业务类型中确定每个目标查询语句的目标业务类型。

本发明实施例中,通过根据多个目标查询语句的解析树特征,对多个目标查询语句进行二次聚类,从而实现确定多个目标查询语句的目标业务类型,便于后续可以确定目标业务类型对应的查询语句比例,从而便于后续可以较准确的确定目标存储模型。

第二方面,本发明实施例还提供一种存储的装置,包括:获取单元,用于获取多个目标查询语句;处理单元,用于基于每个目标查询语句与N个业务类型之间的匹配关系,确定N个业务类型各自对应的查询语句比例;基于N个业务类型的查询语句比例,以及N个业务类型各自在M种存储模型下存储时对应的执行代价,确定M种存储模型各自对应的执行效率,其中,N和M为正整数;基于M种存储模型各自对应的执行效率,以及M种存储模型各自对应的占用存储空间,从M种存储模型中确定用于存储N个业务类型的业务数据的至少一个目标存储模型。

可选的,基于M种存储模型各自对应的执行效率,以及M种存储模型各自对应的占用存储空间,从M种存储模型中确定用于存储N个业务类型的业务数据的至少一个目标存储模型,包括:基于每种存储模型对应的执行效率和占用存储空间,确定每种存储模型的存储性价比;基于M种存储模型各自对应的存储性价比,从M种存储模型中确定用于存储N个业务类型的业务数据的至少一个目标存储模型。

可选的,处理单元具体用于:对获得的多个存储性价比进行排序,获得目标排序结果;按照目标排序结果依次从M种存储模型选取目标存储模型保存至预设存储区,直到预设存储区的剩余存储空间小于下一个添加的目标存储模型的占用存储空间时停止;选取已添加至预设存储区的至少一个目标存储模型存储N个业务类型的业务数据。

可选的,获取单元具体用于:获取多个历史查询语句;采用目标模板将每个历史查询语句,转换为相应的候选查询语句;基于获得的多个候选查询语句各自对应的访问频率,从多个候选查询语句中筛选出多个目标查询语句。

可选的,获取单元具体用于:基于获得的多个候选查询语句各自对应的访问频率,对多个候选查询语句进行一次聚类,获得多个查询语句簇;从多个查询语句簇中,筛选出多个目标查询语句。

可选的,获取单元具体用于:将每个候选查询语句输入分类模型,确定每个候选查询语句的访问频率类型,其中,分类模型的训练样本包括:基于历史访问频率聚类获得的多个查询语句集合;基于多个候选查询语句的访问频率类型,从多个候选查询语句中筛选出多个目标查询语句。

可选的,处理单元具体用于:根据每个目标查询语句的解析树特征,从多个业务类型中确定每个目标查询语句的目标业务类型;基于多个目标查询语句各自对应的目标业务类型,确定多个业务类型各自对应的查询语句比例。

可选的,处理单元具体用于:基于多个目标查询语句的解析树特征,对多个目标查询语句进行二次聚类,并基于聚类结果从多个业务类型中确定每个目标查询语句的目标业务类型。

第三方面,本发明实施例还提供一种电子设备,包括至少一个处理器以及至少一个存储器,其中,所述存储器存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行上述第一方面中的存储的方法。

第四方面,本发明实施例还提供一种计算机可读存储介质,所述存储介质存储有程序,当所述程序在计算机上运行时,使得计算机实现执行上述第一方面中的存储的方法。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供一种存储的方法流程图;

图2为本发明实施例提供的一种获取多个目标查询语句的方法流程图;

图3为本发明实施例提供的一种确定多个业务类型各自对应的查询语句比例的方法流程图;

图4为本发明实施例提供的一种确定目标存储模型的方法流程图;

图5为本发明实施例提供的一种存储的装置的结构示意图;

图6为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

下面,对本申请中的部分用于进行通用解释说明,以便于本领域技术人员理解,并不对本申请中的用语进行限定。

1、数据库:数据库是按一定的组织形式存储在一起的相互关联的数据集合。数据库中的数据并不是分散的、孤立的,而是按照某种数据模型组织起来的。

2、数据模型:由于数据库中的数据是有结构的,这些结构反应了事物与事物之间的联系,对这种结构的描述就是数据模型,是表示数据与数据之间联系的方法。

在一种可能的场景下,随着越来越多的企业对数字化的需求逐渐提升,从而促进了很多新的应用的开发和推广,其中,在新应用的开发过程中,一份数据往往需要多种不同的数据源来表示再进行联合分析,其中,当业务数据存储在不同的数据库时,对应的数据模型也是不同的,举个例子,若有三种数据模型,分别是二维表模型、KV模型和全文检索模型等。其中二维表模型一般存放在Mysql等关系型数据库上,KV模型一般存放在Redis等内存数据库,全文检索一般存放在ES/Solar等开源系统上。

举个例子,若业务数据以交易数据,通常会将交易数据存储在关系型数据库中,但是若需要对交易数据中某一列或者某几列数据进行全文检索的时候,则需要将这几列单独存放在ES上进行对应的分词、检索等功能,如果需要对交易数据做高性能点查,则需要将交易数据加载到Redis中。综上所述,该交易数据需要三种业务处理能力,分别是关系库模型能力、全文检索模型能力、KV模型能力。

为了实现上述例子中交易数据可以具备这三种业务数据能力,一般是将交易数据同时导入上述关系型数据库、ES和Redis中,但是由于预设存储区的存储空间是有限的,如果将交易数据同时导入上述关系型数据库、ES和Redis中,会出现存储空间不足的情况,从而导致没有合理的使用存储空间。为了便于理解本方案,需要说明的是,上述提到的数据库相当于本方案中的存储模型。

鉴于此,为本发明实施例提供一种存储的方法,从而实现合理的使用存储空间。

如图1所示,为本发明实施例提供的一种存储的方法流程图,该方法包括以下步骤:

步骤101,获取多个目标查询语句。

本发明实施例中,可以将业务数据根据业务类型划分成多个种类。举个例子,业务类型可以有五类,分别是点查、跑批、搜索场景、复杂联机分析处理(On-Line AnalyticalProcessing,OLAP)、简单OLAP。其中,若业务数据的业务类型是点查的话,运行在Mysql或Redis中的效果比较好,若业务数据的业务类型是搜索的话,运行在MongoDB或ES上中的效果比较好,若业务数据的业务类型是简单OLAP的话,运行在Greenplum中的效果比较好,若业务数据的业务类型是复杂OLAP的话,运行在Spark Sql中的效果比较好。若业务数据的业务类型是跑批的话,运行在Hadoop中的效果比较好。因此,若多个业务数据可以对应五类业务类型的话,为了业务数据可以同时具备多种业务处理能力,在一种理想状态下,通过将多种业务类型同时存储在上述提到的存储模型中,可以实现业务数据可以同时具备多种业务处理的能力,但是在现实情况下,由于预设存储区的存储空间是有限的,无法将所有的业务数据都存储在存储模型中,因此,需要从多个存储模型中筛选出目标存储模型,从而实现在有限的存储空间中可以合理的使用存储空间。首先,需要获取多个目标查询语句,便于后续根据多个目标查询语句与业务类型之间的关系,实现从多个存储模型中较准确的筛选出目标存储模型。

步骤102,基于每个目标查询语句与N个业务类型之间的匹配关系,确定N个业务类型各自对应的查询语句比例。

本发明实施例中,基于每个目标查询语句与N个业务类型之间的匹配关系,可以确定N个业务类型各自对应的查询语句的数量,然后根据N个业务类型各自对应的查询语句的数量来确定N个业务类型各自对应的查询语句比例。举个例子,若目标查询语句共10个,业务类型共5种,分别是点查、跑批、搜索场景、复杂OLAP、简单OLAP。其中点查对应的查询语句的数量为2个,跑批对应的查询语句的数量为2个,搜索对应的查询语句的数量为2个,场景对应的查询语句的数量为2个,复杂OLAP对应的查询语句的数量为2个,简单OLAP对应的查询语句的数量为2个,那么点查对应的查询语句比例为1/5,跑批对应的查询语句比例为1/5,搜索场景对应的查询语句比例为1/5,复杂OLAP对应的查询语句比例为1/5,简单OLAP对应的查询语句比例为1/5。

步骤103,基于N个业务类型的查询语句比例,以及N个业务类型各自在M种存储模型下存储时对应的执行代价,确定M种存储模型各自对应的执行效率。

本发明实施例中,首先,N个业务类型各自在M种存储模型下存储时对应的执行代价的代价矩阵通过公式1可以表示:

然后根据N个业务类型的查询语句比例和N个业务类型各自在M种存储模型下存储时对应的执行代价,可以确定M种存储模型各自对应的执行效率,其中,确定M种存储模型各自对应的执行效率通过公式2表示:

其中,Kn表示业务类型的查询语句比例。

步骤104,基于M种存储模型各自对应的执行效率,以及M种存储模型各自对应的占用存储空间,从M种存储模型中确定用于存储N个业务类型的业务数据的至少一个目标存储模型。

本发明实施例中,由于存储模型在没有存储业务数据时,也有占用空间,而且预设存储区的存储空间是有限的,为了较准确从M种存储模型中确定目标存储模型,需要根据M种存储模型各自对应的执行效率和M种存储模型各自对应的占用存储空间,从而实现从M种存储模型中确定用于存储N个业务类型的业务数据的至少一个目标存储模型。

通过上述步骤101至步骤104可以看出,通过根据目标查询语句,从而较准确的确定M种存储模型各自对应的执行效率,通过考虑存储模型存在占用存储空间,因此,通过根据M种存储模型各自对应的执行效率和M种存储模型各自对应的占用存储空间,从而可以实现较准确的从M种存储模型中确定用于存储N个业务类型的业务数据的至少一个目标存储模型,进而在有限的存储空间中选择出至少目标存储模型,实现可以合理的使用存储空间。

为了较准确的从M种存储模型中确定用于存储N个业务类型的业务数据的至少一个目标存储模型,首先需要确定步骤101中是如何获取多个目标查询语句。为了便于本方案的理解,下面介绍如何获取多个目标查询语句。

如图2所示,为本发明实施例提供的一种获取多个目标查询语句的方法流程图,该方法包括以下步骤:

步骤201,获取多个历史查询语句。

本发明实施例中,由于获取的历史查询语句的数量较多,而且历史查询语句中可以分为两类,一类是具有较高的参考价值的查询语句,根据该查询语句可以便于后续较准确的确定目标存储模型,另一类是具有较低的参考价值的查询语句,由于该查询语句的参考价值较低,对后续确定目标存储模型的准确性的影响并不大,反而会降低确定目标存储模型的速度。因此,获取多个历史查询语句之后,首先需要从历史查询语句中筛选得到目标查询语句,从而实现根据目标查询语句可以较准确的从M种存储模型中确定用于存储N个业务类型的业务数据的至少一个目标存储模型。

步骤202,采用目标模板将每个历史查询语句,转换为相应的候选查询语句。

本发明实施例中,由于历史查询语句的格式是各式各样的,并不利于后续确定目标存储模型。因此,通过采用目标模板,将每个历史查询语句转换成相应的候选查询语句,从而实现每个历史查询语句的格式统一化,便于后续统计历史查询语句的访问频率,进而便于后续较准确的确定目标存储模型。其中目标模板可以是SQL模板,也可以是其他模板,在此不做限定。

步骤203,基于获得的多个候选查询语句各自对应的访问频率,从多个候选查询语句中筛选出多个目标查询语句。

本发明实施例中,通过上述步骤202,可以获取多个候选查询语句,但是由于候选查询语句的数量较多,基于获取的多个候选查询语句各自对应的访问频率,可以从多个候选查询语句中筛选出多个目标查询语句,从而实现提高后续确定目标存储模型的准确性。可以理解的是,基于获得的多个候选查询语句各自对应的访问频率,对多个候选查询语句进行一次聚类,获得多个查询语句簇;从多个查询语句簇中,筛选出多个目标查询语句。具体来说,基于获得的多个候选查询语句各自对应的访问频率进行聚类,其中聚类算法可以是DBSCAN算法,也可以是其他算法,在此不做限定。其中,标准的DBSCAN算法的具体步骤如下:首先,会对所有节点与待聚类点进行距离计算,以选择聚类中心。本方案仅计算待聚类点与已有聚类中心的距离,聚类中心代表整个类用于预测工作负载,且可以降低计算开销,更适用于在线聚类场景。对任意一个新SQL模板,计算其历史访问频次与现有聚类中心的距离,判断是否超过阈值;检测已聚类的SQL模板与聚类中心点的距离,如果相似度低于阈值,则从当前聚类中移除;计算聚类中心之间的距离,如果超过阈值,则合并两个聚类。通过这样聚类步骤可以保证该在线聚类算法能够对数据做到自适应,并且保证聚类中的SQL模板与聚类中心始终是相似的。

通过上述步骤201至步骤203可以看出,通过采用目标模板将每个历史查询语句转换成相应的候选查询语句,从而首先将历史查询语句的格式统一化,便于后续根据候选查询语句较快速以及较准确的确定目标查询语句。由于候选查询语句的数量较多,将访问频率大于第一阈值的候选查询语句确定为目标查询语句,删掉访问频率第一阈值的候选查询语句,降低后续根据查询语句确定目标存储模型的计算量,提高后续根据查询语句确定目标存储模型的准确性。

本发明实施例中,获取目标查询语句之后,需要通过根据目标查询语句与多个业务类型之间的匹配关系,从而确定多个业务类型各自对应的查询语句比例,进而实现根据多个业务类型各自对应的查询语句可以较准确的确定目标存储模型。为了便于本方案的理解,下面介绍如何确定多个业务类型各自对应的查询语句比例。

如图3所示,为本发明实施例提供的一种确定多个业务类型各自对应的查询语句比例的方法流程图,该方法包括以下步骤:

步骤301,根据每个目标查询语句的解析树特征,从多个业务类型中确定每个目标查询语句的目标业务类型。

本发明实施例中,根据每个目标查询语句的解析树特征进行聚类,可以从多个业务类型中确定每个目标查询语句的目标业务类型。

步骤302,基于多个目标查询语句各自对应的目标业务类型,确定多个业务类型各自对应的查询语句比例。

本发明实施例中,基于多个目标查询语句各自对应的目标业务类型,可以确定多个业务类型各自对应的查询语句比例,具体可以参考上述步骤102,在此不做赘述。

通过上述步骤301至步骤302可以看出,通过根据每个目标查询语句的解析树特征进行聚类,从而可以实现从多个业务类型中确定每个目标查询语句的目标业务类型以及多个业务类型各自对应的查询语句比例,进而便于后续根据多个业务类型各自对应的查询语句比例较准确的确定目标存储模型。

本发明实施例中,确定多个业务类型各自对应的查询语句比例之后,可以根据多个业务类型各自对应的查询语句比例以及N个业务类型各自在M种存储模型下存储时对应的执行代价,可以较准确的确定M种存储模型各自对应的执行效率。然后根据M种存储模型各自对应的执行效率,可以较准确的从M种存储模型中确定用于存储N个业务类型的业务数据的至少一个目标存储模型,为了便于理解本方案,下面介绍如何从M种存储模型中确定用于存储N个业务类型的业务数据的至少一个目标存储模型。

如图4所示,为本发明实施例提供的一种确定目标存储模型的方法流程图,该方法包括以下步骤:

步骤401,基于每种存储模型对应的执行效率和占用存储空间,确定每种存储模型的存储性价比。

本发明实施例中,由于每种存储模型在没有存储任何业务数据的时候,自身的数据信息也会占用一部分存储空间,为了便于理解方案,将每种存储模型自身的数据信息占用的存储空间定义为每种存储模型的占用存储空间。为了提高每种存储模型的存储性价比的准确性,需要考虑每种存储模型的占用存储空间,具体来说,通过基于每种存储模型对应的执行效率以及占用存储空间,可以较准确的确定每种存储模型的存储性价比,可以通过公式3表示:

C=sort(Lm/Sm) 公式3

其中,C标识存储性价比;Lm表示存储模型对应的执行效率;Sm表示存储模型的占用空间。

步骤402,对获得的多种存储性价比进行排序,获得目标排序结果。

本发明实施例中,通过上述步骤401可以确定每种存储模型的存储性价比,然后根据获取的多种存储性价比进行排序,可以获得目标排序结果。举个例子,由于存储空间是有限的,总的存储空间为10G,其中,存储模型分为存储模型A、存储模型B、存储模型C和存储模型D,存储模型A的存储空间为2G,存储模型B的存储空间为2G,存储模型C的存储空间为3G,存储模型D的存储空间为3G,业务类型分为业务类型E、业务类型F、业务类型G、业务类型H、业务类型L,业务类型E在存储模型A中的性能比较好,在其他存储模型的性能次于存储模型A,业务类型F在存储模型B中的性能比较好,在其他存储模型的性能次于存储模型B,业务类型G和业务类型H在存储模型C中的性能比较好,在其他存储模型的性能次于存储模型C,业务类型L在存储模型D中的性能比较好,在其他存储模型的性能次于存储模型D。在理想状态下,为了实现业务类型E、业务类型F、业务类型G、业务类型H、业务类型L对应的业务数据可以对应存储在性能较好的存储模型中,则需要将业务类型E、业务类型F、业务类型G、业务类型H、业务类型L同时存储在存储模型A、存储模型B、存储模型C和存储模型D中,但是由于总的存储空间是有限的,只有10G,而且存储模型A的存储空间为2G,存储模型B的存储空间为2G,存储模型C的存储空间为3G,存储模型D的存储空间为3G,若多个业务类型对应的业务数据所需要的存储空间为3G,那么存储模型A和存储模型B无法将业务数据全部存储在。因此,在考虑性能的同时,也需要考虑存储空间是有限的,首先需要根据获取的多种存储性价比进行排序,然后获得目标排序的结果,便于后续根据目标排序的结果,从而实现从多种存储模型中确定用于存储多种业务类型的业务数据的至少一个目标存储模型,进而实现可以合理的使用存储空间。

步骤403,按照目标排序结果依次从M种存储模型选取目标存储模型保存至预设存储区,直到预设存储区的剩余存储空间小于下一个添加的目标存储模型的占用存储空间时停止。

本发明实施例中,由于预设存储区的存储空间是有限的,因此,首先会按照目标排序结果依次从M种存储模型选取目标存储模型保存至预设存储区。举个例子,若预设存储区的存储空间为10G,其中存储模型共有4种,分别是存储模型A、存储模型B、存储模型C和存储模型D,存储模型A的存储空间为4G,存储模型B的存储空间为6G,存储模型C的存储空间为5G,存储模型D的存储空间为3G,其中这四种存储模型的目标排序结果为存储模型A、存储模型B、存储模型C和存储模型D,可以理解的是,存储模型A的性价比最高,然后是存储模型B的性价比低于存储模型A,存储模型C的性价比低于存储模型B,存储模型D的性价比低于存储模型C。因此,会首先将存储模型A保存至预设存储区中,然后预设存储区的剩余存储空间为10G-4G=6G,由于预设存储区的剩余存储空间与存储模型B的存储空间是相同的,因此,可以将存储模型B保存至预设存储区中,然后预设存储区的剩余存储空间为6G-6G=0G,由于预设存储区的剩余存储空间小于存储模型C的存储空间,因此,预设存储区的存储空间保存存储模型A和存储模型B。因为预设存储区的存储空间是有限的,通过确定M种存储模型的性价比,将性价比较高的存储模型优先存储在预设存储区的存储空间中,从而实现在有限的存储空间内,最大化提高业务类型对应的业务数据在存储模型中的性能,进而实现合理的使用存储空间。

步骤404,选取已添加至预设存储区的至少一个目标存储模型存储N个业务类型的业务数据。

本发明实施例中,通过步骤403可以确定至少一个目标存储模型,然后通过选取已添加至预设存储区的至少一个目标存储模型存储N个业务类型的业务数据,从而实现在有限的存储空间里,选取性价比较高的存储模型为目标存储模型,使得在考虑存储空间的前提下,最大化提高业务类型对应的业务数据在存储模型中的性能。进而实现平衡存储与性能之间的关系,实现合理的使用存储空间。

通过步骤401至步骤404可以看出,通过根据存储模型的性价比从M种存储模型中确定至少一个目标存储模型,从而实现在有限的存储空间内,平衡存储与性能之间的关系,进而实现合理的使用存储空间。

本发明实施例中,为了便于后续快速的从多个候选查询语句中筛选出多个目标查询语句,提高确定目标查询语句的速度,可以首先将训练样本输入至分类模型中,从而实现训练分类模型可以较准确的确定候选查询语句的访问频率类型,了其中分类模型的训练样本包括:基于历史访问频率聚类获得的多个查询语句集合。然后将每个候选查询语句输入至分类模型中,确定每个候选查询语句的访问频率类型,然后根据多个候选查询语句的访问频率类型,从而实现从多个候选查询语句中筛选出多个目标查询语句。

本发明实施例中,若在第一时间阈值内,存在新增的候选查询语句,那么会将新增的候选查询语句输入至分类模型中,确定新增的候选查询语句的访问频率类型,其中,存在两种情况,第一种情况是新增的候选查询语句的访问频率类型是分类模型中已知的访问频率类型,第二种情况是新增的候选查询语句的访问频率类型是分类模型中未知的访问频率类型。下面分别来介绍这两种不同的情况是如何进行较准确的确定目标查询语句的。

第一种情况

将新增的候选查询语句输入至分类模型中,确定新增的候选查询语句的访问频率类型,然后根据新增的候选查询语句的访问频率类型,从新增的候选查询语句中筛选出多个目标查询语句。

第二种情况

将新增的候选查询语句输入至分类模型中,由于该新增的候选查询语句的访问频率类型是分类模型中未知的访问频率类型,因此,分类模型无法确定新增的候选查询语句的访问频率类型,新增的候选查询语句需要进行步骤202至步骤202从而实现确定多个目标查询语句。具体内容请参见步骤202和步骤203,在此不做赘述。

基于上述同样的技术构思,本发明实施例还提供一种存储的装置,如图5所示,该装置500包括:获取单元501,用于获取多个目标查询语句;处理单元502,用于基于每个目标查询语句与N个业务类型之间的匹配关系,确定N个业务类型各自对应的查询语句比例;基于N个业务类型的查询语句比例,以及N个业务类型各自在M种存储模型下存储时对应的执行代价,确定M种存储模型各自对应的执行效率,其中,N和M为正整数;基于M种存储模型各自对应的执行效率,以及M种存储模型各自对应的占用存储空间,从M种存储模型中确定用于存储N个业务类型的业务数据的至少一个目标存储模型。

可选的,基于M种存储模型各自对应的执行效率,以及M种存储模型各自对应的占用存储空间,从M种存储模型中确定用于存储N个业务类型的业务数据的至少一个目标存储模型,包括:基于每种存储模型对应的执行效率和占用存储空间,确定每种存储模型的存储性价比;基于M种存储模型各自对应的存储性价比,从M种存储模型中确定用于存储N个业务类型的业务数据的至少一个目标存储模型。

可选的,处理单元502具体用于:对获得的多个存储性价比进行排序,获得目标排序结果;按照目标排序结果依次从M种存储模型选取目标存储模型保存至预设存储区,直到预设存储区的剩余存储空间小于下一个添加的目标存储模型的占用存储空间时停止;选取已添加至预设存储区的至少一个目标存储模型存储N个业务类型的业务数据。

可选的,获取单元501具体用于:获取多个历史查询语句;采用目标模板将每个历史查询语句,转换为相应的候选查询语句;基于获得的多个候选查询语句各自对应的访问频率,从多个候选查询语句中筛选出多个目标查询语句。

可选的,获取单元501具体用于:基于获得的多个候选查询语句各自对应的访问频率,对多个候选查询语句进行一次聚类,获得多个查询语句簇;从多个查询语句簇中,筛选出多个目标查询语句。

可选的,获取单元501具体用于:将每个候选查询语句输入分类模型,确定每个候选查询语句的访问频率类型,其中,分类模型的训练样本包括:基于历史访问频率聚类获得的多个查询语句集合;基于多个候选查询语句的访问频率类型,从多个候选查询语句中筛选出多个目标查询语句。

可选的,处理单元502具体用于:根据每个目标查询语句的解析树特征,从多个业务类型中确定每个目标查询语句的目标业务类型;基于多个目标查询语句各自对应的目标业务类型,确定多个业务类型各自对应的查询语句比例。

可选的,处理单元502具体用于:基于多个目标查询语句的解析树特征,对多个目标查询语句进行二次聚类,并基于聚类结果从多个业务类型中确定每个目标查询语句的目标业务类型。

基于相同的技术构思,本申请实施例还提供了一种电子设备,如图6所示,电子设备600包括至少一个处理器601,以及与至少一个处理器连接的存储器602,本申请实施例中不限定处理器601与存储器602之间的具体连接介质,图6中处理器601和存储器602之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。

在本申请实施例中,存储器602存储有可被至少一个处理器601执行的指令,至少一个处理器601通过执行存储器602存储的指令,可以执行前述的存储的方法中所包括的步骤。

其中,处理器601是计算设备的控制中心,可以利用各种接口和线路连接计算设备的各个部分,通过运行或执行存储在存储器602内的指令以及调用存储在存储器602内的数据,从而实现数据处理。可选的,处理器601可包括一个或多个处理单元,处理器601可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理下发指令。可以理解的是,上述调制解调处理器也可以不集成到处理器601中。在一些实施例中,处理器601和存储器602可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。

处理器601可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合存储的方法实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

存储器602作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器602可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器602是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器602还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。

基于相同的技术构思,本申请实施例还提供了一种计算机可读存储介质,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行上述存储的方法的步骤。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

相关技术
  • 一种数据存储方法及装置、一种计算设备及存储介质
  • 一种数据存储方法及装置、一种计算设备及存储介质
  • 一种用于危险气瓶存储的存储装置及其存储方法
  • 一种压缩存储的方法和装置、解压下载的方法和装置
  • 一种索引数据存储及检索方法、装置及存储介质
  • 存储器装置、主机装置、存储器系统、存储器装置控制方法、主机装置控制方法以及存储器系统控制方法
  • 存储器装置、主机装置、存储器系统、存储器装置控制方法、主机装置控制方法以及存储器系统控制方法
技术分类

06120115592635