CN114036410A - 数据存储、查询方法、设备、系统、程序及介质 - Google Patents
数据存储、查询方法、设备、系统、程序及介质 Download PDFInfo
- Publication number
- CN114036410A CN114036410A CN202111200079.9A CN202111200079A CN114036410A CN 114036410 A CN114036410 A CN 114036410A CN 202111200079 A CN202111200079 A CN 202111200079A CN 114036410 A CN114036410 A CN 114036410A
- Authority
- CN
- China
- Prior art keywords
- data
- time
- time sequence
- storage medium
- type
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 85
- 238000013500 data storage Methods 0.000 title claims abstract description 23
- 230000006835 compression Effects 0.000 claims abstract description 9
- 238000007906 compression Methods 0.000 claims abstract description 9
- 230000008569 process Effects 0.000 claims abstract description 9
- 238000004590 computer program Methods 0.000 claims description 20
- 238000007726 management method Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 5
- 238000013523 data management Methods 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims description 2
- 238000012423 maintenance Methods 0.000 abstract description 16
- 238000010586 diagram Methods 0.000 description 15
- 230000005012 migration Effects 0.000 description 15
- 238000013508 migration Methods 0.000 description 15
- 238000005192 partition Methods 0.000 description 9
- 230000004083 survival effect Effects 0.000 description 9
- 230000008859 change Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 238000005338 heat storage Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9537—Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种数据存储、查询方法、设备、系统、程序及介质,包括将时序数据存储在第一类型存储介质,根据数据级别对应的时间窗口将时序数据划分到对应数据级别,并将时序数据从第一类型存储介质迁移到划分的数据级别对应的第二类型存储介质。这是一套同库内冷热数据分级存储一体化方案,天然消除数据不一致问题,简化客户开发或者数据使用操作步骤,相比传统多库,大大降低运维及使用复杂程度。另外通过分层数据结构进行分层存储过程中使用水平压缩策略,实现高效数据分级,并通过由客户设置时间分界线和特定流转策略实现灵活数据分级,从而实现高效灵活的冷热数据分级存储,并由此降低存储成本、提高数据可用性、提升热数据读写性能。
Description
技术领域
本申请涉及存储技术领域,尤其涉及一种数据存储、查询方法、设备、系统、程序及介质。
背景技术
在数据库应用场景中,随着时间的推移,数据体量也会逐渐变大,一定程度上会提高存储成本,降低数据可用性,也影响热存数据的实时查询性能,基于此,根据被访问的频度不同,可将数据库中的数据划分为热数据和冷数据,并进行分离存储,降低存储成本,保证热数据查询性能。
通常,是通过多个数据库来实现冷热数据的分离存储。例如,两个数据库中数据库1用于存储热数据,数据库2用于存储冷数据。对于写入数据库1中的数据,在其变为冷数据之后,需要同步到数据库2中。在查询数据时,如果查询热数据则需要从数据库1中查找,如果查询冷数据则需要从数据库2中查找。这种方式运维复杂,使用复杂且容易造成数据不一致的问题。
发明内容
本申请实施例提供一种数据存储、查询方法、设备、系统、程序及介质,用以解决现有技术中通过多个数据库来实现冷热数据的分离存储的方式,运维复杂,使用复杂且容易造成数据不一致的问题。
第一方面,本申请实施例提供一种数据存储方法,适用于时序数据库,所述时序数据库包括多个类型存储介质,且不同类型存储介质对应不同数据级别,各个类型存储介质用于存储对应数据级别的数据,所述方法包括:
获取待存储的时序数据,将所述时序数据存储在所述时序数据库的第一类型存储介质中;
根据所述多个数据级别分别对应的时间窗口,将所述时序数据划分到所述多个数据级别中的与所述时序数据的时间信息对应的数据级别中,并在为所述时序数据划分的数据级别与所述时序数据当前所在的第一类型存储介质对应的数据级别不相同时,将所述时序数据从所述第一类型存储介质迁移到为所述时序数据划分的数据级别对应的第二类型存储介质中。
第二方面,本申请实施例提供一种数据查询方法,适用于时序数据库,所述时序数据库包括多个类型存储介质,且不同类型存储介质对应不同数据级别,各个类型存储介质用于存储对应数据级别的数据,所述方法包括:
获取用于请求查询时序数据库中时序数据的查询请求;
确定为所述时序数据划分的数据级别,并根据为所述时序数据划分的数据级别确定所述时序数据当前所在的存储介质的类型;
从确定的所述类型的存储介质中查找所述时序数据。
第三方面,本申请实施例提供一种数据存储装置,适用于时序数据库,所述时序数据库包括多个类型存储介质,且不同类型存储介质对应不同数据级别,各个类型存储介质用于存储对应数据级别的数据,所述装置包括:
存储模块,用于获取待存储的时序数据,将所述时序数据存储在所述时序数据库的第一类型存储介质中;
分级迁移模块,用于根据所述多个数据级别分别对应的时间窗口,将所述时序数据划分到所述多个数据级别中的与所述时序数据的时间信息对应的数据级别中,并在为所述时序数据划分的数据级别与所述时序数据当前所在的第一类型存储介质对应的数据级别不相同时,将所述时序数据从所述第一类型存储介质迁移到为所述时序数据划分的数据级别对应的第二类型存储介质中。
第四方面,本申请实施例提供一种数据查询装置,适用于时序数据库,所述时序数据库包括多个类型存储介质,且不同类型存储介质对应不同数据级别,各个类型存储介质用于存储对应数据级别的数据,所述装置包括:
获取模块,用于获取用于请求查询时序数据库中时序数据的查询请求;
确定模块,用于确定为所述时序数据划分的数据级别,并根据为所述时序数据划分的数据级别确定所述时序数据当前所在的存储介质的类型;
查找模块,用于从确定的所述类型的存储介质中查找所述时序数据。
第五方面,本申请实施例提供一种计算机设备,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现如第一方面任一项所述的方法。
第六方面,本申请实施例提供一种计算机设备,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现如第二方面任一项所述的方法。
第七方面,本申请实施例提供一种数据库系统,包括:时序数据库和用于对时序数据库进行管理的数据管理系统;其中,所述时序数据库包括多个类型存储介质,不同类型存储介质对应不同数据级别,各个类型存储介质用于存储对应数据级别的数据;所述数据库管理系统用于实现如第一方面和第二方面中任一项所述的方法。
第八方面,本申请实施例提供一种计算机程序,包括计算机程序指令,当所述指令由处理器执行时,实现如第一方面任一项所述的方法。
第九方面,本申请实施例提供一种计算机程序,包括计算机程序指令,当所述指令由处理器执行时,实现如第二方面任一项所述的方法。
第十方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被执行时,实现如第一方面任一项所述的方法。
第十一方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被执行时,实现如第二方面任一项所述的方法。
在本申请实施例中,时序数据库包括多个类型存储介质,不同类型存储介质对应不同数据级别,各个类型存储介质用于存储对应数据级别的数据,基于此,在将时序数据存储在时序数据库的第一类型存储介质中之后,可以结合时序数据的时间特性为时序数据划分数据级别,并将时序数据从第一类型存储介质迁移到为其划分的数据级别对应的第二类型存储介质中,实现了在同一时序数据库内自动进行冷热数据的分离存储,避免了由运维人员进行数据库之间的数据同步所带来的运维复杂的问题,降低了运维复杂程度,并且由于冷热数据存储在同一时序数据库内,因此在查询数据时可以只从一个数据库中进行查找,避免了从多个数据库中进行查找所带来的使用复杂的问题,降低了使用复杂程度,而且由于无需进行多个数据库之间的数据同步,因此能够避免由于需要在多个数据库之间进行数据同步所带来的数据不一致的问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的数据库系统的结构示意图;
图2为本申请一实施例提供的数据存储方法的流程示意图;
图3为本申请一实施例提供的数据库系统的方法的流程示意图;
图4为本申请一实施例提供的数据分级的流程示意图;
图5为本申请一实施例提供的数据查询方法的流程示意图;
图6为本申请一实施例提供的数据存储装置的结构示意图;
图7为本申请一实施例提供的计算机设备的结构示意图;
图8为本申请一实施例提供的数据查询装置的结构示意图;
图9为本申请另一实施例提供的计算机设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
为了方便本领域技术人员理解本申请实施例提供的技术方案,下面先对技术方案实现的技术环境进行说明。
相关技术中比较常用的冷热数据分离存储的方法,主要包括通过多个数据库来实现冷热数据的分离存储,然而这种方式运维复杂,使用复杂且容易造成数据不一致的问题,因此相关技术中亟需一种能够降低运维复杂程度、使用复杂程度且能够避免数据不一致问题的冷热数据分离存储的数据存储方式。
基于类似于上文所述的实际技术需求,本申请提供的数据存储方法可以利用技术化的手段降低运维复杂程度、使用复杂程度且能够避免数据不一致的问题。
本申请实施例提供的方法可以应用于图1所示的数据库系统,如图1所示,该数据库系统中包括时序数据库11和用于对时序数据库11进行管理的数据库管理系统12。数据库管理系统12可以实现本申请实施例提供的方法,即本申请实施例提供的方法可以由部署数据库管理系统12的计算机设备X执行。
为了解决通过多个数据库来实现冷热数据的分离存储的方式,运维复杂,使用复杂的问题,本申请实施例中时序数据库包括多个类型存储介质,不同类型存储介质对应不同数据级别,各个类型的存储介质用于存储对应数据级别的数据,基于此,在将时序数据存储在时序数据库的第一类型存储介质中之后,可以结合时序数据的时间特性为时序数据划分数据级别,并将时序数据从第一类型存储介质迁移到为其划分的数据级别对应的第二类型存储介质中,实现了在同一时序数据库内自动进行冷热数据的分离存储,避免了由运维人员进行数据库之间的数据同步所带来的运维复杂的问题,降低了运维复杂程度,并且由于冷热数据存储在同一时序数据库内,因此在查询数据时可以只从一个数据库中进行查找,避免了从多个数据库中进行查找所带来的使用复杂的问题,降低了使用复杂程度,而且由于无需进行多个数据库之间的数据同步,因此能够避免由于需要在多个数据库之间进行数据同步所带来的数据不一致的问题。
需要说明的是,不同类型存储介质的存储性能可以不同,不同数据级别的数据对于查询性能的要求可以不同,数据级别越高的数据对于查询性能的要求可以越高。在同一时序数据库中,数据级别越高的数据可以存储在存储性能越高的存储介质中,使得对数据级别越高的数据的查询性能可以越好,数据级别越低的数据可以存储在存储性能越低的存储介质中,而存储性能越低的存储介质其成本通常也越低,使得对数据级别越低的数据的存储成本可以越低,从而既能够降低存储成本,又能够保证热数据查询性能。
另外,通过在同一时序数据库内自动进行冷热数据的分离存储,还能够避免由于将热数据和冷数据存储在一起,导致查询性能低下、严重时拖垮数据库管理系统,从而导致数据库管理系统不可用的问题,提高了数据可用性。
基于上述,在图1所示的数据库系统中,数据库管理系统12可以获取待存储的时序数据,将时序数据存储在时序数据库11的第一类型存储介质中,根据多个数据级别分别对应的时间窗口,将时序数据划分到多个数据级别中的与时序数据的时间信息对应的数据级别中,并在为时序数据划分的数据级别为与时序数据当前所在的第一类型存储介质对应的数据级别不相同时,将时序数据从第一类型存储介质迁移到为时序数据划分的等级对应的第二类型存储介质中。其中,第一类型存储介质与第二类型存储介质相比,第一类型存储介质的存储性能较高、成本也较高,第二类型存储介质的存储性能较低成本也较低。
需要说明的是,图1中是以数据级别的数量为两个,两个数据级别中的较高数据级别对应第一类型存储介质,两个数据级别中的较低数据级别对应第二类型存储介质为例,可以理解的是,数据级别的数量也可以大于两个。
以数据可以被划分为热、温和冷三个数据级别为例,时序数据库可以包括高性能热存、标准型暖存和低成本冷存三种类型的存储介质,则高性能热存可以对应“热”数据级别,标准型暖存可以对应“温”数据级别,低成本冷存可以对应“冷”数据级别,即高性能热存可以用于存储数据级别为“热”的数据(简称为热数据),标准型暖存可以用于存储数据级别为“温”的数据(简称为温数据),低成本冷存可以用于存储数据级别为“冷”的数据(简称为冷数据)。其中,高性能热存可以理解为前述的第一类型存储介质。高性能热存例如可以为计算机设备X中的存储介质,标准型暖存例如可以为计算机设备X之外的存储性能较低的存储介质,低成本冷存例如可以为计算机设备X之外的存储性能更低的存储介质。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突情况下,下述的实施例及实施例中的特征可以相互组合。
图2为本申请一实施例提供的数据存储方法的流程示意图,本实施例的执行主体可以为图1中部署数据库管理系统12的计算机设备X。如图2所示,本实施例的方法可以包括:
步骤21,获取待存储的时序数据,将所述时序数据存储在时序数据库的第一类型存储介质中;
步骤22,根据所述多个数据级别分别对应的时间窗口,将所述时序数据划分到所述多个数据级别中的与所述时序数据的时间信息对应的数据级别中,并在为所述时序数据划分的数据级别与所述时序数据当前所在的第一类型存储介质对应的数据级别不相同时,将所述时序数据从所述第一类型存储介质迁移到为所述时序数据划分的数据级别对应的第二类型存储介质中。
一个实施例中,获取待存储的时序数据可以为接收设备(例如物联网设备、车联网设备、电网设备等)上报的时序数据,时序数据存在对应的时间信息。时序数据对应的时间信息可以是上报设备采集时序数据的时间,示例性的,时序数据的时间信息可以包括采集时序数据的时间戳。或者,时序数据的时间信息可以是接收设备接收时序数据的时间,示例性的,时序数据的时间信息可以包括接收时序数据的时间戳。
在获取到待存储的时序数据之后,可以将时序数据存储在时序数据库的第一类型存储介质中。一个实施例中,第一类型存储介质可以是计算机设备X中的硬盘。
考虑到分层数据结构能够对数据进行分层存储,从而能够让较老的数据在较低层,较新的数据在较高层。一个实施例中,可以采用分层数据结构将时序数据存储在时序数据库的第一类型存储介质中,从而有利于便于对时序数据进行分级。基于此,将时序数据存储在时序数据库的第一类型存储介质中,具体可以包括:通过分层数据结构对时序数据进行分层存储,以将时序数据存储在时序数据库的第一类型存储介质中。示例性的,分层数据结构可以为日志结构合并树(Log Structured Merge Tree,简称LSM-Tree)。
可选的,本申请实施例提供的方法还可以包括:在通过分层数据结构对时序数据进行分层存储的过程中,根据水平压缩策略(leveled compaction strategy),对同一层中的文件进行压缩合并,对压缩合并得到的文件中的时序数据进行排序,并将文件移动到下一层级。通过对同一层中的文件进行压缩合并,有利于同一层中冷热数据的分离,以便于对非热数据进行迁移,减小对非热数据进行压缩合并的次数,降低资源开销且效率更高。
本申请实施例中,在将时序数据存储在时序数据库的第一类型存储介质中之后,可以根据多个数据级别分别对应的时间窗口,将时序数据划分到多个数据级别中的与时序数据的时间信息对应的数据级别中。
需要说明的是,步骤22中为时序数据划分的数据级别,可能是第一类型存储介质对应的数据级别,也可能是第一类型存储介质对应的数据级别的下一数据级别,还可能是第一类型存储介质对应的数据级别之下的其他数据级别。例如,假设数据级别的数量为3且3个数据级别分别为“热”、“温”和“冷”,且第一类型存储介质对应的数据级别为“热”,如果执行步骤22时,时序数据对应的时间信息落入“热”数据级别对应的时间窗口,则为时序数据划分的数据级别是“热”,如果执行步骤22时,时序数据对应的时间信息落入“温”数据级别对应的时间窗口,则为时序数据划分的数据级别是“温”,如果执行步骤22时,时序数据对应的时间信息落入“冷”数据级别对应的时间窗口,则为时序数据划分的数据级别是“冷”。
其中,多个数据级别分别对应的时间窗口可以根据自定义的参数确定,从而有利于提高灵活性。一个实施例中,多个数据级别分别对应的时间窗口可以是滑动时间窗口,使得随着时间的推移时间窗口可以相应变化,从而有利于提升数据分级的合理性。基于此,本申请实施例提供的方法还可以包括:在到达特定时刻时,将多个数据级别分别对应的时间窗口均向前滑动目标时长。
示例性的,可以根据设置的时间分界线(time boundary)确定滑动时间窗口。进一步的,在需要限制数据的存活时间时,可以根据时间分界线以及存活时间确定滑动时间窗口。其中,时间分界线和存活时间可以自定义。
举例1,假设数据级别的数量为2,2个数据级别分别为“热”和“冷”,设置的时间分界线为1天,存活时间为31天,且当前时间是2021年8月1日,则“热”数据级别对应的时间窗口可以为2021年8月1日0点0分0秒至2021年8月1日23点59分59秒,“冷”数据级别对应的时间窗口可以为2021年7月31日23点59分59秒至2021年7月1日0点0分0秒;之后,在到达2021年8月1日23点59分59秒时,可以将2个数据级别分别对应的时间窗口均向前滑动24小时,由此“热”数据级别对应的时间窗口可以为2021年8月2日0点0分0秒至2021年8月2日23点59分59秒,“冷”数据级别对应的时间窗口可以为2021年8月1日23点59分59秒至2021年7月2日0点0分0秒;然后,在到达2021年8月2日23点59分59秒时,可以将2个数据级别分别对应的时间窗口均再向前滑动24小时,由此“热”数据级别对应的时间窗口可以为2021年8月3日0点0分0秒至2021年8月3日23点59分59秒,“冷”数据级别对应的时间窗口可以为2021年8月2日23点59分59秒至2021年7月3日0点0分0秒;……。其中,2021年8月1日23点59分59秒、2021年8月2日23点59分59秒等即为特定时刻,24小时即为目标时长。
举例2,假设数据级别的数量为3,3个数据级别分别为“热”、“温”和“冷”,设置的时间分界线1是1天,时间分界线2是3天,存活时间为31天,且当前时间是2021年8月1日,则“热”数据级别对应的时间窗口可以为2021年8月1日0点0分0秒至2021年8月1日23点59分59秒,“温”数据级别对应的时间窗口可以为2021年7月31日23点59分59秒至2021年7月29日0点0分0秒,“冷”数据级别对应的时间窗口可以为2021年7月28日23点59分59秒至2021年7月1日0点0分0秒;之后,在到达2021年8月1日23点59分59秒时,可以将3个数据级别分别对应的时间窗口均向前滑动24小时,由此“热”数据级别对应的时间窗口可以为2021年8月2日0点0分0秒至2021年8月2日23点59分59秒,“温”数据级别对应的时间窗口可以为2021年8月1日23点59分59秒至2021年7月30日0点0分0秒,“冷”数据级别对应的时间窗口可以为2021年7月29日23点59分59秒至2021年7月2日0点0分0秒;然后,在到达2021年8月2日23点59分59秒时,可以将3个数据级别分别对应的时间窗口均再向前滑动24小时,由此“热”数据级别对应的时间窗口可以为2021年8月3日0点0分0秒至2021年8月3日23点59分59秒,“温”数据级别对应的时间窗口可以为2021年8月2日23点59分59秒至2021年7月31日0点0分0秒,“冷”数据级别对应的时间窗口可以为2021年7月30日23点59分59秒至2021年7月3日0点0分0秒。其中,2021年8月1日23点59分59秒、2021年8月2日23点59分59秒等即为特定时刻,24小时即为目标时长。
可选的,对于超过存活时间的时序数据可以进行删除,从而能够节省存储空间。基于此,一个实施例中,本申请实施例提供的方法还可以包括:在时序数据对应的时间信息落在多个数据级别对应的时间窗口之外时,将时序数据删除。
一个实施例中,在采用分层数据结构将时序数据存储在第一类型存储介质中时,根据多个数据级别分别对应的时间窗口,将时序数据划分到多个数据级别中的与时序数据的时间信息对应的数据级别中,具体可以包括:在时序数据位于分层数据结构中目标层级的情况下,根据多个数据级别分别对应的时间窗口,将时序数据划分到多个数据级别中的与时序数据的时间信息对应的数据级别中。其中,目标层级可以包括底层。通过在时序数据位于目标层级的情况下,再对时序数据进行分级,有利于节省计算量。以分层数据结构的层级包括L0至LN共N+1层为例,底层为LN。
以分层数据结构为LSM-Tree为例,如图3和图4所示,对于写入(write)请求需要写入的时序数据,可以将其先记录在内存的memTable中,当memTable被写满,memTable切换为不可更改的Immutable memTable,同时为了不阻塞写操作需要新生成memTable继续接收写入请求。之后,在刷脏(flush)时将Immutable memTable中记录的时序数据写到第一层级L0中的文件中,然后可以基于水平压缩策略进行文件合并、数据排序,从而实现在由L0下沉至底层LN的过程中完成数据的初级冷热切分。
进一步的,以数据级别的数量为3且3个数据级别分别为“热”、“温”和“冷”为例,参考图3和图4,根据自定义的存活时间和时间分界线1、时间分界线2可以确定3个数据级别分别的时间窗口,进而可以基于时间窗口以及时序数据对应的时间信息为时序数据划分数据级别,超过存活时间的数据可以被删除。其中,“热”数据级别对应高性能热存,“温”数据级别对应标准型暖存,“冷”数据级别对应低成本冷存。
本申请实施例中,在为时序数据划分的数据级别与时序数据当前所在的第一类型存储介质对应的数据级别不相同时,将时序数据从第一类型存储介质迁移到为时序数据划分的数据级别对应的第二类型存储介质中。
通过将时序数据从第一类型存储介质迁移到为时序数据划分的数据级别对应的第二类型存储介质中,可以实现在同一时序数据库中,将数据级别较低的时序数据从存储性能较快的第一类型存储介质,迁移到存储性能较慢第二类型存储介质中,实现在同一时序数据库内自动进行冷热数据的分离存储。
本申请实施例中,如果数据级别对应的时间窗口是滑动时间窗口,通过执行步骤22为时序数据划分数据级别之后,已经划分数据级别的时序数据的数据级别随着时间的推移还可以进一步降低,从而使得越老的数据的数据级别可以越低,有利于提高数据级别划分的合理性。
基于此,本申请实施例提供的方法还可以包括:根据多个数据级别分别对应的滑动后时间窗口,将时序数据重新划分到多个数据级别中与时序数据的时间信息对应的数据级别中;以及,在为时序数据重新划分的数据级别与时序数据当前所在的第二存储介质对应的数据级别不相同时,将时序数据从第二类型存储介质迁移到为时序数据重新划分的数据级别对应的第三类型存储介质中。
例如,在例2的基础上,假设时序数据对应的时间信息是7月31日12时,且执行步骤22时,“温”数据级别对应的时间窗口为2021年7月31日23点59分59秒至2021年7月29日0点0分0秒,则通过执行步骤22为时序数据划分的数据级别为“温”,从而可以将时序数据从第一类型存储介质迁移到“温”数据级别对应的第二类型存储介质中。之后,如果“冷”数据级别对应的滑动后时间窗口为2021年7月31日23点59分59秒至2021年7月3日0点0分0秒,则在执行步骤22之后,可以根为时序数据重新划分数据级别且重新划分的数据级别为“冷”,从而可以将时序数据从“温”数据级别对应的第二类型存储介质迁移到为时序数据重新划分的“冷”数据级别对应的第三类型存储介质中。
一个实施例中,在将时序数据从第二类型存储介质迁移到第三类型存储介质之前可以考虑第三类型存储介质的空间占用率情况,避免出现未考虑第三类型存储介质的空间占用率所带来的可靠性问题。基于此,本申请实施例中,将时序数据从第二类型存储介质迁移到为时序数据重新划分的数据级别对应的第三类型存储介质中,具体可以包括:确定第三类型存储介质的空间占用率是否小于占用率阈值;以及,如果是,将时序数据从第二类型存储介质迁移到第三类型存储介质中。
进一步的,针对第三类型存储介质的空间占用率大于占用率阈值的情况,可以进行相应处理。基于此,本申请实施例提供的方法还可以包括:若空间占用率大于占用率阈值,则按照特定流转策略进行处理。一个实施例中,特定流转策略可以由使用数据库服务的客户进行选择设置,有利于提高客户使用数据库服务的灵活性,并且能够使得特定流转策略对客户的透明化,提高客户使用体验。示例性的,特定流转策略可以包括:不迁移、禁止写入并根据剩余空间迁移或者根据剩余空间写入并根据剩余空间迁移。
其中,不迁移是指不将时序数据从第二类型存储介质迁移到第三类型存储介质中。禁写是指禁止向时序数据库中写入新的时序数据。根据剩余空间迁移是指根据第三类型存储介质的剩余空间情况,控制向第三类型存储介质迁移数据的速度,剩余空间越少,迁移的速度可以越慢。根据剩余空间写入是指根据第三类型存储介质的剩余空间情况,控制向时序数据库中写入数据的速度,剩余空间越少,写入的速度可以越慢。
一个实施例中,在第三类型存储介质的空间占用率大于占用率阈值时,还可以向客户输出对应的提示信息,以便客户可以针对第三类型存储介质的空间占用率过高的情况进行处理。
对于时序数据在其他类型存储介质之间迁移的情况,也可以采用与从第一类型存储介质迁移到第二类型存储介质相类似的处理方式,考虑目标类型存储介质的剩余空间情况。例如,前述将时序数据从第一类型存储介质迁移到为时序数据划分的数据级别对应的第二类型存储介质中之前,还可以包括:确定第二类型存储介质的空间占用率是否小于占用率阈值;以及,如果是,将时序数据从第一类型存储介质迁移到第二类型存储介质中。
参考图3和图4,对于热数据可以不进行迁移,继续存储在高性能热存中;对于高性能热存中的温数据,可以根据特定流转策略将其从高性能热存迁移到标准型暖存中进行存储;对于高性能热存中的冷数据,可以根据特定流转策略将其从高性能热存迁移到低成本冷存中进行存储,从而完成数据分级。另外,随着时间的推移,在高性能热存中的热数据变为温数据时,可以将高性能热存中变为温数据的时序数据迁移到标准型暖存中,在标准型暖存中的温数据变为冷数据时,可以将标准型暖存中变为冷数据的时序数据迁移到低成本冷存中。在低成本冷存中的时序数据超过存活时间时,可以将其删除。
需要说明的是,图4中“热”对应的三个圆形表示热数据的一种动态变化,热数据刚开始可能很热(空心圆形表示),过一段时间变为一般热(灰色圆形表示),再过一段时间变为不热(黑色圆形表示),其中,不热可以理解为“温”,表示可以迁移到用于存储温数据的标准型暖存中。图4中“温”对应的三个圆形表示温数据的一种动态变化,温数据刚开始可能很温(空心圆形表示),过一段时间变为一般温(灰色圆形表示),再过一段时间变为不温(黑色圆形表示),其中,不温可以理解为“冷”,表示可以迁移到用于存储冷数据的低成本冷存中。图4中“冷”对应的三个圆形表示冷数据的一种动态变化,冷数据刚开始是冷(空心圆形表示),过一段时间变为比较冷(灰色圆形表示),再过一段时间变为非常冷(黑色圆形表示),对于非常冷的数据可以删除。
可选的,对于根据时间窗口划分的数据级别较低的时序数据,在时序数据的访问热度较高时可以升高其数据级别,以将其从存储性能较慢的存储介质迁移到存储性能较快的存储介质中,从而提高对于热度较高但较老的时序数据的查询性能。基于此,在通过步骤22将时序数据从第一类型存储介质迁移到第二类型存储介质中之后,本申请实施例提供的方法还可以包括:在时序数据的热度满足第一类型存储介质对应的数据级别的热度要求时,将时序数据划分为第一类型存储介质对应的数据级别,并将时序数据从第二类型存储介质迁移到第一类型存储介质中。
其中,时序数据的热度可以统计获得,热度的统计方式可以灵活实现。一个实施例中,可以设置统计周期,统计周期的大小可以是时间窗口的1/N倍,N为大于1的整数,可以根据时间窗口内多个统计周期分别统计的查询次数进行加权累计,得到时序数据的热度,且时间越早权重可以越小。例如,假设时间窗口内包括两个统计周期,其中较早统计周期统计到的查询次数是x,较晚统计周期统计到的查询次数是y,则时序数据的热度可以为y*a+x*(1-a),其中,a表示衰减系数,a可以大于0.5小于1。
需要说明的是,升高数据级别的场景可以不限于第二类型存储介质对应的数据级别升高到第一类型存储介质对应的数据级别。例如,在前述将时序数据从第二类型存储介质迁移到第三类型存储介质之后,还可以包括:在时序数据的热度满足目标类型存储介质对应的数据级别的热度要求时,将时序数据划分为目标类型存储介质对应的数据级别,并将时序数据从第三类型存储介质迁移到目标类型存储介质中。其中,目标类型存储介质可以包括第一类型存储介质或第二类型存储介质。
另外,对于数据级别被升高的时序数据,在时序数据的访问热度降低时还可以降低其数据级别,以将其从存储性能较高的存储介质迁移到存储性能较慢的存储介质中,从而节省存储性能较高的存储介质的资源。
继续参考图3,可以对针对时间窗口内时序数据的查询(query)请求进行统计,得到时序数据的热度,进而在基于时序数据对应的时间信息为时序数据划分数据级别之后,可以基于时序数据的热度为时序数据进一步划分数据级别。例如,假设根据时间窗口为某一时序数据划分的数据级别为“冷”,则如果对该时序数据的查询非常频繁,该时序数据的热度满足“热”数据级别对应的热度要求,则可以将该时序数据的数据级别划分为“热”,并将该时序数据从低成本冷存迁移到高性能热存中;之后,如果对该时序数据的查询频率不再非常频繁,该时序数据的热度满足“温”数据级别对应的热度要求时,则可以将该时序数据的数据级别划分为“温”,并将该时序数据从高性能热存迁移到标准型暖存中;之后,如果对该时序数据的查询变得不频繁,该时序数据的热度非常低时,则可以将该时序数据的数据级别划分为“冷”,并将该时序数据从标准型暖存迁移到低成本冷存中。
本申请实施例提供的数据存储方法,通过获取待存储的时序数据,将时序数据存储在时序数据库的第一类型存储介质中,根据多个数据级别分别对应的时间窗口,将时序数据划分到多个数据级别中的与时序数据的时间信息对应的数据级别中,并在为时序数据划分的数据级别与时序数据当前所在的第一类型存储介质对应的数据级别不相同时,将时序数据从第一类型存储介质迁移到为时序数据划分的数据级别对应的第二类型存储介质中,实现了在同一时序数据库内自动进行冷热数据的分离存储,避免了由运维人员进行数据库之间的数据迁移所带来的运维复杂的问题,降低了运维复杂程度,并且由于冷热数据存储在同一时序数据库内,因此在查询数据时可以只从一个数据库中进行查找,避免了从多个数据库中进行查找所带来的使用复杂的问题,降低了使用复杂程度,而且由于无需进行多个数据库之间的数据同步,因此能够避免由于需要在多个数据库之间进行数据同步所带来的数据不一致的问题。
图5为本申请一实施例提供的数据查询方法的流程示意图,本实施例的执行主体可以为图1中部署数据库管理系统12的计算机设备X。如图5所示,本实施例的方法可以包括:
步骤51,获取用于请求查询时序数据库中时序数据的查询请求;
步骤52,确定为所述时序数据划分的数据级别,并根据为所述时序数据划分的数据级别确定所述时序数据当前所在的存储介质的类型;
步骤53,从确定的所述类型的存储介质中查找所述时序数据。
本申请实施例中,所述获取用于请求查询时序数据库中时序数据的查询请求例如可以为接收用户设备发送的用于请求查询时序数据库中时序数据的查询请求。当然,在其他实施例中也可以通过其他方式获取用于请求查询时序数据的查询请求,本申请对此不做限定。
由于图2所示实施例中结合时序数据的时间特性为时序数据库中的时序数据划分了数据级别,因此针对于请求查询的时序数据,可以确定为时序数据划分的数据级别。在为时序数据划分数据级别时,可以记录时序数据与为其划分的数据级别的对应关系,从而可以根据对应关系确定为时序数据划分的数据级别。其中,对应关系中可以由时序数据的键(key)表示时序数据。
一个实施例中,可以通过布隆过滤器(bloom filter)来确定为时序数据划分的数据级别。以数据级别的数量为3个且3个数据级别分别为“热”、“温”和“冷”为例,布隆过滤器中可以记录有“热”数据级别的时序数据的key有哪些,“温”数据级别的时序数据的key有哪些,“冷”数据级别的时序数据的key有哪些,将请求查询的时序数据的key输入布隆过滤器,可以得到请求查询的时序数据的数据级别。例如,如图3所示,将请求查询的时序数据的key,即key*作为布隆过滤器中IsPresent()函数的输入,可以得到请求查询的时序数据的数据级别是“热”、“温”还是“冷”的输出。
进一步的,由于时序数据库包括多个类型存储介质,且不同类型存储介质对应不同数据级别,因此根据为请求查询的时序数据划分的数据级别,可以确定请求查询的时序数据当前所在的存储介质的类型,以便从确定的该类型的存储介质中查找请求查询的时序数据。通过从确定的某个类型存储介质中查找请求查询的时序数据,使得只需扫描某个类型存储介质中的文件,而不需要遍历所有类型存储介质中的文件,减少了需要扫描的文件的数量,从而能够降低查询开销,提升查询效率。
另外,在时序数据库中的数据可以是分区存储的,本申请实施例中可以基于时序数据的时间特性按照时间分区(time range)进行存储,其中,如图3所示,时间分区的范围可以由开始时间戳和结束时间戳表示。具体的,某个时间分区的数据可以存储在一个或多个文件的对应区中。
在按照时间分区进行存储时,时间分区与文件中区的对应关系可以被统计好放在内存中,在步骤53中从确定的所述类型的存储介质中查找时序数据时,可以根据查询请求对应的时间信息确定需要查询的时间分区,并从确定所述类型的存储介质中的确定的所述时间分区中查找时序数据。其中,查询请求对应的时间信息是指查询请求所请求查询时序数据的时间范围信息,一个实施例中,查询请求对应的时间信息可以是查询请求中的时间条件信息。通过从确定所述类型的存储介质中的确定的所述时间分区中查找时序数据,使得只需扫描某个类型存储介质中的部分数据,而不需要遍历某个类型存储介质中的全部数据,减少了需要扫描的数据数量,从而能够降低查询开销,提升查询效率。
本申请实施例提供的数据查询方法,通过获取用于请求查询时序数据库中时序数据的查询请求,确定为时序数据划分的数据级别,并根据为时序数据划分的数据级别确定时序数据当前所在的存储介质的类型,从确定的类型的存储介质中查找时序数据,实现了在同一时序数据库内自动进行冷热数据的分离存储的基础上,根据为需要查询的时序数据的数据级别进行数据查找,使得只需扫描某个类型存储介质中的文件,而不需要遍历所有类型存储介质中的文件,减少了需要扫描的文件的数量,从而能够降低查询开销,提升查询效率。
图6为本申请一实施例提供的数据存储装置的结构示意图;参考附图6所示,本实施例提供了一种数据存储装置,该装置可以执行上述图2所示实施例提供的方法,具体的,该装置可以包括:
存储模块61,用于获取待存储的时序数据,将所述时序数据存储在所述时序数据库的第一类型存储介质中;
分级迁移模块62,用于根据所述多个数据级别分别对应的时间窗口,将所述时序数据划分到所述多个数据级别中的与所述时序数据的时间信息对应的数据级别中,并在为所述时序数据划分的数据级别与所述时序数据当前所在的第一类型存储介质对应的数据级别不相同时,将所述时序数据从所述第一类型存储介质迁移到为所述时序数据划分的数据级别对应的第二类型存储介质中。
可选的,所述存储模块61,用于将所述时序数据存储在所述时序数据库的第一类型存储介质中,具体可以包括:通过分层数据结构对所述时序数据进行分层存储,以将所述时序数据存储在所述时序数据库的第一类型存储介质中。
可选的,所述分级迁移模块62,用于根据所述多个数据级别分别对应的时间窗口,将所述时序数据划分到所述多个数据级别中的所述时序数据的时间信息对应的数据级别中,具体可以包括:在所述时序数据位于所述分层数据结构中目标层级的情况下,根据所述多个数据级别分别对应的时间窗口,将所述时序数据划分到所述多个数据级别中的所述时序数据的时间信息对应的数据级别中;其中,所述目标层级包括底层。
可选的,所述存储模块61还用于:在通过所述分层数据结构对所述时序数据进行分层存储的过程中,根据水平压缩策略,对同一层中的文件进行压缩合并,对压缩合并得到的文件中的时序数据进行排序,并将所述文件移动到下一层级。
可选的,所述分级迁移模块62还用于:在到达特定时刻时,将所述多个数据级别分别对应的时间窗口均向前滑动目标时长。
可选的,所述分级迁移模块62还用于:
根据所述多个数据级别分别对应的滑动后时间窗口,将所述时序数据重新划分到所述多个数据级别中与所述时序数据的时间信息对应的数据级别中;
在为所述时序数据重新划分的数据级别与所述时序数据当前所在的第二存储介质对应的数据级别不相同时,将所述时序数据从所述第二类型存储介质迁移到为所述时序数据重新划分的数据级别对应的第三类型存储介质中。
可选的,所述分级迁移模块62用于将所述时序数据从所述第二类型存储介质迁移到为所述时序数据重新划分的数据级别对应的第三类型存储介质中,具体可以包括:
确定所述第三类型存储介质的空间占用率是否小于占用率阈值;
如果是,将所述时序数据从所述第二类型存储介质迁移到所述第三类型存储介质中。
可选的,所述分级迁移模块62还用于:若所述空间占用率大于所述占用率阈值,则按照特定流转策略进行处理。
可选的,所述特定流转策略包括:不迁移、禁止写入并根据剩余空间迁移或者根据剩余空间写入并根据剩余空间迁移。
可选的,所述分级迁移模块62还用于:在所述时间信息落在所述多个数据级别对应的时间窗口之外时,将所述时序数据删除。
可选的,所述分级迁移模块62还用于:在所述时序数据的热度满足所述第一类型存储介质对应的数据级别的热度要求时,将所述时序数据划分为所述第一类型存储介质对应的数据级别,并将所述时序数据从所述第二类型存储介质迁移到所述第一类型存储介质中。
图6所示装置可以执行图2所示实施例对方法,本实施例未详细描述的部分,可参考对图2所示实施例的相关说明。该技术方案的执行过程和技术效果参见图2所示实施例中的描述,在此不再赘述。
在一个可能的实现中,图6所示装置的结构可实现为一计算机设备。如图7所示,该计算机设备可以包括:处理器71和存储器72。其中,存储器72用于存储支持计算机设备执行上述图2所示实施例提供方法所涉及的程序,处理器71被配置为用于执行存储器72中存储的程序。
程序包括一条或多条计算机指令,其中,一条或多条计算机指令被处理器71执行时能够实现如下步骤:
获取待存储的时序数据,将所述时序数据存储在所述时序数据库的第一类型存储介质中;
根据所述多个数据级别分别对应的时间窗口,将所述时序数据划分到所述多个数据级别中与所述时序数据的时间信息对应的数据级别中,并在为所述时序数据划分的数据级别与所述时序数据当前所在的第一类型存储介质对应的数据级别不相同时,将所述时序数据从所述第一类型存储介质迁移到为所述时序数据划分的数据级别对应的第二类型存储介质中。
可选的,处理器71还用于执行前述图2所示实施例中的全部或部分步骤。
其中,计算机设备的结构中还可以包括通信接口73,用于计算机设备与其他设备或通信网络通信。
图8为本申请一实施例提供的数据查询装置的结构示意图;参考附图8所示,本实施例提供了一种数据查询装置,该装置可以执行上述图5所示实施例提供的方法,具体的,该装置可以包括:
获取模块81,用于获取用于请求查询时序数据库中时序数据的查询请求;
确定模块82,用于确定为所述时序数据划分的数据级别,并根据为所述时序数据划分的数据级别确定所述时序数据当前所在的存储介质的类型;
查找模块83,用于从确定的所述类型的存储介质中查找所述时序数据。
图8所示装置可以执行图5所示实施例对方法,本实施例未详细描述的部分,可参考对图5所示实施例的相关说明。该技术方案的执行过程和技术效果参见图5所示实施例中的描述,在此不再赘述。
在一个可能的实现中,图8所示装置的结构可实现为一计算机设备。如图9所示,该计算机设备可以包括:处理器91和存储器92。其中,存储器92用于存储支持计算机设备执行上述图5所示实施例提供方法所涉及的程序,处理器91被配置为用于执行存储器92中存储的程序。
程序包括一条或多条计算机指令,其中,一条或多条计算机指令被处理器91执行时能够实现如下步骤:
获取用于请求查询时序数据库中时序数据的查询请求;
确定为所述时序数据划分的数据级别,并根据为所述时序数据划分的数据级别确定所述时序数据当前所在的存储介质的类型;
从确定的所述类型的存储介质中查找所述时序数据。
可选的,处理器91还用于执行前述图5所示实施例中的全部或部分步骤。
其中,计算机设备的结构中还可以包括通信接口93,用于计算机设备与其他设备或通信网络通信。
另外,本申请实施例提供了一种数据库系统,包括:时序数据库11和实现如用于对时序数据库进行管理的数据管理系统12;其中,所述时序数据库11包括多个类型存储介质,不同类型存储介质对应不同数据级别,各个类型存储介质用于存储对应数据级别的数据;所述数据库管理系统12用于实现图2、图5所示实施例所述的方法。
本申请实施例还提供一种计算机程序,包括计算机程序指令,当所述指令由处理器执行时,实现如图2、图5所示实施例所述的方法。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被执行时,实现如图2、图5所示实施例所述的方法。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程设备的处理器以产生一个机器,使得通过计算机或其他可编程设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、链表、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (14)
1.一种数据存储方法,适用于时序数据库,所述时序数据库包括多个类型存储介质,且不同类型存储介质对应不同数据级别,各个类型存储介质用于存储对应数据级别的数据,所述方法包括:
获取待存储的时序数据,将所述时序数据存储在所述时序数据库的第一类型存储介质中;
根据所述多个数据级别分别对应的时间窗口,将所述时序数据划分到所述多个数据级别中的与所述时序数据的时间信息对应的数据级别中,并在为所述时序数据划分的数据级别与所述时序数据当前所在的第一类型存储介质对应的数据级别不相同时,将所述时序数据从所述第一类型存储介质迁移到为所述时序数据划分的数据级别对应的第二类型存储介质中。
2.根据权利要求1所述的方法,所述将所述时序数据存储在所述时序数据库的第一类型存储介质中,包括:通过分层数据结构对所述时序数据进行分层存储,以将所述时序数据存储在所述时序数据库的第一类型存储介质中。
3.根据权利要求2所述的方法,所述多个数据级别分别对应的时间窗口,将所述时序数据划分到所述多个数据级别中的所述时序数据的时间信息对应的数据级别中,包括:
在所述时序数据位于所述分层数据结构中目标层级的情况下,根据所述多个数据级别分别对应的时间窗口,将所述时序数据划分到所述多个数据级别中的与所述时序数据的时间信息对应的数据级别中;其中,所述目标层级包括底层。
4.根据权利要求2所述的方法,所述方法还包括:在通过所述分层数据结构对所述时序数据进行分层存储的过程中,根据水平压缩策略,对同一层中的文件进行压缩合并,对压缩合并得到的文件中的时序数据进行排序,并将所述文件移动到下一层级。
5.根据权利要求1-4任一项所述的方法,所述方法还包括:在到达特定时刻时,将所述多个数据级别分别对应的时间窗口均向前滑动目标时长。
6.根据权利要求5所述的方法,所述方法还包括:
根据所述多个数据级别分别对应的滑动后时间窗口,将所述时序数据重新划分到所述多个数据级别中与所述时序数据的时间信息对应的数据级别中;
在为所述时序数据重新划分的数据级别与所述时序数据当前所在的第二存储介质对应的数据级别不相同时,将所述时序数据从所述第二类型存储介质迁移到为所述时序数据重新划分的数据级别对应的第三类型存储介质中。
7.根据权利要求6所述的方法,所述将所述时序数据从所述第二类型存储介质迁移到为所述时序数据重新划分的数据级别对应的第三类型存储介质中,包括:
确定所述第三类型存储介质的空间占用率是否小于占用率阈值;
如果是,将所述时序数据从所述第二类型存储介质迁移到所述第三类型存储介质中。
8.根据权利要求7所述的方法,所述方法还包括:若所述空间占用率大于所述占用率阈值,则按照特定流转策略进行处理。
9.根据权利要求1所述的方法,所述方法还包括:在所述时序数据的热度满足所述第一类型存储介质对应的数据级别的热度要求时,将所述时序数据划分为所述第一类型存储介质对应的数据级别,并将所述时序数据从所述第二类型存储介质迁移到所述第一类型存储介质中。
10.一种数据查询方法,适用于时序数据库,所述时序数据库包括多个类型存储介质,且不同类型存储介质对应不同数据级别,各个类型存储介质用于存储对应数据级别的数据,所述方法包括:
获取用于请求查询时序数据库中时序数据的查询请求;
确定为所述时序数据划分的数据级别,并根据为所述时序数据划分的数据级别确定所述时序数据当前所在的存储介质的类型;
从确定的所述类型的存储介质中查找所述时序数据。
11.一种计算机设备,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现如权利要求1至10中任一项所述的方法。
12.一种数据库系统,包括:时序数据库和用于对时序数据库进行管理的数据管理系统;其中,所述时序数据库包括多个类型存储介质,不同类型存储介质对应不同数据级别,各个类型存储介质用于存储对应数据级别的数据;所述数据库管理系统用于实现如权利要求1至10中任一项所述的方法。
13.一种计算机程序,包括计算机程序指令,当所述指令由处理器执行时,实现如权利要求1至10中任一项所述的方法。
14.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被执行时,实现如权利要求1至10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111200079.9A CN114036410A (zh) | 2021-10-14 | 2021-10-14 | 数据存储、查询方法、设备、系统、程序及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111200079.9A CN114036410A (zh) | 2021-10-14 | 2021-10-14 | 数据存储、查询方法、设备、系统、程序及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114036410A true CN114036410A (zh) | 2022-02-11 |
Family
ID=80141423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111200079.9A Pending CN114036410A (zh) | 2021-10-14 | 2021-10-14 | 数据存储、查询方法、设备、系统、程序及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114036410A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115905219A (zh) * | 2022-11-04 | 2023-04-04 | 上海威固信息技术股份有限公司 | 多通道数据存云库用的数据存储驱动系统及其传输方法 |
CN115934792A (zh) * | 2022-11-29 | 2023-04-07 | 沈阳尚源智慧科技有限公司 | 一种数组型时序数据压缩与跨维度查询方法 |
-
2021
- 2021-10-14 CN CN202111200079.9A patent/CN114036410A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115905219A (zh) * | 2022-11-04 | 2023-04-04 | 上海威固信息技术股份有限公司 | 多通道数据存云库用的数据存储驱动系统及其传输方法 |
CN115905219B (zh) * | 2022-11-04 | 2023-09-19 | 上海威固信息技术股份有限公司 | 多通道数据存云库用的数据存储驱动系统及其传输方法 |
CN115934792A (zh) * | 2022-11-29 | 2023-04-07 | 沈阳尚源智慧科技有限公司 | 一种数组型时序数据压缩与跨维度查询方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107807796B (zh) | 一种基于超融合存储系统的数据分层方法、终端及系统 | |
US10944807B2 (en) | Organizing present and future reads from a tiered streaming data storage layer | |
CN103106152B (zh) | 基于层次存储介质的数据调度方法 | |
US8756199B2 (en) | File level hierarchical storage management system, method, and apparatus | |
US8745014B2 (en) | Time series data mapping into a key-value database | |
US8700578B1 (en) | System and method for determining physical storage space of a deduplicated storage system | |
US20160283501A1 (en) | Posix-compatible file system, method of creating a file list and storage device | |
CN114036410A (zh) | 数据存储、查询方法、设备、系统、程序及介质 | |
CN106354729B (zh) | 一种图数据处理方法、装置和系统 | |
CN105303456A (zh) | 电力传输设备监控数据处理方法 | |
CN106874481B (zh) | 一种分布式文件系统元数据信息读取方法及系统 | |
CN109299115A (zh) | 一种数据存储方法、装置、服务器及存储介质 | |
CN111443867B (zh) | 一种数据存储方法、装置、设备及存储介质 | |
WO2023155849A1 (zh) | 基于时间衰减的样本删除方法及其装置、存储介质 | |
CN111966293A (zh) | 一种冷热数据分析方法及系统 | |
CN111741107B (zh) | 基于文件存储系统的分层方法及装置、电子设备 | |
CN114328601A (zh) | 数据降采样和数据查询方法、系统及存储介质 | |
CN112840334A (zh) | 管理分区表的数据的方法、装置、管理节点及存储介质 | |
CN109101644A (zh) | 一种动静态日志文件扫描采集方法 | |
CN115934794B (zh) | 一种海量多源异构遥感空间数据查询的弹性管理方法 | |
CN116775580A (zh) | 一种文件系统中的热度识别方法、装置及计算机设备 | |
Kvet | Database Block Management using Master Index | |
CN109241011B (zh) | 一种虚拟机文件处理方法及装置 | |
CN114519055A (zh) | 数据存储方法及设备 | |
CN109508140A (zh) | 存储资源管理方法、装置、电子设备及电子设备、系统 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40066444 Country of ref document: HK |