CN111723078A - 一种数据存储方法和装置 - Google Patents

一种数据存储方法和装置 Download PDF

Info

Publication number
CN111723078A
CN111723078A CN202010588436.2A CN202010588436A CN111723078A CN 111723078 A CN111723078 A CN 111723078A CN 202010588436 A CN202010588436 A CN 202010588436A CN 111723078 A CN111723078 A CN 111723078A
Authority
CN
China
Prior art keywords
data
storage structure
performance
query
selecting
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
CN202010588436.2A
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.)
BEIJING SQH TECH Co.,Ltd.
Original Assignee
Suzhou Squirrel Mountain Artificial Intelligence Technology 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 Suzhou Squirrel Mountain Artificial Intelligence Technology Co ltd filed Critical Suzhou Squirrel Mountain Artificial Intelligence Technology Co ltd
Priority to CN202010588436.2A priority Critical patent/CN111723078A/zh
Publication of CN111723078A publication Critical patent/CN111723078A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/217Database tuning
    • 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/22Indexing; Data structures therefor; Storage structures
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24564Applying rules; Deductive queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据存储方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:对目标数据库进行性能测试,生成每类存储结构的性能表现模型;预测目标数据库的查询负载,并根据查询负载和待存储数据的数据特征选取待选存储结构;根据性能表现模型计算各个待选存储结构中每个数据特征的性能预测值,并基于各个性能预测值得到各个待选存储结构的总代价;选择总代价最小的待选存储结构作为最优存储结构,并将当前的存储结构替换为最优存储结构。该实施方式能够灵活选择存储结构,从而提升数据库性能。

Description

