CN103279530B - 时间序列数据的组合查询缓存建立方法及系统、时间序列数据的组合查询缓存方法及系统 - Google Patents

时间序列数据的组合查询缓存建立方法及系统、时间序列数据的组合查询缓存方法及系统 Download PDF

Info

Publication number
CN103279530B
CN103279530B CN201310211075.XA CN201310211075A CN103279530B CN 103279530 B CN103279530 B CN 103279530B CN 201310211075 A CN201310211075 A CN 201310211075A CN 103279530 B CN103279530 B CN 103279530B
Authority
CN
China
Prior art keywords
query
time
memory element
series data
file
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.)
Expired - Fee Related
Application number
CN201310211075.XA
Other languages
English (en)
Other versions
CN103279530A (zh
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.)
Shanghai Ctrip Business Co Ltd
Original Assignee
Shanghai Ctrip Business 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 Shanghai Ctrip Business Co Ltd filed Critical Shanghai Ctrip Business Co Ltd
Priority to CN201310211075.XA priority Critical patent/CN103279530B/zh
Publication of CN103279530A publication Critical patent/CN103279530A/zh
Application granted granted Critical
Publication of CN103279530B publication Critical patent/CN103279530B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了时间序列数据的组合查询缓存建立方法及系统、时间序列数据的组合查询缓存方法及系统,本发明建立的时间序列数据的组合查询缓存,包括时间序列数据的存储单元和查询结果的存储单元,所述时间序列数据的存储单元包括时间数据集合文件和查询时间范围文件,所述查询结果的存储单元包括唯一标识文件和查询时间范围文件,本发明的组合查询缓存在处理时间序列数据上有两个显著的改进:第一,显著提高缓存的命中率,因为本发明可以识别部分时间区间的命中,使后端存储系统的查询压力显著下降;第二:显著降低缓存系统的存储容量,因为本发明中数据的存储粒度小,元数据信息丰富,完全消除了存储中的数据冗余。

Description

