一种OLAP动态缓存方法及装置制造方法及图纸

技术编号:22658758 阅读:18 留言:0更新日期:2019-11-28 03:22
本发明专利技术公开一种OLAP动态缓存方法及装置,涉及数据存储技术领域,能够在提升集群查询性能的同时保证查询结果的实时性与准确性。该方法包括:构建缓存架构,缓存架构包括协调节点、历史节点和实时节点;根据数据量大小设置实时文件包及多个历史文件包,实时文件包设在实时节点中,多个历史文件包分布在各历史节点中;获取实时数据缓存于实时文件包中,并在缓存时长达到预设时段时将实时文件包中的缓存数据分发于各历史文件包中存储;接收当前时刻的查询语句,通过协调节点从对应的历史文件包和/或实时文件包中获取目标数据,经统计汇总后反馈输出。

An OLAP dynamic cache method and device

The invention discloses an OLAP dynamic caching method and device, relating to the technical field of data storage, which can improve the query performance of a cluster and ensure the real-time and accuracy of the query results. The method includes: building cache architecture, which includes coordination node, history node and real-time node; setting real-time file package and multiple history file packages according to the size of data volume, real-time file package is set in real-time node, multiple history file packages are distributed in each history node; acquiring real-time data to cache in real-time file package, and when the cache time reaches a preset period of time The cache data in the real-time file package is distributed to each historical file package for storage; the query statement at the current time is received, and the target data is obtained from the corresponding historical file package and / or the real-time file package through the coordination node, and the feedback output is made after statistical summary.