一种数据存储方法和装置
技术领域
本发明涉及技术领域,尤其涉及一种数据存储方法和装置。
背景技术
在大数据时代下,数据模式的多样性、数据使用的复杂性和数据的体量给了数据库管理系统更大的挑战。用户再也无法使用单一的数据库管理系统管理不同的数据,而是根据数据的不同特征针对性的选取对应的数据库。研究者将关系型大数据按照使用特征划分为联机事务处理(OLTP)、联机分析处理(OLAP)和流式计算(Streaming),并各自研发出相应的数据库管理系统来管理其数据。这些数据库管理系统在研发时进行了深度的定制,各个组件的设计有着很大差别。
由于数据库系统数量的增多和复杂性的提高,用户使用数据库所需要的学习成本也在增加。为了降低用户使用数据库的学习成本和维护成本,研究者又提出自治数据库的概念。自治数据库是在数据库的基础上利用人工智能技术,帮助用户进行如索引设计、参数调整、查询计划设计的工作。自治数据库可以为用户推荐一套数据库配置,来提升在用户给定数据集上执行操作的性能。
在现有技术下,面向不同任务(例如OLTP、OLAP、Streaming)的数据库系统在数据上是互相孤立的,对单个任务执行的操作无法立刻反映到另一个数据库系统。这启发了混合事务分析处理(HTAP)系统的研究,旨在研究在单一系统下对数据同时运行OLTP、OLAP任务的可能性。当前的HTAP系统采用的设计模式是将OLAP系统和OLTP系统进行融合,而这样的融合技术简单而生硬,在性能上无法兼顾OLTP与OLAP任务。
发明内容
本发明要解决的技术问题在于数据库性能不足的问题,针对现有技术中的缺陷,提供一种。
为了解决上述技术问题,本发明提供了一种数据存储方法,包括:
对目标数据库进行性能测试,生成每类存储结构的性能表现模型;
预测所述目标数据库的查询负载,并根据所述查询负载和待存储数据的数据特征选取待选存储结构;
根据所述性能表现模型计算各个所述待选存储结构中每个数据特征的性能预测值,并基于各个所述性能预测值得到各个所述待选存储结构的总代价;
选择所述总代价最小的待选存储结构作为最优存储结构,并将当前的存储结构替换为所述最优存储结构。
优选地,所述对目标数据库进行性能测试,生成每类存储结构的性能表现模型,包括:
预先选取至少一个性能特征,并生成对应的特征数据;
将所述特征数据输入目标数据库,在所述目标数据库中进行测试查询,以计算所述目标数据库的性能值;
根据所述性能特征及对应的性能值生成每类存储结构的性能表现模型。
优选地,所述对目标数据库进行性能测试,生成每类存储结构的性能表现模型,还包括:
在所述性能表现模型不符合评估要求时,再次生成所述性能特征对应的特征数据,以重新生成所述目标数据库的性能表现模型。
优选地,所述预测所述目标数据库的查询负载,并根据所述查询负载和待存储数据的数据特征选取待选存储结构,包括:
获取所述目标数据库中各个数据分区的查询日志,基于所述查询日志预测每个所述数据分区的查询负载;
根据所述查询负载和待存储数据的数据特征,利用启发式规则选取待选存储结构;
其中,所述启发式规则包括:
所述待存储数据中具有预定属性的第一集合,在所述查询负载中的出现频率大于第一预设频率时,选择将所述第一集合中的数据邻近保存作为待选存储结构;
待存储数据中具有预定属性的第二集合和第三集合,在所述查询负载中的出现频率均大于第二预设频率时,选择将所述第二集合和所述第三集合的交集中的数据邻近保存作为待选存储结构、或选择将所述第二集合和所述第三集合的并集中的数据邻近保存作为待选存储结构;
待存储数据中具有的预定属性,在所述负载中的聚集查询频率大于第三预设频率时,选择将具有预定属性的数据进行列式存储作为待选存储结构;
待存储数据中具有预定属性的第四集合,对所述第四集合中的数据进行增加、改动或删除的操作频率大于第四预设频率时,选择将所述第四集合中的数据进行行式存储作为待选存储结构。
优选地,所述根据所述性能表现模型计算各个所述待选存储结构中每个数据特征的性能预测值,并基于各个所述性能预测值得到各个所述待选存储结构的总代价,包括:
根据所述数据分区的查询负载和查询计划器确定所述待选存储结构的查询计划;
基于所述查询计划得到所述待选存储结构的总代价表达式;
根据所述性能表现模型计算各个所述待选存储结构中每个数据特征的性能预测值;
按所述总代价表达式对各个所述性能预测值进行计算,以得到各个所述待选存储结构的总代价。
本发明还提供了一种数据存储装置,包括:
测试模块,用于对目标数据库进行性能测试,生成每类存储结构的性能表现模型;
选取模块,用于预测所述目标数据库的查询负载,并根据所述查询负载和待存储数据的数据特征选取待选存储结构;
计算模块,用于根据所述性能表现模型计算各个所述待选存储结构中每个数据特征的性能预测值,并基于各个所述性能预测值得到各个所述待选存储结构的总代价;
替换模块,用于选择所述总代价最小的待选存储结构作为最优存储结构,并将当前的存储结构替换为所述最优存储结构。
优选地,所述测试模块还用于:
预先选取至少一个性能特征,并生成对应的特征数据;
将所述特征数据输入目标数据库,在所述目标数据库中进行测试查询,以计算所述目标数据库的性能值;
根据所述性能特征及对应的性能值生成每类存储结构的性能表现模型。
优选地,所述测试模块进一步用于:
在所述性能表现模型不符合评估要求时,再次生成所述性能特征对应的特征数据,以重新生成所述目标数据库的性能表现模型。
优选地,所述选取模块还用于:
获取所述目标数据库中各个数据分区的查询日志,基于所述查询日志预测每个所述数据分区的查询负载;
根据所述查询负载和待存储数据的数据特征,利用启发式规则选取待选存储结构;
其中,所述启发式规则包括:
所述待存储数据中具有预定属性的第一集合,在所述查询负载中的出现频率大于第一预设频率时,选择将所述第一集合中的数据邻近保存作为待选存储结构;
待存储数据中具有预定属性的第二集合和第三集合,在所述查询负载中的出现频率均大于第二预设频率时,选择将所述第二集合和所述第三集合的交集中的数据邻近保存作为待选存储结构、或选择将所述第二集合和所述第三集合的并集中的数据邻近保存作为待选存储结构;
待存储数据中具有的预定属性,在所述负载中的聚集查询频率大于第三预设频率时,选择将具有预定属性的数据进行列式存储作为待选存储结构;
待存储数据中具有预定属性的第四集合,对所述第四集合中的数据进行增加、改动或删除的操作频率大于第四预设频率时,选择将所述第四集合中的数据进行行式存储作为待选存储结构。
优选地,所述计算模块还用于:
根据所述数据分区的查询负载和查询计划器确定所述待选存储结构的查询计划;
基于所述查询计划得到所述待选存储结构的总代价表达式;
根据所述性能表现模型计算各个所述待选存储结构中每个数据特征的性能预测值;
按所述总代价表达式对各个所述性能预测值进行计算,以得到各个所述待选存储结构的总代价。
实施本发明的,具有以下有益效果:
1、能够从存储结构的角度上优化数据库的性能;
2、使用数据分区的思想,适应大数据的处理需求,且降低了计算机设计存储结构所需要的计算时间,也简化了其他组件设计和实现;
3、使用运行时的代价作为存储结构设计的考虑因素,更加准确;
4、对用户的查询进行预测,可以提前发现未来可能出现的性能不足时机,减少数据库从性能不足到性能提升中所需要的延迟。
附图说明
图1是本发明实施例提供的一种数据存储方法的示意图;
图2是根据本发明一个可参考实施例的数据存储方法的总体结构的示意图;
图3是获取存储结构在不同特征上性能度量模型的流程图;
图4是针对当前查询任务获取最优存储结构的流程图;
图5是本发明实施例提供的一种数据存储装置的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
为了解决现有HTAP技术方案生硬、性能差强人意的技术问题,本发明实施例提出一种数据存储方法,能够自动选择存储结构从而提升数据库性能。该数据存储方法方法利用人工智能技术,通过动态选择存储结构的方法,以达到在HTAP任务上数据库性能的提升,并且在此基础上设计出不用人为干预的自治数据库系统。相比于现有的自治数据库系统,该数据存储方法提出了一个新的设计方向——存储结构设计,这一设计方向可以进一步加强自治数据库的设计空间,也可以进一步提升现有自治数据库的性能。
如图1所示,本发明实施例提供的一种数据存储方法,包括以下步骤:
S1、对目标数据库进行性能测试,生成每类存储结构的性能表现模型。
获取当前环境下每类存储结构对于不同性能特征的性能表现模型,通过性能表现模型可以针对未记录性能特征的性能表现的一个较准确、快速的预测。性能表现模型可以仅在第一次目标运行数据库时生成。
在实施时,将需要性能优化的数据库作为目标数据库。作为一种优选的实施方式,目标数据库可以是HTAP数据库,且目标数据库具有定制存储结构的功能,使用时用户可以访问该目标数据库的查询计划接口。此外,目标数据库需要支持单数据表的分区存储,即支持对数据表的水平化划分和在其上的并行查询。
在本发明实施例中,S1可以通过以下步骤实现:预先选取至少一个性能特征,并生成对应的特征数据;将特征数据输入目标数据库,在目标数据库中进行测试查询,以计算目标数据库的性能值;根据性能特征及对应的性能值生成每类存储结构的性能表现模型。
通过预先生成特征数据,用于目标数据库的测试查询,从而直接得到目标数据库的真实性能表现,以便于为不同的存储结构提供统一的比较标准和准确的比较结果。
在本发明实施例中,S1还可以进一步包括以下步骤:在性能表现模型不符合评估要求时,再次生成性能特征对应的特征数据,以重新生成目标数据库的性能表现模型。
其中的评估要求可以是方差或偏差等模型评估标准,且评估要求可以参考现有方式实现,性能表现模型的评估还可以采用现有的技术方案或工具实现,本发明实施例均不予赘述。
S2、预测目标数据库的查询负载,并根据查询负载和待存储数据的数据特征选取待选存储结构。
本步骤用于确定参与性能比较的候选存储结构。若使用历史负载进行最优结构的生成,则后续在调整结构时会有滞后性。而通过在预测的查询负载进行分析选取的待选存储结构可以得到最优存储结构,从而及时得到最佳存储结构,进一步提高系统性能。
此外,本步骤可以定时执行,且针对每个数据表(即目标数据库)中的每个分区运行一次。通过对目标数据库进行分区,减小了采样所需要的数据量、提升了设计任务的并行性,还可以适应在数据上非均匀分布的查询负载,此种情况下每个分区可能有不同的最优存储结构。
在本发明实施例中,S2可以通过以下方式实现:获取目标数据库中各个数据分区的查询日志,基于查询日志预测每个数据分区的查询负载;根据查询负载和待存储数据的数据特征,利用启发式规则选取待选存储结构。
查询日志可以通过目标数据库接口得到,可以根据查询日志中查询和发生频率的关系,在负载预测模块中使用机器学习模型预测接下来一段时间内的查询负载,具体实现可以参考现有方式,本发明实施例均不予赘述。
常用的存储结构主要包括数据邻近保存、列式存储和行式存储等。其中的启发式规则可以是基于数据库的关系模式确定存储结构,具体包括但不限于:
待存储数据中具有预定属性的第一集合,在查询负载中的出现频率大于第一预设频率时,选择将第一集合中的数据邻近保存作为待选存储结构;
待存储数据中具有预定属性的第二集合和第三集合,在查询负载中的出现频率均大于第二预设频率时,选择将第二集合和第三集合的交集中的数据邻近保存作为待选存储结构、或选择将第二集合和第三集合的并集中的数据邻近保存作为待选存储结构;
待存储数据中具有的预定属性,在查询负载中的聚集查询频率大于第三预设频率时,选择将具有预定属性的数据进行列式存储作为待选存储结构;
待存储数据中具有预定属性的第四集合,对第四集合中的数据进行增加、改动或删除的操作频率大于第四预设频率时,选择将第四集合中的数据进行行式存储作为待选存储结构。
上述启发式规则中的第一预设频率、第二预设频率、第三预设频率和第四预设频率可以根据实际需要或历史记录等分别确定,且第一预设频率、第二预设频率、第三预设频率和第四预设频率可以相同或部分相同。
S3、根据性能表现模型计算各个待选存储结构中每个数据特征的性能预测值,并基于各个性能预测值得到各个待选存储结构的总代价。
根据S1中得到的性能表现模型,可以计算出每个数据特征的单项性能预测值,从而得到每个待选存储结构的总代价。
在本发明实施例中,S3可以通过以下方式实现:根据数据分区的查询负载和查询计划器确定待选存储结构的查询计划;基于查询计划得到待选存储结构的总代价表达式;根据性能表现模型计算各个待选存储结构中每个数据特征的性能预测值;按总代价表达式对各个性能预测值进行计算,以得到各个待选存储结构的总代价。
根据查询负载,调用目标数据库中的查询计划器,可以得到每个待选存储结构的对应的查询计划,该查询计划包含了调用对存储引擎的调用参数的估计,例如调用哪个操作、多少次、调用范围等,结合查询计划和性能表现模型可以得到总代价的计算表达式,从而在比较不同存储结构时能够得到更加真实的性能表现。
S4、选择总代价最小的待选存储结构作为最优存储结构,并将当前的存储结构替换为最优存储结构。
在选取最优存储结构后,可以将当前分区的存储结构替换为最优存储结构,或将目标数据库的整体存储结构替换为最优存储结构。本步骤可以在后台进行新数据结构的建立和替换,从而保证数据的一致性,且不需要人工参与。
实施例二
如图2所示,本实施例二与实施例一基本相同,相同之处不再赘述,不同之处在于:
在应用本发明实施例的一种数据存储方法时,可以分为两个部分,第一个部分为获取当前环境下存储结构在不同数据特征上的性能表现模型,该部分内容仅在第一次运行数据库时运行一次;第二个部分为最优存储结构的自动生成,该部分内容定时运行,并且针对每个数据表的每个分区运行一次。分区减小了采样所需要的数据量、提升了设计任务的并行性,此外还可以适应在数据上非均匀分布的查询负载,因为这种情况下每个分区可能有不同的最优存储结构。
在实施该数据存储方法时,将需要性能优化的数据库作为目标数据库。目标数据库中的典型为HTAP数据库。目标数据库需要有定制存储结构的功能,并且用户可以访问该数据库的查询计划接口。此外,该数据库需要支持单数据表的分区存储,即支持对数据表的水平化划分和在其上的并行查询。
其中,
如图3所示,获取当前环境下存储结构在不同数据特征上的性能表现模型,具体可以参考如下步骤:
步骤一:由性能采样模块决定需要进行采样的数据特征Fi(即性能特征),并生成数据
Figure BDA0002555520410000101
其中,生成的数据大小符合分区的一般大小。
步骤二:将
Figure BDA0002555520410000102
输入到目标数据库中,并执行一系列查询。在数据输入和执行查询中度量在目标数据库上的性能度量(即性能值)
Figure BDA0002555520410000103
从而直接得到数据库的真实性能表现,以便于为不同的存储结构提供统一的比较标准和准确的比较结果。
步骤三:将数据特征和对应的性能表现进行记录,记录的结果作为训练集(即将
Figure BDA0002555520410000104
Figure BDA0002555520410000105
加入到步骤一采集的数据合集TS)。在代价学习模块中,使用机器学习方法,在训练集上学习不同存储结构的性能模型,从而可以得到针对未记录数据特征的性能表现的一个较准确、快速的预测,此外,训练时以
Figure BDA0002555520410000106
度量学习模型M,表示为
Figure BDA0002555520410000111
步骤四:判断该模型的误差,如果误差不满足收敛要求,返回步骤一,由性能采样模块进行更多的采样。用户可以设置一个超时参数,当超时后不再采集新的性能数据,直接用当前数据获取性能模型,从而提高模型的准确度并避免过长时间的等待。
步骤五:记录下当前模型(即性能表现模型),用于获取最优存储结构部分。
如图4所示,针对当前查询任务获取最优存储结构,具体可以参考如下步骤:
步骤一:获取目标数据表的查询日志L、表示数据特征的元数据F和学习模型M。这些数据可以通过目标数据库接口和数据采样得到。
步骤二:根据查询日志L中查询和发生频率的关系,在负载预测模块中使用机器学习模型预测接下来一段时间内查询语句Q。如果用历史的负载进行最优结构的生成,则系统在调整结构时会有滞后性。通过在预测的负载上进行分析得到最优存储结构,可以及时得到最佳存储结构,进一步提高系统性能。
步骤三:在候选结构生成模块中,根据元数据的特征F和查询语句Q(即查询负载),使用启发式规则生成候选存储结构S=S1∪S2∪…∪Sn(S1……Sn即各个待选存储结构)。这一步确定了参与性能比较的候选存储结构,只有满足启发式规则的存储结构参加代价估计,从而缩小了存储结构的设计空间,减小计算量。启发式规则包括但不限于:
对于关系模式R中属性的集合X(即待存储数据中具有预定属性的第一集合),如果X在查询Q中频繁出现,那么将X中的数据邻近保存可以提高查询性能;
对于关系模式R中属性的集合Z和Y(即待存储数据中具有预定属性的第二集合和第三集合),如果Z和Y均在查询Q中频繁出现,那么Z∪Y和Z∩Y的数据邻近保存均有可能提高性能;
对于关系模式R中属性A(即待存储数据中具有的预定属性),如果对于A的聚集查询在Q中频繁出现,那么对A进行列式存储有可能提高性能;
对于关系模式R中属性集合W(即待存储数据中具有预定属性的第四集合),如果对于W的增加、改动、删除操作频繁出现,那么对W进行行式存储有可能提高性能。
步骤四:根据候选结构S和查询语句Q,调用目标数据库中的查询计划器,得到每个候选结构的对应的查询计划。查询计划中包含了调用对存储引擎的调用参数的估计,包括调用哪个操作、多少次、调用范围等。结合之前得到的存储引擎的性能模型可以得到总代价的计算表达式,从而在比较不同存储结构时得到更加真实的性能表现。
步骤五:在存储结构代价估计模块中,根据第一部分得到的M,计算在F下的单项性能预测值,并代入存储结构的代价函数Cost(Si,F)=AiPF(即总代价表达式),得到每个候选结构的总代价,其中,Ai是使用查询计划器得到的存储结构Si在Q下的系数组合。
步骤六:在查询语句Q下,从各个候选结构Si中,选择代价最小的候选结构作为当前负载下对应的最优结构,具体地,利用学习模型M得到的
Figure BDA0002555520410000131
代入PF得到每个Cost(Si,F),令
Figure BDA0002555520410000132
步骤七:由存储结构应用模块,将当前分区的存储结构替换为最优存储结构。存储结构应用模块在后台进行新数据结构的建立和替换,保证了数据的一致性,并且不用人工参与。
实施例三
如图5所示,本发明实施例的一种数据存储装置5包括:测试模块51、选取模块52、计算模块53和替换模块54。
其中,
测试模块51,用于对目标数据库进行性能测试,生成每类存储结构的性能表现模型;
选取模块52,用于预测所述目标数据库的查询负载,并根据所述查询负载和待存储数据的数据特征选取待选存储结构;
计算模块53,用于根据所述性能表现模型计算各个所述待选存储结构中每个数据特征的性能预测值,并基于各个所述性能预测值得到各个所述待选存储结构的总代价;
替换模块54,用于选择所述总代价最小的待选存储结构作为最优存储结构,并将当前的存储结构替换为所述最优存储结构。
在本发明实施例中,所述测试模块51还可以用于:
预先选取至少一个性能特征,并生成对应的特征数据;
将所述特征数据输入目标数据库,在所述目标数据库中进行测试查询,以计算所述目标数据库的性能值;
根据所述性能特征及对应的性能值生成每类存储结构的性能表现模型。
在本发明实施例中,所述测试模块51可以进一步用于:
在所述性能表现模型不符合评估要求时,再次生成所述性能特征对应的特征数据,以重新生成所述目标数据库的性能表现模型。
在本发明实施例中,所述选取模块52还可以用于:
获取所述目标数据库中各个数据分区的查询日志,基于所述查询日志预测每个所述数据分区的查询负载;
根据所述查询负载和待存储数据的数据特征,利用启发式规则选取待选存储结构。
此外,所述启发式规则可以包括:
所述待存储数据中具有预定属性的第一集合,在所述查询负载中的出现频率大于第一预设频率时,选择将所述第一集合中的数据邻近保存作为待选存储结构;
待存储数据中具有预定属性的第二集合和第三集合,在所述查询负载中的出现频率均大于第二预设频率时,选择将所述第二集合和所述第三集合的交集中的数据邻近保存作为待选存储结构、或选择将所述第二集合和所述第三集合的并集中的数据邻近保存作为待选存储结构;
待存储数据中具有的预定属性,在所述负载中的聚集查询频率大于第三预设频率时,选择将具有预定属性的数据进行列式存储作为待选存储结构;
待存储数据中具有预定属性的第四集合,对所述第四集合中的数据进行增加、改动或删除的操作频率大于第四预设频率时,选择将所述第四集合中的数据进行行式存储作为待选存储结构。
在本发明实施例中,所述计算模块53还可以用于:
根据所述数据分区的查询负载和查询计划器确定所述待选存储结构的查询计划;
基于所述查询计划得到所述待选存储结构的总代价表达式;
根据所述性能表现模型计算各个所述待选存储结构中每个数据特征的性能预测值;
按所述总代价表达式对各个所述性能预测值进行计算,以得到各个所述待选存储结构的总代价。
综上所述,本发明实施例的一种数据存储方法和装置,至少具有以下有益效果:
1、能够从存储结构的角度上优化数据库的性能;
2、使用数据分区的思想,适应大数据的处理需求,且降低了计算机设计存储结构所需要的计算时间,也简化了其他组件设计和实现;同时,存储分区能够提升查询的并行性、降低存储结构替换的开销、提升存储结构读写代价预测的准确性
3、获取数据库在当前硬件环境下的实际性能表现,更能反映数据库的运行时性能,使用运行时的代价作为存储结构设计的考虑因素,更加准确;
4、对用户的查询进行预测,能够获取到用户查询任务的变化信息,从而提前选择最佳存储结构,且可以提前发现未来可能出现的性能不足时机,减少数据库从性能不足到性能提升中所需要的延迟;
5、基于机器学习的读写操作代价建模方法,能够更加全面、准确的估计存储引擎的读写代价,可以为未探测到的特征组合提供性能估计;并且,基于代价的存储结构选择,能够更加准确的得出适应于当前负载的最佳存储结构,同时缩小了存储结构的设计空间,减小了计算量;
6、动态替换存储结构;无需人为干预,自动替换性能不足的存储分区,提升对应查询的性能。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种数据存储方法,其特征在于,包括:
对目标数据库进行性能测试,生成每类存储结构的性能表现模型;
预测所述目标数据库的查询负载,并根据所述查询负载和待存储数据的数据特征选取待选存储结构;
根据所述性能表现模型计算各个所述待选存储结构中每个数据特征的性能预测值,并基于各个所述性能预测值得到各个所述待选存储结构的总代价;
选择所述总代价最小的待选存储结构作为最优存储结构,并将当前的存储结构替换为所述最优存储结构。
2.根据权利要求1所述的方法,其特征在于,所述对目标数据库进行性能测试,生成每类存储结构的性能表现模型,包括:
预先选取至少一个性能特征,并生成对应的特征数据;
将所述特征数据输入目标数据库,在所述目标数据库中进行测试查询,以计算所述目标数据库的性能值;
根据所述性能特征及对应的性能值生成每类存储结构的性能表现模型。
3.根据权利要求2所述的方法,其特征在于,所述对目标数据库进行性能测试,生成每类存储结构的性能表现模型,还包括:
在所述性能表现模型不符合评估要求时,再次生成所述性能特征对应的特征数据,以重新生成所述目标数据库的性能表现模型。
4.根据权利要求1所述的方法,其特征在于,所述预测所述目标数据库的查询负载,并根据所述查询负载和待存储数据的数据特征选取待选存储结构,包括:
获取所述目标数据库中各个数据分区的查询日志,基于所述查询日志预测每个所述数据分区的查询负载;
根据所述查询负载和待存储数据的数据特征,利用启发式规则选取待选存储结构;
其中,所述启发式规则包括:
所述待存储数据中具有预定属性的第一集合,在所述查询负载中的出现频率大于第一预设频率时,选择将所述第一集合中的数据邻近保存作为待选存储结构;
待存储数据中具有预定属性的第二集合和第三集合,在所述查询负载中的出现频率均大于第二预设频率时,选择将所述第二集合和所述第三集合的交集中的数据邻近保存作为待选存储结构、或选择将所述第二集合和所述第三集合的并集中的数据邻近保存作为待选存储结构;
待存储数据中具有的预定属性,在所述负载中的聚集查询频率大于第三预设频率时,选择将具有预定属性的数据进行列式存储作为待选存储结构;
待存储数据中具有预定属性的第四集合,对所述第四集合中的数据进行增加、改动或删除的操作频率大于第四预设频率时,选择将所述第四集合中的数据进行行式存储作为待选存储结构。
5.根据权利要求4所述的方法,其特征在于,所述根据所述性能表现模型计算各个所述待选存储结构中每个数据特征的性能预测值,并基于各个所述性能预测值得到各个所述待选存储结构的总代价,包括:
根据所述数据分区的查询负载和查询计划器确定所述待选存储结构的查询计划;
基于所述查询计划得到所述待选存储结构的总代价表达式;
根据所述性能表现模型计算各个所述待选存储结构中每个数据特征的性能预测值;
按所述总代价表达式对各个所述性能预测值进行计算,以得到各个所述待选存储结构的总代价。
6.一种数据存储装置,其特征在于,包括:
测试模块,用于对目标数据库进行性能测试,生成每类存储结构的性能表现模型;
选取模块,用于预测所述目标数据库的查询负载,并根据所述查询负载和待存储数据的数据特征选取待选存储结构;
计算模块,用于根据所述性能表现模型计算各个所述待选存储结构中每个数据特征的性能预测值,并基于各个所述性能预测值得到各个所述待选存储结构的总代价;
替换模块,用于选择所述总代价最小的待选存储结构作为最优存储结构,并将当前的存储结构替换为所述最优存储结构。
7.根据权利要求6所述的方法,其特征在于,所述测试模块还用于:
预先选取至少一个性能特征,并生成对应的特征数据;
将所述特征数据输入目标数据库,在所述目标数据库中进行测试查询,以计算所述目标数据库的性能值;
根据所述性能特征及对应的性能值生成每类存储结构的性能表现模型。
8.根据权利要求7所述的方法,其特征在于,所述测试模块进一步用于:
在所述性能表现模型不符合评估要求时,再次生成所述性能特征对应的特征数据,以重新生成所述目标数据库的性能表现模型。
9.根据权利要求6所述的方法,其特征在于,所述选取模块还用于:
获取所述目标数据库中各个数据分区的查询日志,基于所述查询日志预测每个所述数据分区的查询负载;
根据所述查询负载和待存储数据的数据特征,利用启发式规则选取待选存储结构;
其中,所述启发式规则包括:
所述待存储数据中具有预定属性的第一集合,在所述查询负载中的出现频率大于第一预设频率时,选择将所述第一集合中的数据邻近保存作为待选存储结构;
待存储数据中具有预定属性的第二集合和第三集合,在所述查询负载中的出现频率均大于第二预设频率时,选择将所述第二集合和所述第三集合的交集中的数据邻近保存作为待选存储结构、或选择将所述第二集合和所述第三集合的并集中的数据邻近保存作为待选存储结构;
待存储数据中具有的预定属性,在所述负载中的聚集查询频率大于第三预设频率时,选择将具有预定属性的数据进行列式存储作为待选存储结构;
待存储数据中具有预定属性的第四集合,对所述第四集合中的数据进行增加、改动或删除的操作频率大于第四预设频率时,选择将所述第四集合中的数据进行行式存储作为待选存储结构。
10.根据权利要求9所述的方法,其特征在于,所述计算模块还用于:
根据所述数据分区的查询负载和查询计划器确定所述待选存储结构的查询计划;
基于所述查询计划得到所述待选存储结构的总代价表达式;
根据所述性能表现模型计算各个所述待选存储结构中每个数据特征的性能预测值;
按所述总代价表达式对各个所述性能预测值进行计算,以得到各个所述待选存储结构的总代价。
CN202010588436.2A 2020-06-24 2020-06-24 一种数据存储方法和装置 Pending CN111723078A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010588436.2A CN111723078A (zh) 2020-06-24 2020-06-24 一种数据存储方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010588436.2A CN111723078A (zh) 2020-06-24 2020-06-24 一种数据存储方法和装置