时间序列数据的组合查询缓存建立方法及系统、时间序列数据的组合查询缓存方法及系统
技术领域
本发明涉及时间序列数据的组合查询缓存设计,特别涉及一种时间序列数据的组合查询缓存的建立方法及系统、时间序列数据的组合查询缓存的方法及系统。
背景技术
传统缓存系统,比如Squid等,基于key/value匹配,一个key对应一个value,当key有任何变化,即不会命中缓存,而没有考虑key之间的关联和value之间的关联,因此,目前亟需一种基于时间序列数据特点的key之间和value之间的关联性的时间序列数据的组合查询缓存的建立方法及系统、时间序列数据的组合查询缓存的方法及系统,来显著提高缓存命中率和系统存储需求。
发明内容
本发明的目的在于提供一种时间序列数据的组合查询缓存的建立方法及系统、时间序列数据的组合查询缓存的方法及系统,能够建立一种高效高性能的时间序列数据的查询缓存,在查询缓存时显著提高缓存命中率和系统存储需求,以解决现有通用key/value缓存系统处理时间序列数据效率低下的问题。
为解决上述问题,本发明提供一种时间序列数据的组合查询缓存的建立方法,包括:
当某个根据查询关键词获取的查询结果写入缓存时,根据所述查询结果中的每个时间序列数据的唯一标识定位到该时间序列数据的存储单元;
对每个时间序列数据的存储单元判断是否有所述查询结果的查询时间范围的全部或部分未被包含在该时间序列数据的存储单元中的查询时间范围文件中,若有全部或部分未被包含,则将未被包含的全部或部分查询时间范围写入该时间序列数据的存储单元的查询时间范围文件中,然后把未被包含的全部或部分查询时间范围的对应的时间数据写入该时间序列数据的存储单元的时间数据集合文件中,并在该时间序列数据的存储单元的查询时间范围文件中的未被包含的全部或部分查询时间范围的位置写入该时间数据在时间序列数据的存储单元的时间数据集合文件中的偏移量;若无全部或部分未被包含,则不作写入的操作;
根据所述查询结果的查询关键词定位到该查询结果的存储单元,将所述查询结果的查询时间范围写入该查询结果的存储单元的查询时间范围文件中,若所述查询结果的查询时间范围与该查询结果的查询时间范围文件中的查询时间范围有重叠,则将所述查询结果的查询时间范围与该查询结果的查询时间范围文件中有重叠的查询时间范围合并为一个连续的时间范围;
检查所述查询结果的每个时间序列数据的唯一标识是否已写入所述查询结果的存储单元的唯一标识文件中,若未写入,则将该未写入时间序列数据的唯一标识写入所述查询结果的存储单元的唯一标识文件中;若已写入,则不作写入的操作。
本发明还提供一种时间序列数据的组合查询缓存的方法,包括:
当从缓存中查询当前查询是否已经有相应的查询结果时,先根据当前查询的查询关键词定位到对应的查询结果的存储单元;
判断是否有当前查询的查询时间范围的全部或部分被包含在查询结果的存储单元的查询时间范围文件中,若有,则从所述查询结果的存储单元的唯一标识文件中获取与所述被包含的当前查询的查询时间范围的全部或部分对应的唯一标识,根据所述唯一标识定位到对应的时间序列数据的存储单元,从该时间序列数据的存储单元的查询时间范围文件中获取所述被包含的当前查询的查询时间范围的全部或部分的位置的时间序列数据的存储单元的时间数据集合文件中的偏移量,根据所述被包含的当前查询的查询时间范围的全部或部分以及所述偏移量从所述时间数据集合文件中获取对应的时间数据,其它未被包含的部分当前查询的查询时间范围的查询结果从后台获取;若无,则从所述后端获取当前查询的查询结果。
根据本发明的另一面,提供一种时间序列数据的组合查询缓存的建立系统,包括:
第一定位模块,用于当某个根据查询关键词获取的查询结果写入缓存时,根据所述查询结果中的每个时间序列数据的唯一标识定位到该时间序列数据的存储单元;
第一判断模块,用于对每个时间序列数据的存储单元判断是否有所述查询结果的查询时间范围的全部或部分未被包含在该时间序列数据的存储单元中的查询时间范围文件中,若有全部或部分未被包含,则将未被包含的全部或部分查询时间范围写入该时间序列数据的存储单元的查询时间范围文件中,然后把未被包含的全部或部分查询时间范围的对应的时间数据写入该时间序列数据的存储单元的时间数据集合文件中,并在该时间序列数据的存储单元的查询时间范围文件中的未被包含的全部或部分查询时间范围的位置写入该时间数据在时间序列数据的存储单元的时间数据集合文件中的偏移量;若无全部或部分未被包含,则不作写入的操作;
第二定位模块,用于根据所述查询结果的查询关键词定位到该查询结果的存储单元,将所述查询结果的查询时间范围写入该查询结果的存储单元的查询时间范围文件中,若所述查询结果的查询时间范围与该查询结果的查询时间范围文件中的查询时间范围有重叠,则将所述查询结果的查询时间范围与该查询结果的查询时间范围文件中有重叠的查询时间范围合并为一个连续的时间范围;
检查模块,用于检查所述查询结果的每个时间序列数据的唯一标识是否已写入所述查询结果的存储单元的唯一标识文件中,若未写入,则将该未写入时间序列数据的唯一标识写入所述查询结果的存储单元的唯一标识文件中;若已写入,则不作写入的操作。
本发明还提供一种时间序列数据的组合查询缓存的系统,包括:
第三定位模块,用于当从缓存中查询当前查询是否已经有相应的查询结果时,先根据当前查询的查询关键词定位到对应的查询结果的存储单元;
第二判断模块,用于判断是否有当前查询的查询时间范围的全部或部分被包含在查询结果的存储单元的查询时间范围文件中,若有,则从所述查询结果的存储单元的唯一标识文件中获取与所述被包含的当前查询的查询时间范围的全部或部分对应的唯一标识,根据所述唯一标识定位到对应的时间序列数据的存储单元,从该时间序列数据的存储单元的查询时间范围文件中获取所述被包含的当前查询的查询时间范围的全部或部分的位置的时间序列数据的存储单元的时间数据集合文件中的偏移量,根据所述被包含的当前查询的查询时间范围的全部或部分以及所述偏移量从所述时间数据集合文件中获取对应的时间数据,其它未被包含的部分当前查询的查询时间范围的查询结果从后台获取;若无,则从所述后端获取当前查询的查询结果。
与现有技术相比,本发明通过当某个根据查询关键词获取的查询结果写入缓存时,根据所述查询结果中的每个时间序列数据的唯一标识定位到该时间序列数据的存储单元;对每个时间序列数据的存储单元判断是否有所述查询结果的查询时间范围的全部或部分未被包含在该时间序列数据的存储单元中的查询时间范围文件中,若有全部或部分未被包含,则将未被包含的全部或部分查询时间范围写入该时间序列数据的存储单元的查询时间范围文件中,然后把未被包含的全部或部分查询时间范围的对应的时间数据写入该时间序列数据的存储单元的时间数据集合文件中,并在该时间序列数据的存储单元的查询时间范围文件中的未被包含的全部或部分查询时间范围的位置写入该时间数据在时间序列数据的存储单元的时间数据集合文件中的偏移量;若无全部或部分未被包含,则不作写入的操作;根据所述查询结果的查询关键词定位到该查询结果的存储单元,将所述查询结果的查询时间范围写入该查询结果的存储单元的查询时间范围文件中,若所述查询结果的查询时间范围与该查询结果的查询时间范围文件中的查询时间范围有重叠,则将所述查询结果的查询时间范围与该查询结果的查询时间范围文件中有重叠的查询时间范围合并为一个连续的时间范围;检查所述查询结果的每个时间序列数据的唯一标识是否已写入所述查询结果的存储单元的唯一标识文件中,若未写入,则将该未写入时间序列数据的唯一标识写入所述查询结果的存储单元的唯一标识文件中;若已写入,则不作写入的操作,相对于通用key/value缓存,本发明建立的时间序列数据的组合查询缓存,在处理时间序列数据上有两个显著的改进:
第一,显著提高缓存的命中率,因为本发明可以识别部分时间区间的命中,使后端存储系统的查询压力显著下降;
第二:显著降低缓存系统的存储容量,因为本发明中数据的存储粒度小,元数据信息丰富,完全消除了存储中的数据冗余。
本发明是基于时间序列的数据查询缓存的优化实现,特别适用于大中型网站的实时运营监控、故障预警、快速排障、容量规划、以及性能调优等诸多领域。
附图说明
图1是本发明一实施例的查询结果的存储单元的结构示意图;
图2是本发明一实施例的时间序列数据的存储单元的结构示意图;
图3是本发明一实施例的时间序列数据的组合查询缓存的建立方法流程图;
图4是本发明一实施例的时间序列数据的组合查询缓存的方法流程图;
图5是本发明一实施例的查询缓存信息流程图;
图6是本发明一实施例的获取缓存数据流程图;
图7是本发明一实施例的时间序列数据的组合查询缓存的建立系统的模块示意图;
图8是本发明一实施例的时间序列数据的组合查询缓存的系统的模块示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明中定义时间序列数据为TimeSeries,TimeSeries包括一个唯一标识Key和一个打时间戳的数据的集合(以[]表示集合),即:TimeSeries=TimeSeriesKey+[TimedData]。企业运营中会产生各种基于时间序列的数据,比如应用的日志信息,应用的性能定时度量信息,以及论坛中用户的发言都是时间序列数据(TimeSeries),这些数据有一个共同的特点,第一:产生后即不再改变;第二:以时间为序列,每条数据都有时间戳,时间戳正向增加。这种时间序列数据(TimeSeries)存储以一定数量的标记作为TimeSeriesKey,以时间戳+数据为数据点,把TimeSeriesKey+数据点的集合([TimedData])称为时间序列数据。对这种数据的查询或者组合多个时间序列数据的查询,为了减少对存储系统的压力,需要做查询缓存设计,优秀的缓存设计可以显著的提升系统的查询性能。
另外,本发明可定义查询为Query,Query包括查询关键字(QueryPattern),查询时间范围(QueryTimeRange,起始时间和终止时间的组合)和查询返回的结果,结果为TimeSeries的集合([TimeSeries]),即:Query=QueryPattern+QueryTimeRange+[TimeSeries],对Query建立缓存。
综上,本发明的时间序列数据的组合查询缓存分两部分,如图1所示,一部分为Query的元数据缓存,即查询结果的存储单元;如图2所示,另一部分为TimeSeries的数据和元数据,即时间序列数据的存储单元。
实施例一
如图1所示,Query的元数据以QueryPattern为一个组织单元,一个查询结果的存储单元中有两个文件(此处及本文后续表述中文件可以是存储在磁盘上的文件,也可以是内存中的一段结构化数据),第一个文件为唯一标识文件(文件1),用于存此Query结果中所有TimeSeries的TimeSeriesKey,第二个文件为查询时间范围文件(文件2),用于存Query的QueryTimeRange信息集合,比如Query是查询3点到5点的信息,那么对其缓存后,此Query的时间信息文件中增加一条记录[3,5],标识3点到5点此Query有缓存,那么下次如果查询1点到6点的数据,其中的3点到5点之间的数据就可以从缓存中获取。
如图2所示,TimeSeries缓存以TimeSeries为单元,每个时间序列数据的存储单元的标识为TimeSeriesKey,一个时间序列数据的存储单元中有两个文件,一个是数据文件即时间数据集合文件(文件3),用于存放TimedData的集合([TimedData]),另一个是元数据文件即查询时间范围文件(文件4),用于存放时间区间和时间数据集合文件的偏移范围数据的集合(QueryTimeRange+offsets),比如3点到5点之间的数据在数据文件中的偏移量为350到750之间,起到对数据文件的索引作用。
如图3所示,本发明提供一种时间序列数据的组合查询缓存的建立方法,包括:
步骤S11,当某个根据查询关键词获取的查询结果写入缓存时,根据所述查询结果中的每个时间序列数据的唯一标识定位到该时间序列数据的存储单元;
步骤S12,对每个时间序列数据的存储单元判断是否有所述查询结果的查询时间范围的全部或部分未被包含在该时间序列数据的存储单元中的查询时间范围文件中,若有全部或部分未被包含,则转到步骤S13,若无全部或部分未被包含,则转到步骤S14;
步骤S13,将未被包含的全部或部分查询时间范围写入该时间序列数据的存储单元的查询时间范围文件中,然后把未被包含的全部或部分查询时间范围的对应的时间数据写入该时间序列数据的存储单元的时间数据集合文件中,并在该时间序列数据的存储单元的查询时间范围文件中的未被包含的全部或部分查询时间范围的位置写入该时间数据在时间序列数据的存储单元的时间数据集合文件中的偏移量,之后转到步骤S15;
步骤S14,不作写入的操作,之后转到步骤S15;
步骤S15,根据所述查询结果的查询关键词定位到该查询结果的存储单元,将所述查询结果的查询时间范围写入该查询结果的存储单元的查询时间范围文件中,若所述查询结果的查询时间范围与该查询结果的查询时间范围文件中的查询时间范围有重叠,则将所述查询结果的查询时间范围与该查询结果的查询时间范围文件中有重叠的查询时间范围合并为一个连续的时间范围;
步骤S16,检查所述查询结果的每个时间序列数据的唯一标识是否已写入所述查询结果的存储单元的唯一标识文件中,若未写入,则转到步骤S17,若已写入,则转到步骤S18;
步骤S17,将该未写入时间序列数据的唯一标识写入所述查询结果的存储单元的唯一标识文件中;
步骤S18,不作写入的操作。
详细的,当一个Query结果写入缓存时,其结果中TimeSeries先写入,取TimeSeries的TimeSeriesKey定位到TimeSeries存储单元,找到该单元中的文件4,对比QueryTimeRange是否和文件4中已记录的时间有交叉,把未交叉的部分对应的TimedData先写入文件3,之后把未交叉的时间信息记入文件4,同时记下对文件3的写入偏移量,如果QueryTimeRange已包含在文件4中记录过的时间范围内,则此TimeSeries无需记录(这种情况出现的原因是之前的其他Query已返回过此时间段内此TimeSeries的数据从而已被记录)。对结果中所有的TimeSeries做完记录操作后,向QueryPattern标识的Query单元中的文件2记入QueryTimeRange,如果文件2中记录的时间区间与QueryTimeRange有交叉,则需要合并为一个连续的时间区间,之后再检查结果中所有TimeSeries的TimeSeriesKey是否在文件1的记录中都有,如果没有则记入文件1。
本实施例能够建立一种高效高性能的时间序列数据的查询缓存,在查询缓存时显著提高缓存命中率和系统存储需求,以解决现有通用key/value缓存系统处理时间序列数据效率低下的问题。
实施例二
如图4所示,本发明还提供一种时间序列数据的组合查询缓存的方法,包括:
步骤S21,当从缓存中查询当前查询是否已经有相应的查询结果时,先根据当前查询的查询关键词定位到对应的查询结果的存储单元;
步骤S22,判断是否有当前查询的查询时间范围的全部或部分被包含在查询结果的存储单元的查询时间范围文件中,若有,则转到步骤S23,若无,则转到步骤S24;
步骤S23,从所述查询结果的存储单元的唯一标识文件中获取与所述被包含的当前查询的查询时间范围的全部或部分对应的唯一标识,根据所述唯一标识定位到对应的时间序列数据的存储单元,从该时间序列数据的存储单元的查询时间范围文件中获取所述被包含的当前查询的查询时间范围的全部或部分的位置的时间序列数据的存储单元的时间数据集合文件中的偏移量,根据所述被包含的当前查询的查询时间范围的全部或部分以及所述偏移量从所述时间数据集合文件中获取对应的时间数据,其它未被包含的部分当前查询的查询时间范围的查询结果从后台获取;
步骤S24,所述后端获取当前查询的查询结果。
详细的,如图5和6所示,当从缓存中查询一个Query时,先根据QueryPattern找到Query元数据单元,从文件2中查找是否有记录的时间段被包含在QueryTimeRange中,如果有则该时间段的数据可从缓存中取。从缓存中取数据时,依次处理文件1中各TimeSeriesKey,找到其对应的TimeSeries单元,依据该单元中的文件4的时间区间记录以及数据偏移记录,到文件3中读取该时间区间内的TimedData集合作为结果返回,如果该时间区间内无数据记录,则说明该QueryPattern在该时间段内无此TimeSeries数据。
本实施例能够在查询缓存时显著提高缓存命中率和系统存储需求,以解决现有通用key/value缓存系统处理时间序列数据效率低下的问题。
实施例三
如图7所示,本发明还提供另一种时间序列数据的组合查询缓存的建立系统,包括第一定位模块11、第一判断模块12、第二定位模块13和检查模块14。
第一定位模块11,用于当某个根据查询关键词获取的查询结果写入缓存时,根据所述查询结果中的每个时间序列数据的唯一标识定位到该时间序列数据的存储单元。
第一判断模块12,用于对每个时间序列数据的存储单元判断是否有所述查询结果的查询时间范围的全部或部分未被包含在该时间序列数据的存储单元中的查询时间范围文件中,若有全部或部分未被包含,则将未被包含的全部或部分查询时间范围写入该时间序列数据的存储单元的查询时间范围文件中,然后把未被包含的全部或部分查询时间范围的对应的时间数据写入该时间序列数据的存储单元的时间数据集合文件中,并在该时间序列数据的存储单元的查询时间范围文件中的未被包含的全部或部分查询时间范围的位置写入该时间数据在时间序列数据的存储单元的时间数据集合文件中的偏移量;若无全部或部分未被包含,则不作写入的操作。
第二定位模块13,用于根据所述查询结果的查询关键词定位到该查询结果的存储单元,将所述查询结果的查询时间范围写入该查询结果的存储单元的查询时间范围文件中,若所述查询结果的查询时间范围与该查询结果的查询时间范围文件中的查询时间范围有重叠,则将所述查询结果的查询时间范围与该查询结果的查询时间范围文件中有重叠的查询时间范围合并为一个连续的时间范围。
检查模块14,用于检查所述查询结果的每个时间序列数据的唯一标识是否已写入所述查询结果的存储单元的唯一标识文件中,若未写入,则将该未写入时间序列数据的唯一标识写入所述查询结果的存储单元的唯一标识文件中;若已写入,则不作写入的操作。
本实施例的其它详细内容具体可参见实施例一的相应部分,在此不再赘述。
本实施例能够建立一种高效高性能的时间序列数据的查询缓存,在查询缓存时显著提高缓存命中率和系统存储需求,以解决现有通用key/value缓存系统处理时间序列数据效率低下的问题。
实施例四
如图8所示,本发明还提供另一种时间序列数据的组合查询缓存的系统,包括第三定位模块21和第二判断模块22。
第三定位模块21,用于当从缓存中查询当前查询是否已经有相应的查询结果时,先根据当前查询的查询关键词定位到对应的查询结果的存储单元。
第二判断模块22,用于判断是否有当前查询的查询时间范围的全部或部分被包含在查询结果的存储单元的查询时间范围文件中,若有,则从所述查询结果的存储单元的唯一标识文件中获取与所述被包含的当前查询的查询时间范围的全部或部分对应的唯一标识,根据所述唯一标识定位到对应的时间序列数据的存储单元,从该时间序列数据的存储单元的查询时间范围文件中获取所述被包含的当前查询的查询时间范围的全部或部分的位置的时间序列数据的存储单元的时间数据集合文件中的偏移量,根据所述被包含的当前查询的查询时间范围的全部或部分以及所述偏移量从所述时间数据集合文件中获取对应的时间数据,其它未被包含的部分当前查询的查询时间范围的查询结果从后台获取;若无,则从所述后端获取当前查询的查询结果。
本实施例的其它详细内容具体可参见实施例二的相应部分,在此不再赘述。
综上,本发明通过当某个根据查询关键词获取的查询结果写入缓存时,根据所述查询结果中的每个时间序列数据的唯一标识定位到该时间序列数据的存储单元;对每个时间序列数据的存储单元判断是否有所述查询结果的查询时间范围的全部或部分未被包含在该时间序列数据的存储单元中的查询时间范围文件中,若有全部或部分未被包含,则将未被包含的全部或部分查询时间范围写入该时间序列数据的存储单元的查询时间范围文件中,然后把未被包含的全部或部分查询时间范围的对应的时间数据写入该时间序列数据的存储单元的时间数据集合文件中,并在该时间序列数据的存储单元的查询时间范围文件中的未被包含的全部或部分查询时间范围的位置写入该时间数据在时间序列数据的存储单元的时间数据集合文件中的偏移量;若无全部或部分未被包含,则不作写入的操作;根据所述查询结果的查询关键词定位到该查询结果的存储单元,将所述查询结果的查询时间范围写入该查询结果的存储单元的查询时间范围文件中,若所述查询结果的查询时间范围与该查询结果的查询时间范围文件中的查询时间范围有重叠,则将所述查询结果的查询时间范围与该查询结果的查询时间范围文件中有重叠的查询时间范围合并为一个连续的时间范围;检查所述查询结果的每个时间序列数据的唯一标识是否已写入所述查询结果的存储单元的唯一标识文件中,若未写入,则将该未写入时间序列数据的唯一标识写入所述查询结果的存储单元的唯一标识文件中;若已写入,则不作写入的操作,相对于通用key/value缓存,本发明建立的时间序列数据的组合查询缓存,在处理时间序列数据上有两个显著的改进:
第一,显著提高缓存的命中率,因为本发明可以识别部分时间区间的命中,使后端存储系统的查询压力显著下降;
第二:显著降低缓存系统的存储容量,因为本发明中数据的存储粒度小,元数据信息丰富,完全消除了存储中的数据冗余。
本发明是基于时间序列的数据查询缓存的优化实现,特别适用于大中型网站的实时运营监控、故障预警、快速排障、容量规划、以及性能调优等诸多领域。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。