【技术实现步骤摘要】
一种OLAP动态缓存方法及装置
本专利技术涉及数据存储
,尤其涉及一种OLAP动态缓存方法及装置。
技术介绍
缓存技术是提升查询性能、增加并发性的一个通用解决方案,但是在OLAP引擎中,如果一个查询既包括历史数据又包括实时数据,则很难使用缓存技术,因为原始数据随着时间的推移一直在变化,对应的导致结果数据也随之会发生变化,这将导致结果数据无法及时被缓存。例如,实时统计从0点到当前时刻的销售额,若当前查询统计的销售额为10000元,则在一分钟后再进行查询统计,若此期间发生了一笔100元的销售,则在缓存中获取到的统计销售额仍为先前的10000元,但实际的销售额合计为10100元,显然此时从缓存中获取到的统计结果是不准确的。
技术实现思路
本专利技术的目的在于提供一种OLAP动态缓存方法,能够在提升集群查询性能的同时保证查询结果的实时性与准确性。为了实现上述目的,本专利技术的一方面提供一种OLAP动态缓存方法,包括:构建缓存架构,所述缓存架构包括协调节点、历史节点和实时节点;根据数据量大小设置实时文件包及多个历史文件包,所述实时文件包设在实时节点中,多个历史文件包分布在各历史节点中;获取实时数据缓存于实时文件包中,并在缓存时长达到预设时段时将实时文件包中的缓存数据分发于各历史文件包中存储;接收当前时刻的查询语句,通过协调节点从对应的历史文件包和/或实时文件包中获取目标数据,经统计汇总后反馈输出。优选地,在获取实时数据缓存于实时文件包中,并在缓存时长达到预设时段时将实时文件包中的缓存数据分发与各历史文件包中存储之后还包括:从所述查询语句中解析出涉及存储目标数据的历史文件包信息,所述历史文件包信息包括历史文件包的版本信息、索引信息、键值信息中的一种或多种;基于相关的历史文件包一一对应的设置缓存包,且缓存包分布于对应的历史节点中,或者,聚集在协调节点中。较佳地,获取实时数据缓存于实时文件包中,并在缓存时长达到预设时段时将实时文件包中的缓存数据分发于各历史文件包中存储的方法包括:预设数据的分发时段T,每间隔时段T将实时文件包中当前时段的缓存数据统一分发给各历史文件包中存储,同时清空实时文件包中的缓存数据准备下一时段的缓存。优选地,接收当前时刻的查询语句,通过协调节点从对应的历史文件包和/或实时文件包中获取目标数据,经统计汇总后反馈输出的方法包括:基于查询语句涉及的目标数据及缓存包的分布策略,动态选择缓存包的设置模式;当动态选择的设置模式为分布于对应的历史节点中时,则在首次查询时通过对应的缓存包从相关历史文件包中获取相关的零散目标数据,经由各自缓存包所属的历史节点汇总合并后得到历史目标数据,再由协调节点将历史目标数据与当前时刻实时文件包中的缓存数据再次汇总合并后得到目标数据反馈输出;当动态选择的设置模式为聚集在协调节点中时,则在首次查询时通过对应的缓存包从相关历史文件包中获取相关的零散目标数据,经由协调节点汇总合并后得到历史目标数据,再由协调节点将历史目标数据与当前时刻实时文件包中的缓存数据再次汇总合并后得到目标数据反馈输出。可选地,还包括:在动态选择的设置模式为分布于对应的历史节点中时且在首次查询之后,在相同时段再次执行相同的查询操作时,直接从各自缓存包所属的历史节点中获取缓存的历史目标数据,并由协调节点将历史目标数据与当前时刻实时文件包中的缓存数据再次汇总合并后得到目标数据反馈输出;和/或,在动态选择的设置模式为聚集在协调节点中时且在首次查询之后,在相同时段再次执行相同的查询操作时,直接从协调节点的缓存包中获取缓存的历史目标数据,并由协调节点将历史目标数据与当前时刻实时文件包中的缓存数据再次汇总合并后得到目标数据反馈输出。较佳地,所述缓存包的分布策略为:查询语句中涉及存储目标数据的历史文件包的数量小于N个时,采取缓存包聚集在协调节点的布局策略,且N<2*M;或者,查询语句中涉及存储目标数据的历史文件包的数量小于M个时,且所属历史节点的数量大于4*M时,采取缓存包聚集在协调节点的布局策略;否则,采取缓存包分布于对应历史节点的布局策略。示例性地,所述M取值为20,所述N取值为30。与现有技术相比,本专利技术提供的OLAP动态缓存方法具有以下有益效果:本专利技术提供的OLAP动态缓存方法中,可将整个集群划分为协调节点、历史节点和实时节点,然后根据缓存数据量的大小设置1个实时文件包和多个历史文件包,其中,实时文件包用于获取实时数据缓存,并在缓存时长达到预设时段时将实时文件包中的缓存数据分发于各历史文件包中存储,当历史文件包的数据存储满时可对应增加新的历史文件包继续存储,也可利用现有的历史文件包循环存储,之后根据当前时刻的查询语句通过协调节点从对应的历史文件包和/或实时文件包中获取目标数据,经统计汇总后反馈输出。可见,本专利技术通过协调节点、历史节点和实时节点的搭配设置,能够在提升集群查询性能的同时保证查询结果的实时性与准确性,克服了现有技术中随着查询时刻的推移,查询结果无法实时更新导致的查询结果不准确的问题。本专利技术的另一方面提供一种OLAP动态缓存装置,应用于上述技术方案提到的OLAP动态缓存方法中,该装置包括:架构设置单元,用于构建缓存架构,所述缓存架构包括协调节点、历史节点和实时节点;文件包设置单元,用于根据数据量大小设置实时文件包及多个历史文件包,所述实时文件包设在实时节点中,多个历史文件包分布式在各历史节点中;分发存储单元,用于获取实时数据缓存于实时文件包中,并在缓存时长达到预设时段时将实时文件包中的缓存数据分发于各历史文件包中存储;查询输出单元,用于接收当前时刻的查询语句,通过协调节点从对应的历史文件包和/或实时文件包中获取目标数据,经统计汇总后反馈输出。优选地,在分发存储单元和查询输出单元之间还包括缓存包设置单元,用于从所述查询语句中解析出涉及存储目标数据的历史文件包信息,所述历史文件包信息包括历史文件包的版本信息、索引信息、键值信息中的一种或多种;并基于相关的历史文件包一一对应的设置缓存包,且缓存包分布于对应的历史节点中,或者,聚集在协调节点中。与现有技术相比,本专利技术提供的OLAP动态缓存装置的有益效果与上述技术方案提供的OLAP动态缓存方法的有益效果相同,在此不做赘述。本专利技术的第三方面提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述OLAP动态缓存方法的步骤。与现有技术相比,本专利技术提供的计算机可读存储介质的有益效果与上述技术方案提供的OLAP动态缓存方法的有益效果相同,在此不做赘述。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本专利技术的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1为本专利技术实施例一中OLAP动态缓存方法的流程示意图;...