Publications (1)

Publication Number Publication Date
CN111723078A true CN111723078A (zh) 2020-09-29

Family

ID=72568640

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010588436.2A Pending CN111723078A (zh) 2020-06-24 2020-06-24 一种数据存储方法和装置

Country Status (1)

Country Link
CN (1) CN111723078A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113760889A (zh) * 2020-11-09 2021-12-07 北京沃东天骏信息技术有限公司 数据处理方法、装置、计算机系统和计算机可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103345518A (zh) * 2013-07-11 2013-10-09 清华大学 基于数据块的自适应数据存储管理方法及系统
CN103905517A (zh) * 2012-12-28 2014-07-02 中国移动通信集团公司 一种数据存储方法及设备
CN109815303A (zh) * 2018-12-29 2019-05-28 哈尔滨工业大学(深圳) 一种基于位置的移动数据存储系统
CN110019251A (zh) * 2019-03-22 2019-07-16 深圳市腾讯计算机系统有限公司 一种数据处理系统、方法及设备
US20190266272A1 (en) * 2018-02-23 2019-08-29 Sap Se Optimal ranges for relational query execution plans

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103905517A (zh) * 2012-12-28 2014-07-02 中国移动通信集团公司 一种数据存储方法及设备
CN103345518A (zh) * 2013-07-11 2013-10-09 清华大学 基于数据块的自适应数据存储管理方法及系统
US20190266272A1 (en) * 2018-02-23 2019-08-29 Sap Se Optimal ranges for relational query execution plans
CN109815303A (zh) * 2018-12-29 2019-05-28 哈尔滨工业大学(深圳) 一种基于位置的移动数据存储系统
CN110019251A (zh) * 2019-03-22 2019-07-16 深圳市腾讯计算机系统有限公司 一种数据处理系统、方法及设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MARTIN BOISSIER,等: "Hybrid Data Layouts for Tiered HTAP Databases with Pareto-Optimal Data Placements" *
兰海,等: "TiDB的多索引访问优化" *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113760889A (zh) * 2020-11-09 2021-12-07 北京沃东天骏信息技术有限公司 数据处理方法、装置、计算机系统和计算机可读存储介质
CN113760889B (zh) * 2020-11-09 2024-05-17 北京沃东天骏信息技术有限公司 数据处理方法、装置、计算机系统和计算机可读存储介质