Claims (4)

1.一种时间序列数据的组合查询缓存的建立方法,其特征在于,包括:
当某个根据查询关键词获取的查询结果写入缓存时,根据所述查询结果中的每个时间序列数据的唯一标识定位到该时间序列数据的存储单元;
对每个时间序列数据的存储单元判断是否有所述查询结果的查询时间范围的全部或部分未被包含在该时间序列数据的存储单元中的查询时间范围文件中,若有全部或部分未被包含,则将未被包含的全部或部分查询时间范围写入该时间序列数据的存储单元的查询时间范围文件中,然后把未被包含的全部或部分查询时间范围的对应的时间数据写入该时间序列数据的存储单元的时间数据集合文件中,并在该时间序列数据的存储单元的查询时间范围文件中的未被包含的全部或部分查询时间范围的位置写入该时间数据在时间序列数据的存储单元的时间数据集合文件中的偏移量;若无全部或部分未被包含,则不作写入的操作;
根据所述查询结果的查询关键词定位到该查询结果的存储单元,将所述查询结果的查询时间范围写入该查询结果的存储单元的查询时间范围文件中,若所述查询结果的查询时间范围与该查询结果的查询时间范围文件中的查询时间范围有重叠,则将所述查询结果的查询时间范围与该查询结果的查询时间范围文件中有重叠的查询时间范围合并为一个连续的时间范围;
检查所述查询结果的每个时间序列数据的唯一标识是否已写入所述查询结果的存储单元的唯一标识文件中,若未写入,则将该未写入时间序列数据的唯一标识写入所述查询结果的存储单元的唯一标识文件中;若已写入,则不作写入的操作。
2.一种时间序列数据的组合查询缓存的方法,其特征在于,包括:
当从缓存中查询当前查询是否已经有相应的查询结果时,先根据当前查询的查询关键词定位到对应的查询结果的存储单元;
判断是否有当前查询的查询时间范围的全部或部分被包含在查询结果的存储单元的查询时间范围文件中,若有,则从所述查询结果的存储单元的唯一标识文件中获取与所述被包含的当前查询的查询时间范围的全部或部分对应的唯一标识,根据所述唯一标识定位到对应的时间序列数据的存储单元,从该时间序列数据的存储单元的查询时间范围文件中获取所述被包含的当前查询的查询时间范围的全部或部分的位置的时间序列数据的存储单元的时间数据集合文件中的偏移量,根据所述被包含的当前查询的查询时间范围的全部或部分以及所述偏移量从所述时间数据集合文件中获取对应的时间数据,其它未被包含的部分当前查询的查询时间范围的查询结果从后台获取;若无,则从所述后台获取当前查询的查询结果。
3.一种时间序列数据的组合查询缓存的建立系统,其特征在于,包括:
第一定位模块,用于当某个根据查询关键词获取的查询结果写入缓存时,根据所述查询结果中的每个时间序列数据的唯一标识定位到该时间序列数据的存储单元;
第一判断模块,用于对每个时间序列数据的存储单元判断是否有所述查询结果的查询时间范围的全部或部分未被包含在该时间序列数据的存储单元中的查询时间范围文件中,若有全部或部分未被包含,则将未被包含的全部或部分查询时间范围写入该时间序列数据的存储单元的查询时间范围文件中,然后把未被包含的全部或部分查询时间范围的对应的时间数据写入该时间序列数据的存储单元的时间数据集合文件中,并在该时间序列数据的存储单元的查询时间范围文件中的未被包含的全部或部分查询时间范围的位置写入该时间数据在时间序列数据的存储单元的时间数据集合文件中的偏移量;若无全部或部分未被包含,则不作写入的操作;
第二定位模块,用于根据所述查询结果的查询关键词定位到该查询结果的存储单元,将所述查询结果的查询时间范围写入该查询结果的存储单元的查询时间范围文件中,若所述查询结果的查询时间范围与该查询结果的查询时间范围文件中的查询时间范围有重叠,则将所述查询结果的查询时间范围与该查询结果的查询时间范围文件中有重叠的查询时间范围合并为一个连续的时间范围;
检查模块,用于检查所述查询结果的每个时间序列数据的唯一标识是否已写入所述查询结果的存储单元的唯一标识文件中,若未写入,则将该未写入时间序列数据的唯一标识写入所述查询结果的存储单元的唯一标识文件中;若已写入,则不作写入的操作。
4.一种时间序列数据的组合查询缓存的系统,其特征在于,包括:
第三定位模块,用于当从缓存中查询当前查询是否已经有相应的查询结果时,先根据当前查询的查询关键词定位到对应的查询结果的存储单元;
第二判断模块,用于判断是否有当前查询的查询时间范围的全部或部分被包含在查询结果的存储单元的查询时间范围文件中,若有,则从所述查询结果的存储单元的唯一标识文件中获取与所述被包含的当前查询的查询时间范围的全部或部分对应的唯一标识,根据所述唯一标识定位到对应的时间序列数据的存储单元,从该时间序列数据的存储单元的查询时间范围文件中获取所述被包含的当前查询的查询时间范围的全部或部分的位置的时间序列数据的存储单元的时间数据集合文件中的偏移量,根据所述被包含的当前查询的查询时间范围的全部或部分以及所述偏移量从所述时间数据集合文件中获取对应的时间数据,其它未被包含的部分当前查询的查询时间范围的查询结果从后台获取;若无,则从所述后台获取当前查询的查询结果。
CN201310211075.XA 2013-05-31 2013-05-31 时间序列数据的组合查询缓存建立方法及系统、时间序列数据的组合查询缓存方法及系统 Expired - Fee Related CN103279530B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310211075.XA CN103279530B (zh) 2013-05-31 2013-05-31 时间序列数据的组合查询缓存建立方法及系统、时间序列数据的组合查询缓存方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310211075.XA CN103279530B (zh) 2013-05-31 2013-05-31 时间序列数据的组合查询缓存建立方法及系统、时间序列数据的组合查询缓存方法及系统

