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动态缓存方法,包括:构建缓存架构,所述缓存架构包括协调节点、历史节点和实时节点;根据数据量大小设置实时文件包及多个历史文件包,所述实时文件包设在实时节点中,多个历史文件包分布在各历史节点中;获取实时数据缓存于实时文件包中,并在缓存时长达到预设时段时将实时文件包中的缓存数据分发于各历史文件包中存储;接收当前时刻的查询语句,通过协调节点从对应的历史文件包和/或实时文件包中获取目标数据,经统计汇总后反馈输出。优选地,在获取实时数据缓存于实时文件包中,并在缓存时长达到
【技术保护点】
1.一种OLAP动态缓存方法,其特征在于,包括:/n构建缓存架构,所述缓存架构包括协调节点、历史节点和实时节点;/n根据数据量大小设置实时文件包及多个历史文件包,所述实时文件包设在实时节点中,多个历史文件包分布在各历史节点中;/n获取实时数据缓存于实时文件包中,并在缓存时长达到预设时段时将实时文件包中的缓存数据分发于各历史文件包中存储;/n接收当前时刻的查询语句,通过协调节点从对应的历史文件包和/或实时文件包中获取目标数据,经统计汇总后反馈输出。/n
【技术特征摘要】
1.一种OLAP动态缓存方法,其特征在于,包括:
构建缓存架构,所述缓存架构包括协调节点、历史节点和实时节点;
根据数据量大小设置实时文件包及多个历史文件包,所述实时文件包设在实时节点中,多个历史文件包分布在各历史节点中;
获取实时数据缓存于实时文件包中,并在缓存时长达到预设时段时将实时文件包中的缓存数据分发于各历史文件包中存储;
接收当前时刻的查询语句,通过协调节点从对应的历史文件包和/或实时文件包中获取目标数据,经统计汇总后反馈输出。
2.根据权利要求1所述的OLAP动态缓存方法,其特征在于,在获取实时数据缓存于实时文件包中,并在缓存时长达到预设时段时将实时文件包中的缓存数据分发与各历史文件包中存储之后还包括:
从所述查询语句中解析出涉及存储目标数据的历史文件包信息,所述历史文件包信息包括历史文件包的版本信息、索引信息、键值信息中的一种或多种;
基于相关的历史文件包一一对应的设置缓存包,且缓存包分布于对应的历史节点中,或者,聚集在协调节点中。
3.根据权利要求2所述的OLAP动态缓存方法,其特征在于,获取实时数据缓存于实时文件包中,并在缓存时长达到预设时段时将实时文件包中的缓存数据分发于各历史文件包中存储的方法包括:
预设数据的分发时段T,每间隔时段T将实时文件包中当前时段的缓存数据统一分发给各历史文件包中存储,同时清空实时文件包中的缓存数据准备下一时段的缓存。
4.根据权利要求2所述的OLAP动态缓存方法,其特征在于,接收当前时刻的查询语句,通过协调节点从对应的历史文件包和/或实时文件包中获取目标数据,经统计汇总后反馈输出的方法包括:
基于查询语句涉及的目标数据及缓存包的分布策略,动态选择缓存包的设置模式;
当动态选择的设置模式为分布于对应的历史节点中时,则在首次查询时通过对应的缓存包从相关历史文件包中获取相关的零散目标数据,经由各自缓存包所属的历史节点汇总合并后得到历史目标数据,再由协调节点将历史目标数据与当前时刻实时文件包中的缓存数据再次汇总合并后得到目标数据反馈输出;
当动态选择的设置模式为聚集在协调节点中时,则在首次查询时通过对应的缓存包从相关历史文件包中获取相关的零散目标数据,经由协调节点汇总合并后得到历史目标数据,再由协调节点将历史目标数据与当前时刻实时文件包中的缓存数据再次汇总合并后得到目标数据反馈输出。
5.根据权利要求4所述的OLAP动态缓存方法,其特征在于,还...
【专利技术属性】
技术研发人员:汪金忠,孙迁,杨兆辉,李成露,
申请(专利权)人:苏宁云计算有限公司,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。