Similar Documents

Publication Publication Date Title
US11429584B2 (en) Automatic determination of table distribution for multinode, distributed database systems
US8001109B2 (en) System and method for automating data partitioning in a parallel database
WO2020207268A1 (zh) 数据库性能调整方法、装置、设备、系统及存储介质
US7536380B2 (en) Dynamic look ahead predicate generation
US10824614B2 (en) Custom query parameters in a database system
CN110688393B (zh) 查询语句优化方法、装置、计算机设备及存储介质
CN115129782A (zh) 一种分布式数据库的分区级连接方法和装置
US9406027B2 (en) Making predictions regarding evaluation of functions for a database environment
US20230141891A1 (en) Autonomous Column Selection for Columnar Cache
CN111723078A (zh) 一种数据存储方法和装置
US20090171921A1 (en) Accelerating Queries Based on Exact Knowledge of Specific Rows Satisfying Local Conditions
Schaffner Multi Tenancy for Cloud-Based In-Memory Column Databases
Pedrozo et al. A tool for automatic index selection in database management systems
CN117217933A (zh) 用于保险行业的数据多维分析方法及装置
US7117218B2 (en) System and method for expressing and calculating a relationship between measures
CN114625725A (zh) 一种空气监测数据的可视化方法、系统、设备及介质
CN113610225A (zh) 质量评估模型训练方法、装置、电子设备及存储介质
Palepu et al. Meta data quality control architecture in data warehousing
CN112396343A (zh) 一种数据质量核查方法及装置
Hesse A benchmark for enterprise stream processing architectures
Munir Storage format selection and optimization for materialized intermediate results in data-intensive flows
Su et al. MISS: finding optimal sample sizes for approximate analytics
US20230051059A1 (en) Relationship analysis using vector representations of database tables
US20220114384A1 (en) Systems and methods to estimate rate of improvement for all technologies
Ding Enterprise Financial Management and Decision System Based on Improved Decision Tree

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
TA01 Transfer of patent application right

Effective date of registration: 20210628

Address after: 100102 building 106, Lize Zhongyuan, Chaoyang District, Beijing

Applicant after: BEIJING SQH TECH Co.,Ltd.

Address before: 215300 station A12, room 315, room 1, 268 Dengyun Road, Yushan Town, Kunshan City, Jiangsu Province (cluster registration)

Applicant before: Suzhou squirrel mountain Artificial Intelligence Technology Co.,Ltd.

TA01 Transfer of patent application right
CB02 Change of applicant information

Address after: Building 106, Lize Zhongyuan, Chaoyang District, Beijing 100020 (No. 359, Wangjing Central Office Area)

Applicant after: Beijing Zhitong Universal Technology Co.,Ltd.

Address before: 100102 building 106, Lize Zhongyuan, Chaoyang District, Beijing

Applicant before: BEIJING SQH TECH Co.,Ltd.

CB02 Change of applicant information
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200929

WD01 Invention patent application deemed withdrawn after publication