Publications (2)

Publication Number Publication Date
CN103279530A CN103279530A (zh) 2013-09-04
CN103279530B true CN103279530B (zh) 2016-07-27

Family

ID=49062049

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310211075.XA Expired - Fee Related CN103279530B (zh) 2013-05-31 2013-05-31 时间序列数据的组合查询缓存建立方法及系统、时间序列数据的组合查询缓存方法及系统

Country Status (1)

Country Link
CN (1) CN103279530B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105426411B (zh) * 2015-10-31 2019-05-28 南京南瑞继保电气有限公司 基于访问趋势预测的时间序列数据库缓存管理方法
CN108241647B (zh) * 2016-12-23 2022-03-11 北京奇虎科技有限公司 数据处理及查询的方法和装置
CN108062378B (zh) * 2017-12-12 2018-12-11 清华大学 一种列式存储下多时间序列的连接查询方法及系统
US11216466B2 (en) 2019-04-24 2022-01-04 Ebay Inc. Managing database offsets with time series
CN112328842B (zh) * 2021-01-05 2022-03-25 北京谷数科技股份有限公司 一种数据处理方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102043795A (zh) * 2009-10-13 2011-05-04 上海新华控制技术(集团)有限公司 过程控制历史数据文件结构的建立方法和数据读写方法
CN102163175A (zh) * 2011-04-26 2011-08-24 西安交通大学 一种基于局部性分析的混合地址映射方法
CN102325244A (zh) * 2011-08-26 2012-01-18 杭州海康威视数字技术股份有限公司 按时间快速定位录像的方法、录像存储控制装置及定位装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4856966B2 (ja) * 2006-01-27 2012-01-18 株式会社日立製作所 バックアップシステム、ファイルサーバ、及びバックアップ方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102043795A (zh) * 2009-10-13 2011-05-04 上海新华控制技术(集团)有限公司 过程控制历史数据文件结构的建立方法和数据读写方法
CN102163175A (zh) * 2011-04-26 2011-08-24 西安交通大学 一种基于局部性分析的混合地址映射方法
CN102325244A (zh) * 2011-08-26 2012-01-18 杭州海康威视数字技术股份有限公司 按时间快速定位录像的方法、录像存储控制装置及定位装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于线性时序逻辑的对象文件系统形式化描述;曾令仿等;《计算机研究与发展》;20080626;全文 *
海量时序数据高可用性实时存储技术研究与应用;金鑫;《万方学位论文全文数据库(电子期刊)》;20120630;全文 *