【技术保护点】
1.一种OLAP动态缓存方法,其特征在于,包括:/n构建缓存架构,所述缓存架构包括协调节点、历史节点和实时节点;/n根据数据量大小设置实时文件包及多个历史文件包,所述实时文件包设在实时节点中,多个历史文件包分布在各历史节点中;/n获取实时数据缓存于实时文件包中,并在缓存时长达到预设时段时将实时文件包中的缓存数据分发于各历史文件包中存储;/n接收当前时刻的查询语句,通过协调节点从对应的历史文件包和/或实时文件包中获取目标数据,经统计汇总后反馈输出。/n

【技术特征摘要】
1.一种OLAP动态缓存方法,其特征在于,包括:
构建缓存架构,所述缓存架构包括协调节点、历史节点和实时节点;
根据数据量大小设置实时文件包及多个历史文件包,所述实时文件包设在实时节点中,多个历史文件包分布在各历史节点中;
获取实时数据缓存于实时文件包中,并在缓存时长达到预设时段时将实时文件包中的缓存数据分发于各历史文件包中存储;
接收当前时刻的查询语句,通过协调节点从对应的历史文件包和/或实时文件包中获取目标数据,经统计汇总后反馈输出。


2.根据权利要求1所述的OLAP动态缓存方法,其特征在于,在获取实时数据缓存于实时文件包中,并在缓存时长达到预设时段时将实时文件包中的缓存数据分发与各历史文件包中存储之后还包括:
从所述查询语句中解析出涉及存储目标数据的历史文件包信息,所述历史文件包信息包括历史文件包的版本信息、索引信息、键值信息中的一种或多种;
基于相关的历史文件包一一对应的设置缓存包,且缓存包分布于对应的历史节点中,或者,聚集在协调节点中。


3.根据权利要求2所述的OLAP动态缓存方法,其特征在于,获取实时数据缓存于实时文件包中,并在缓存时长达到预设时段时将实时文件包中的缓存数据分发于各历史文件包中存储的方法包括:
预设数据的分发时段T,每间隔时段T将实时文件包中当前时段的缓存数据统一分发给各历史文件包中存储,同时清空实时文件包中的缓存数据准备下一时段的缓存。


4.根据权利要求2所述的OLAP动态缓存方法,其特征在于,接收当前时刻的查询语句,通过协调节点从对应的历史文件包和/或实时文件包中获取目标数据,经统计汇总后反馈输出的方法包括:
基于查询语句涉及的目标数据及缓存包的分布策略,动态选择缓存包的设置模式;
当动态选择的设置模式为分布于对应的历史节点中时,则在首次查询时通过对应的缓存包从相关历史文件包中获取相关的零散目标数据,经由各自缓存包所属的历史节点汇总合并后得到历史目标数据,再由协调节点将历史目标数据与当前时刻实时文件包中的缓存数据再次汇总合并后得到目标数据反馈输出;
当动态选择的设置模式为聚集在协调节点中时,则在首次查询时通过对应的缓存包从相关历史文件包中获取相关的零散目标数据,经由协调节点汇总合并后得到历史目标数据,再由协调节点将历史目标数据与当前时刻实时文件包中的缓存数据再次汇总合并后得到目标数据反馈输出。


5.根据权利要求4所述的OLAP动态缓存方法,其特征在于,还...

【专利技术属性】
技术研发人员:汪金忠孙迁杨兆辉李成露
申请(专利权)人:苏宁云计算有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1