Also Published As

Publication number Publication date
CN103279530A (zh) 2013-09-04

Similar Documents

Publication Publication Date Title
JP7271670B2 (ja) データレプリケーション方法、装置、コンピュータ機器及びコンピュータプログラム
CN103279530B (zh) 时间序列数据的组合查询缓存建立方法及系统、时间序列数据的组合查询缓存方法及系统
US8868512B2 (en) Logging scheme for column-oriented in-memory databases
JP6178859B2 (ja) 光ディスクに基づくデータベース記憶システム及びその利用方法
EP2735978B1 (en) Storage system and management method used for metadata of cluster file system
US8799601B1 (en) Techniques for managing deduplication based on recently written extents
US7774565B2 (en) Methods and apparatus for point in time data access and recovery
CN104090889B (zh) 数据处理方法及系统
US20090292947A1 (en) Cascading index compression
CN105069048A (zh) 一种小文件存储方法、查询方法和装置
CN107766374B (zh) 一种海量小文件存储读取的优化方法和系统
CN103399823B (zh) 业务数据的存储方法、设备和系统
CN102831222A (zh) 一种基于重复数据删除的差量压缩方法
CN110196847A (zh) 数据处理方法和装置、存储介质及电子装置
CN104156380A (zh) 一种分布式存储器哈希索引方法及系统
CN102779138B (zh) 实时数据的硬盘存取方法
US10468061B1 (en) Indexing zones for storage devices
CN103714163A (zh) 一种NoSQL数据库的模式管理方法及系统
CN103605778A (zh) 一种视频文件的定位方法、装置及系统
CN104424219A (zh) 一种数据文件的管理方法及装置
CN108287869A (zh) 一种基于快速存储设备的海量小文件解决方法
CN104281717A (zh) 一种建立海量id映射关系的方法
CN109213898A (zh) 视频监控系统的录像检索方法及装置
CN101256579A (zh) 一种数据库范围查询数据组织的方法
CN114265834A (zh) 一种分布式时序数据库存储引擎方法、装置及介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20160302

Address after: 200335 Shanghai city Changning District Admiralty Road No. 968 Building No. 16 10 floor

Applicant after: Shanghai Ctrip Business Co.,Ltd.

Address before: 200335 Shanghai Changning District Fuquan Road No. 99

Applicant before: CTRIP COMPUTER TECHNOLOGY (SHANGHAI) Co.,Ltd.

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160727