CN115630100A - 单元和多元时序数据的混合处理方法、装置及计算机设备 - Google Patents
单元和多元时序数据的混合处理方法、装置及计算机设备 Download PDFInfo
- Publication number
- CN115630100A CN115630100A CN202211155031.5A CN202211155031A CN115630100A CN 115630100 A CN115630100 A CN 115630100A CN 202211155031 A CN202211155031 A CN 202211155031A CN 115630100 A CN115630100 A CN 115630100A
- Authority
- CN
- China
- Prior art keywords
- data
- time
- column
- metadata information
- blocks
- 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
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/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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
-
- 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/22—Indexing; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种单元和多元时序数据的混合处理方法、装置及计算机设备,该方法包括:获取待存储数据;将多元时序数据的时间戳列和每个分量的值列序列化;将序列化后的时间戳列存储为时间列块,将序列化后的每个分量的值列存储为值列块;更新多元时序数据的所有的数据块的元数据信息;生成时间列块的对应的文件时间序列元数据信息,生成各值列块的文件时间序列元数据信息;将所有的元数据信息,序列化后存储在多元存储文件的索引区;将多元时序数据作为存储文件的元数据树的键生成元数据树。本发明通过生成数据块并存储在数据区和生成元数据树并存储在索引区的方式,将时序数据存储在存储文件中,提高多元时序数据的存储和查询效率。
Description
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种单元和多元时序数据的混合处理方法、装置及计算机设备。
背景技术
时序数据即时间序列数据,具体是指是按时间顺序记录的数据列,时间序列数据包括两种,即单元时序数据和多元时序数据,单元时序数据指的是只包含一列时间戳和一列值的数据;多元时序数据指的是包含一列时间戳和多个分量的数据,每个分量含有一个或多个值列的数据。随着物联网的普及和工业技术的不断发展,时序数据的需求越来越广泛,数据量也越来越大,存在对单元时序数据和多元时序数据进行混合存储的需求。
目前,现有技术中,对时序数据有单元时序数据和多元时序数据进行混合存储时,一般是先将多元时序数据的每个分量作为单元时序数据存储,假设:多元时序数据包括一列时间戳和多个分量,存储时针对每个分量均存储为一列时间戳和一个分量的所有值列。
然而,发明人发现现有技术中至少存在以下技术问题:针对多元时序数据,假设该多元时序数据为含一个时间戳列和n个分量的多元时序数据,且每个分量只含有一个值列,共计n个值列,会存储n列时间戳列和n列值,存储时,多存储(n-1)列时间戳;查询时,按照查询条件和时间戳列进行查询,会读取存储文件中所有的分量的值列,需要读取的数据量便会多出(n-1)列时间戳,导致多元时序数据的存储和查询效率较差。
发明内容
本发明提供一种单元和多元时序数据的混合处理方法、装置及计算机设备,以克服多元时序数据的存储和查询效率较差的问题。
第一方面,本发明提供一种单元和多元时序数据的混合处理方法,包括:
获取待存储数据;
若判定所述待存储数据为多元时序数据,则将所述多元时序数据的时间戳列和每个分量的值列序列化;
将序列化后的时间戳列存储为时间列块,将序列化后的每个分量的值列存储为值列块,以将所述多元时序数据存储为多个数据块存储在存储文件的数据区;
更新所述多元时序数据的所有的数据块的元数据信息;
根据所述所有的数据块中属于时间列块的元数据信息,生成所述时间列块的对应的文件时间序列元数据信息,根据所述所有的数据块中属于各值列块的元数据信息,生成各所述值列块的文件时间序列元数据信息;
将所述时间列块的文件时间序列元数据信息和元数据信息,以及各所述值列块的文件时间序列元数据信息和元数据信息,序列化后存储在所述存储文件的索引区;
将所述多元时序数据作为所述存储文件的元数据树的键生成元数据树。
在一种可能的设计中,将序列化后的时间戳列存储为时间列块,将序列化后的每个分量的值列存储为值列块,包括:
写入第一页数据页的页数据头,并将序列化后的时间戳列的时间数据写入第一页所述数据页;
当第一页所述数据页中写入的所述序列化后的时间戳列大小达到设定阈值时,刷写新的所述数据页,直至所述序列化后的时间戳列全部被刷写,以生成所述时间列块;
写入所述值列块的第一页所述数据页的页数据头,并将序列化后的各值列写入第一页所述数据页;
当所述第一页所述数据页中写入的数据大小达到设定阈值时,刷写新的所述数据页,直至所述序列化后的各值列全部被刷写,以生成各所述值列块。
在一种可能的设计中,所述获取待存储数据之后,还包括:
若判定所述待存储数据为单元时序数据,则将所述单元时序数据的时间戳列和值列序列化;
将序列化后的时间戳列和值列存储为单元序列数据块,以将所述单元时序数据存储为所述单元序列数据块存储在所述存储文件的数据区;
更新所述单元序列数据块的元数据信息;
根据所述单元序列数据块的元数据信息,生成单元序列数据块的文件时间序列元数据信息;
将所述单元序列数据块的文件时间序列元数据信息和元数据信息,序列化后存储在所述存储文件的索引区;
以所述单元时序数据的名称为键生成元数据树。
在一种可能的设计中,所述将序列化后的时间戳列和值列存储为单元序列数据块,以将所述单元时序数据存储为所述单元序列数据块存储在所述存储文件的数据区,包括:
写入第一页数据页的页数据头,并将序列化后的时间戳列和值列写入第一页所述数据页;
当第一页所述数据页中写入的所述序列化后的时间戳列大小达到设定阈值时,刷写新的所述数据页,直至所述序列化后的时间戳列和值列全部被刷写,以生成所述单元序列数据块。
在一种可能的设计中,本发明第一方面提供的单元和多元时序数据的混合处理方法还包括:
获取查询命令,其中,所述查询命令包含待查询的多元序列元数据的键以及待查询分量集合;
根据所述元数据树的键,获取所述元数据树中所有所述时间列块的文件时间序列元数据信息和元数据信息;
从所述时间列块的文件时间序列元数据信息开始,遍历所述多元时序数据的所述值列块的文件时间序列元数据信息;
若判定所述值列块的文件时间序列元数据信息中的分量名称存在于所述待查询分量集合中,则保留所述值列块的文件时间序列元数据信息,以获得包含所述值列块的分量中所有值列块的元数据信息,直至所有的所述值列块的元数据信息全部被遍历;
遍历所述时间列块的元数据信息,以获取与所述时间列块的元数据信息对应的时间列块,解码所述时间列块,以获得时间戳列;
根据所述值列块的元数据信息依次遍历每一个所述待查询分量,以获得与所述值列块的元数据信息对应的值列块,解码每个所述值列块,以获得各待查询分量的值列;
将所述时间戳列和各所述待查询分量的值列作为查询结果返回,所述查询结果为一列时间戳和各所述待查询分量的值列拼成的一个矩阵。
在一种可能的设计中,本发明第一方面提供的单元和多元时序数据的混合处理方法还包括:
若判定所述待查询分量集合中包含所有的所述值列块的文件时间序列元数据信息中的分量名称,则在所述根据所述元数据树的键,获取所述元数据树中所有所述时间列块的文件时间序列元数据信息和元数据信息之后,直接执行遍历所述时间列块的元数据信息,以获取与所述时间列块的元数据信息对应的时间列块,解码所述时间列块,以获得时间戳列及之后的步骤。
在一种可能的设计中,本发明第一方面提供的单元和多元时序数据的混合处理方法还包括:
获取查询条件;
根据所述查询条件和所述元数据树的键,获得所述单元序列数据块的文件时间序列元数据信息;
根据所述单元序列数据块的文件时间序列元数据信息,获得每个所述单元序列数据块的元数据信息;
根据每个所述单元序列数据块的元数据信息,获取所述时序数据在所述存储文件的数据区中对应的所有的所述单元序列数据块;
将所述单元序列数据块中的每个所述数据页进行解码,以获得每个所述数据页对应的一列时间戳和一列值;
判断每个所述时间戳和与所述时间戳列对应的值是否满足所述查询条件;
若是,则将所述时间戳列和所述时间戳列对应的值列作为查询结果返回;
若否,则检查下一个所述数据页对应的时间戳和与所述时间戳对应的值,直至所有的所述数据页全部被查询。
第二方面,本发明提供一种时序数据的处理装置,包括:
获取模块,用于获取待存储数据;
判断处理模块,用于判断所述待存储数据是否为多元时序数据,若是,则将所述多元时序数据的时间戳列和每个分量的值列序列化;
存储模块,用于将序列化后的时间戳列存储为时间列块,将序列化后的每个分量的值列存储为值列块,以将所述多元时序数据存储为多个数据块存储在存储文件的数据区;
元数据信息更新模块,用于更新所述多元时序数据的所有的数据块的元数据信息;
元数据信息处理模块,用于根据所述所有的数据块中属于时间列块的元数据信息,生成所述时间列块的对应的文件时间序列元数据信息,并根据所述所有的数据块中属于各值列块的元数据信息,生成各所述值列块的文件时间序列元数据信息;
元数据信息存储模块,用于将所述时间列块的文件时间序列元数据信息和元数据信息,以及各所述值列块的文件时间序列元数据信息和元数据信息,序列化后存储在所述存储文件的索引区,并将所述多元时序数据作为所述存储文件的元数据树的键生成元数据树。
第三方面,本发明提供一种计算机设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如第一方面以及第一方面各自可能的设计所述的单元和多元时序数据的混合处理方法。
第四方面,本发明提供一种计算机存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上述第一方面以及第一方面各种可能的设计所述的网络切片部署方法。
本发明提供的单元和多元时序数据的混合处理方法、装置、设备及存储介质,本发明通过生成数据块并存储在数据区和生成元数据树并存储在索引区的方式,将时序数据存储在存储文件中,提高存储和查询效率。其中,生成数据块的过程,对多元时序数据的时间戳列只需存储一次即可,无需重复写入,这样不仅能减小存储文件的大小还能提高多元时序数据的存储效率。同时,在存储文件的索引区中存储时间列块的文件时间序列元数据信息和元数据信息,以及值列块的文件时间序列元数据信息和元数据信息。查询时,先根据文件时间序列元数据信息索引到对应的数据块的元数据信息,再由数据块的元数据信息索引到对应的数据块,只需一次独立的查询,即可查询到相应的值列和时间戳列,查询效率更高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的单元和多元时序数据的混合处理方法的应用场景示意图;
图2为本发明实施例提供的单元和多元时序数据的混合处理方法流程示意图一;
图2a为本发明实施例提供的时序数据的存储文件的结构示意图;
图3为本发明实施例提供的单元和多元时序数据的混合处理方法流程示意图二;
图4为本发明实施例提供的单元和多元时序数据的混合处理方法流程示意图三;
图5为本发明实施例提供的单元和多元时序数据的混合处理方法流程示意图四;
图6为本发明实施例提供的单元和多元时序数据的混合处理方法流程示意图五;
图7为本发明实施例提供的单元和多元时序数据的混合处理方法流程示意图六;
图8为本发明实施例提供的时序数据的处理装置的结构示意图;
图9为本发明实施例提供的时序数据的处理设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
随着物联网的普及和工业技术的不断发展,时序数据的数据量会越来越庞大,现有的时序数据主要分为两种,即单元时序数据和多元时序数据,单元时序数据是指只包含一列时间戳和一列值的数据;多元时序数据指的是包含一列时间戳和多个分量的数据,每个分量含有一个或多个值列的数据。由于时序数据是按照时间顺序采集和存储的,因此时序数据主要有写入频率高、数据量大以及单元时序数据和多元时序数据混合处理的情况多等特点。发明人在进行时序数据混合处理时发现,在现有技术中,针对单元时序存储数据和多元时序数据的混合处理时,将多元时序数据的每个分量作为单元时序数据存储,由于多元时序数据的每个分量采样时间点相同,多列值对应一列时间戳,并且将多元时序数据写入磁盘时,多个分量已经按照时间戳对齐,这样的存储方式会导致将多元时序数据写入磁盘时,重复存储了时间戳列;查询时,一个多元时间序列的各个分量,通常会被一起查询出来做分析,所以这种存储方式需要读取的数据量也会多出和值列数减一列的时间戳,从而导致多元时序数据的存储和查询效率较差。
为解决多元时序数据和单元时序数据的混合处理时产生的存储和查询效率较差的问题,发明人还提出了一种技术方案,即将单元时序数据看作特殊的多元时序数据存储,然后将所有的时间序列全部看作多元时序数据存储,但是由于单元时序数据,只包含一列时间戳和一列值,并不会存在空值,按照多元时间序列存储时,依然会为其存储一个bitmap(位点图),用于指示空值。并且,并且多元时间序列的时间戳列和各个分量的值列是分成多个数据块存储的,每个数据块有其独自的元数据信息。而对于单元时序数据,为时间戳列单独存储元数据信息显然会占用多余的存储空间,在这种存储方式下,对于单元时间序列的查询也会被拆分成时间戳列和值列的两次独立查询,依然存在存储和查询效率差的问题。
为解决上述问题,本发明实施例提出以下技术方案,根据单元时序数据和多元时序数据各自的特点,分别执行不同的存储和查询过程。其中,针对多元时序数据的处理提出按照数据块进行存储的方式,即:将多元时序数据的时间戳列按照时间列块进行存储,将多元数据的各分量的值列按照值列块进行存储,以将多元时序数据存储为多个数据块。同时,根据各数据块生成对应的数据块的元数据信息,根据数据块的元数据信息生成对应的文件时间序列元数据信息,根据多元时序数据生成元数据的键。其中,元数据树的键用于查询时定位多元时序数据,文件时间序列元数据信息和数据块元数据信息,用于查询时定位多元时序数据的时间列块或值列块。相比较现有技术,存储的数据少,存储效率高;同时,通过元数据信息即可快速查询到对应的数据块和时间列块,提高了多元时序数据的查询效率。
图1为本发明实施例提供的单元和多元时序数据的混合处理方法的应用场景示意图,如图1所示,包括:终端101和服务器102。
其中,终端101,用于供用户查询和显示查询结果。服务器102,用于获取待存储数据,并将待存储数据进行存储,用于为终端101按照本实施例提供的单元和多元时序数据的混合处理方法存储在存储文件中。
图2为本发明实施例提供的单元和多元时序数据的混合处理方法的流程示意图一,本实施例的执行主体可以为图1所示实施例中的服务器102,也可以是其他的计算机的相关设备,对此实施例不作特别限制。
图2a为本发明实施例提供的时序数据的存储文件中的数据区结构示意图,本实施例中的数据区包括值列块2a1、时间列块2a2、单元序列数据块2a3。
其中
值列块2a1,用于存储多元时序数据的值列的数据,该值列块2a1包括至少一个值数据页,值数据页由页数据头和值数据序列组成;
时间列块2a2,用于存储多元时序数据的时间戳列的数据,该时间列块2a2包括至少一个时间数据页,每个时间数据页由数据页头和时间数据序列组成;
单元序列数据块2a3,用于存储单元时序数据的时间戳列和值列的数据,单元序列数据块包括数据块头和至少一个数据页,该数据页包括页数据头、时间戳列数据以及值列数据;
如图2所示,该单元和多元时序数据的混合处理方法包括:
S201:获取待存储数据。
本发明实施例中,待存储数据一般为用户建模后生成的数据。
以待存储数据为多元时序数据为例,假设:一个生产线上有多个设备,此处的一个设备即对应一个分量,每个设备上有多个传感器,通过每个传感器获得的值列可以是一个或者多个,多个值列对应的时间戳列为同一个,因此,此时的待存储数据为通过传感器获取的各分量的值列和一个时间戳列,这些时序数据会被传输至服务器102,即获取待存储数据的过程。
S202:若判定待存储数据为多元时序数据,则将多元时序数据的时间戳列和每个分量的值列序列化。
在本发明实施例中,在判定待存储数据是否为多元时序数据时,服务器102可以根据多元时序数据建模时预存的标签直接判定待存储数据为多元时序数据,也可以根据服务器获取待存储数据时获取的时间戳列和值列的数量判定待存储数据为多元时序数据。若判定待存储数据为多元时序数据,先将多元时序数据的时间戳列和每个分量的值列序列化。
示例性的,假设:c1有N个分量,每个分量的名称依次为s1、s2、s3…sN,将c1的时间戳列和各个分量s1、s2、s3…sN的值列序列化,可以将时间戳列和值列序列化成二进制序列形式或其他计算机可读取的序列形式。
S203:将序列化后的时间戳列存储为时间列块,将序列化后的每个分量的值列存储为值列块,以将多元时序数据存储为多个数据块存储在存储文件的数据区。
本发明实施例中,结合图2a,存储文件混合存储有单元时序数据和多元时序数据,存储文件分为数据区和索引区,数据区中包含数据块,数据区中的数据块分为三种,即用于存储多元时序数据值列的值列块、用于存储多元时序数据的时间戳列的时间列块以及用于存储单元时序数据的单元序列数据块。
其中,每个值列块包括至少一个数据页,数据页为存储时序数据的基本单元,每个数据页由一个页数据头和写入在页数据头之后的值列序列化成的序列数据组成,另外,当值列中存在空值时,会存入一个代表空值的位图即bitmap结构,存入bitmap相比于存入空值即null占用的字节数更少,这样能使存储文件占用的存储空间更小。时间列块包括多个时间戳页,每个时间戳页包括一个页数据头和写入在页数据头之后由时间戳列序列化成的序列数据。
本发明实施例中,将序列化后的时间戳列写入存储介质如磁盘中即可生成时间列块,在时间列块生成后连续的将序列化后的值列写入存储介质如磁盘中即生成值列块,多元时序数据各分量的值列块在物理上紧接着对应的时间列块进行存储,具体实现方式为,服务器102将序列化后的值列连续写入磁盘的磁道上的时间戳列在磁道上的位置之后,保证同一个多元时序数据在同一时间域的数据在磁盘上是连续的。
S204:更新多元时序数据的所有的数据块的元数据信息。
在本发明实施例中,元数据信息是用来描述数据块位置和大小等的信息的数据,数据块的元数据信息与数据块对应,数据块的元数据信息包括时间列块的元数据信息和值列块的元数据信息,在执行步骤203时,更新多元时序数据的所有数据块的元数据信息会同时进行,每写入一个数据页,会对数据页中的值的位置和大小信息进行实时更新。
示例性的,假如第一个数据页中的最大值是3,第二个数据页的最大值是2,第三个数据页的最大值是4,则更新后的元数据信息中记录的最大值则为4,依次类推,直至所有的数据块的元数据信息全部被更新。
S205:根据所有的数据块中属于时间列块的元数据信息,生成时间列块的对应的文件时间序列元数据信息;根据所有的数据块中属于各值列块的元数据信息,生成各值列块的文件时间序列元数据信息。
本发明实施例中,时间列块的元数据信息被写入在内存中,还未写入存储文件中,当元数据信息被写入存储文件中之后,会生成文件级别的元数据信息,即本发明实施例中的与时间列块的元数据信息对应的文件时间序列元数据信息。
查询时,在存储文件中,如果一个多元时序数据中的一个分量含多个值列,则该多元时序数据可以对应的文件时间序列元数据信息数量为值列数加一,一个时间列块的文件时间序列元数据信息可以索引到一个或多个该时间戳列对应的时间列块的元数据信息,进而索引到该时间列块对应的值列块的元数据信息,服务器102根据时间列块的元数据信息或值列块的元数据信息,索引到待查询数据在存储文件中的位置。
在本发明实施例中,根据步骤204中更新的所有的数据块的元数据信息,在服务器102中,会在内存中自动生成与所有的数据块的元数据信息对应的文件时间序列元数据信息,这些文件时间序列元数据信息包括与时间列块的文件时间序列元数据信息以及值列块的文件时间序列元数据信息。
S206:将时间列块的文件时间序列元数据信息和元数据信息,以及各值列块的文件时间序列元数据信息和元数据信息,序列化后存储在多元存储文件的索引区。
在本发明的实施例中,生成时间列块的文件时间序列元数据信息和值列块的文件时间序列元数据信息之后,需要将这些信息存储到存储文件的索引区中,因此,需要将时间列块的文件时间序列元数据信息和元数据信息以及各值列块的文件时间序列元数据信息和元数据信息件序列化,此处的序列化可以是将各类元数据信息序列化成二进制序列的形式,然后再将序列化后的时间列块的文件时间序列元数据信息和元数据信息,以及序列化后的各值列块的文件时间序列元数据信息和元数据信息写入磁盘中,存储在存储文件的索引区。
S207:将多元时序数据作为存储文件的元数据树的键生成元数据树。
在本发明的实施例中,元数据树为存储文件中的元数据生成的,且元数据树一般被存储在存储文件的尾部,将多元时序数据的每个时间戳列和每个值列为元数据树的键,生成元数据树后与存储文件尾部的元数据树合并成一个新的元数据树。
综上,本实施例提供的单元和多元时序数据的混合处理方法,通过将多元时序数据的时间戳列存储为时间列块存储在存储文件的数据区中,将各分量的值列存储为值列块存储在存储文件的数据区中,生成数据块的过程,对多元时序数据的时间戳列只需存储一次即可,无需重复写入,这样不仅能减小存储文件的大小还能提高多元时序数据的存储效率。同时,在存储文件的索引区中存储时间列块的文件时间序列元数据信息和元数据信息,以及值列块的文件时间序列元数据信息和元数据信息。查询时,查询时,先根据文件时间序列元数据信息索引到对应的数据块的元数据信息,再由数据块的元数据信息索引到对应的数据块,只需一次独立的查询,即可查询到相应的值列和时间戳列,查询效率更高。
图3为本发明实施例提供的单元和多元时序数据的混合处理方法流程示意图二,在本发明实施例中,在图2提供的实施例的基础上,S203中将序列化后的时间戳列存储为时间列块和将序列化后的每个分量的值列存储为值列块的具体实现方法进行了详细说明,请参阅图3,该方法包括:
S301:写入第一页数据页的页数据头,并将序列化后的时间戳列的时间数据写入第一页数据页。
在本发明实施例中,数据页为数据存储的基本单元,针对多元时序数据的时间列块,时间列块由多个存储时间数据的时间戳页组成,每个时间戳页包括一个页数据头和一个时间戳列序列化成的数据组成。在本发明实施例中,时间戳列被序列化成二进制序列形式后,需要被刷写到存储介质如磁盘中,首先,在磁盘中刷写一个时间戳列的页数据头,然后将序列化后的时间戳列刷写到第一个数据页的页数据头之后,此时也是将序列化后的时间戳列的时间数据刷写到磁盘中。
S302:当第一页数据页写入的序列化后的时间戳列大小达到设定阈值时,刷写新的数据页,直至序列化后的时间戳列全部被刷写,以生成时间列块。
在本发明实施例中,每个数据页的存储容量都是固定的,即数据页的设定阈值,当序列化后的时间戳列中被写入第一页数据页中的数据大小达到数据页的设定阈值时,序列化后的时间戳列无法再写入当前刷写的数据页,则开启新的数据页,然后将反序列化后的时间戳列生成时间戳页的刷写操作,直至序列化后的时间戳列全部被刷写,以生成时间列块存储在存储文件中的数据区。
S303:写入值列块的第一页数据页的页数据头,并将序列化后的各值列写入第一页数据页。
在本发明实施例中,针对多元时许数据的值列块,值列块由多个存储值数据的数据页组成,每个数据页包括一个页数据头和值列序列化成的数据组成。在本发明实施例中,值列被序列化成二进制序列形式后,需要被刷写到存储介质如磁盘中,首先,在磁盘中刷写一个数据页的页数据头,然后将序列化后的值列刷写到第一个数据页的页数据头之后,此时也是将序列化后的值列的值数据刷写到磁盘中。
S304:当第一页数据页写入的数据大小达到设定阈值时,刷写新的数据页,直至序列化后的各值列全部被刷写,以生成各值列块。
综上,本实施例中,通过连续不断地向磁盘中刷写数据页的方式存储多元时序数据的值列和时间戳列,多元时序数据的所有分量的值列块在物理上紧接着对应的时间列块进行存储,保证同一个多元序列同一个时间域的数据在磁盘上是连续的,从而节省存储文件的大小。
图4为本发明实施例提供的单元和多元时序数据的混合处理方法流程示意图三,在本发明实施例中,在图2提供的实施例的基础上,步骤S201中获取待存储数据之后,若待存储数据被判定为单元时序数据时,针对单元时序数据,本发明实施例公开了单元和多元时序数据的混合处理方法,用于存储单元时序数据,请参阅图4,该方法还包括:
S401:若判定待存储数据为单元时序数据,则将单元时序数据的时间戳列和值列序列化。
在本发明实施例中,以获取的待存储数据为单元时序数据s1为例,需要先将单元数据时序数据s1的时间列和值列序列化成二进制序列形式,以便写入磁盘中。
S402:将序列化后的时间戳列和值列存储为单元序列数据块,以将单元时序数据存储为单元序列数据块存储在存储文件的数据区。
结合图2a,在步骤S203中已经指出,数据块一共有三种,分别是多元时序数据的时间列块、多元时序数据的值列块以及单元序列数据块,其中,单元序列数据块用于存储单元时序数据。
具体的,单元序列数据块包括一个数据块头和多个数据页,每个数据页由一个页数据头和二进制序列组成,本发明实施例中,二进制序列可以是步骤S401中被序列化后的时间戳列和值列。将序列化后的时间戳列和值列存储为一个或多个单元序列数据块存储在存储文件的数据区。
S403:更新单元序列数据块的元数据信息。
在执行步骤S402的同时,服务器102会自动更新单元序列数据块的元数据信息,该元数据信息是指每写入一定大小的单元时序数据后,会生成描述这些单元时序数据的信息的数据,比如单元序列数据块的起始位置和大小,这些数据即为单元序列数据块的元数据信息。
示例性的,第一次被写入磁盘的数据中的最大值为1,而后面被写入的数据中出现了最大值2,则在内存中需要更新元数据信息中记录的最大值为2,而之后的数据写入完成时,如果出现比2更大的最大值时,则将比2更大的最大值更新到元数据信息中,反之则不更新。
S404:根据单元序列数据块的元数据信息,生成单元序列数据块的文件时间序列元数据信息。
在本发明的实施例中,单元序列数据块的元数据信息是在生成单元序列数据块的同时,在内存中生成的,还未被写入磁盘中的存储文件中,当元数据信息被写入磁盘中时,会生成文件时间序列元数据信息,存储在存储文件的索引区中。
S405:将单元时序数据的文件时间序列元数据信息和元数据信息,序列化后存储在存储文件的索引区。
在将单元序列数据块的文件时间序列元数据信息和元数据信息写入磁盘之前,需要先将单元序列数据块的文件时间序列元数据信息和元数据信息序列化后再进行刷写操作,示例性的,一个单元时序数据对应索引区内的一个文件时间序列元数据信息,一个文件时间元数据信息可以索引到一个或多个该单元时序数据的时间戳列对应的单元序列数据块的元数据信息,通过单元序列数据块的元数据信息可以定位到该单元序列数据块在存储文件中的具***置。
S406:以单元时序数据的名称为键生成元数据树。
在本发明的实施例中,元数据树为存储文件中的元数据生成的,且元数据树一般被存储在存储文件的尾部,将单元时序数据s1的s1为元数据树的键生成元数据树,然后生成的元数据树与存储文件尾部的元数据树合并成一个新的元数据树存储在存储文件的尾部。
综上,本实施例中,在存储单元时序数据的过程中,通过将单元时序数据存储为单元序列数据块,并在存储过程中生成单元序列数据块的文件时间序列元数据信息和元数据信息,在单元时序数据和多元时序数据的混合处理过程中,不再将单元时序数据的值列和时间戳列按照多元时序数据的存储方法,存储各自单独存储元数据信息,使存储文件占用的存储空间更小。
图5为本发明实施例提供的单元和多元时序数据的混合处理方法流程示意图四,在图4提供的实施例的基础上,S402中将序列化后的时间戳列和值列存储为单元序列数据块,以将单元时序数据存储为单元序列数据块存储在存储文件的数据区的具体实现方法进行了详细说明:
S501:写入第一页数据页的页数据头,并将序列化后的时间戳列和值列写入第一页数据页;
S502:当第一页数据页写入的序列化后的时间戳列大小达到设定阈值时,刷写新的数据页,直至序列化后的时间戳列和值列全部被刷写,以生成单元序列数据块。
在本发明的实施例中,针对单元时序数据,将序列化后的时间戳列和值列一起刷写到磁盘中,生成单元序列数据块,从第一页数据页开始刷写,当第一页数据页中写入的序列化后的时间戳列和值列的大小达到数据页的设定阈值时,刷写新的数据页,直至序列后的时间戳列和值列全部被写入磁盘中,生成单元序列数据块存储在存储文件的数据区中。
图6为本发明实施例提供的单元和多元时序数据的混合处理方法流程示意图五,在本发明实施例中,在图2提供的实施例的基础上,针对存储在存储文件中的多元时序数据,查询时,单元和多元时序数据的混合处理方法还包括:
S601:获取查询命令,其中,查询命令包含待查询的多元序列元数据的键以及待查询分量集合。
本发明的实施例中,假设:多元时序数据c1有N个分量,每个分量的名称依次为s1、s2、s3…sN,而待查询的数据涉及M个分量,记待查询的分量集合QSet={q1、q2、q3...qm},此处的M和N均为大于1的自然数,且M小于或等于N。
示例性的,N=4,M=3为例,一个设备包含4分量,则该设备在一段时间内存储的文件中多元时序数据的分量名称依次为温度s1、运行速度s2、载荷s3和湿度s4,该设备存储的多元时序数据记为c1。而待查询的分量涉及温度、运行速度和载荷,将待查询的分量集合记为Qset,Qset={温度q1、运行速度q2、载荷q3}。
S602:根据元数据树的键,获取元数据树中所有时间列块的文件时间序列元数据信息和元数据信息。
示例性的,在步骤601的基础上,以多元时序数据c1为键,从存储文件尾部的元数据树中索引到时间列块的文件时间序列元数据信息和元数据的位置,进而获得元数据树中所有时间列块的文件时间序列元数据信息。
S603:从时间列块的文件时间序列元数据信息开始,遍历多元时序数据的值列块的文件时间序列元数据信息。
根据时间列块的文件时间序列元数据信息的生成过程,从时间列块的文件时间序列元数据信息开始,向后读取与时间列块的文件时间序列元数据信息对应的多元时序数据值列块的文件时间序列元数据信息。而值列块的文件时间序列元数据信息与值列块的元数据对应。
S604:若判定值列块的文件时间序列元数据信息中的分量名称存在于待查询分量集合中,则保留值列块的文件时间序列元数据信息,以获得包含值列块的分量中所有值列块的元数据信息,直至所有的值列块的元数据信息全部被遍历。
在获得多元时序数据各值列的元数据信息之前,需要先对各值列块的文件时间序列元数据信息中记录的分量名称是否存在待查询分量集合中,判定依据是记录的分量名称是否与待查询分量集合中的名称相同,若相同则保留在待查询分量集合中,反之则不保存,重复上述操作,直至所有的值列块的元数据信息全部被遍历。
S605:遍历时间列块的元数据信息,以获取与时间列块的元数据信息对应的时间列块,解码时间列块,以获得时间戳列。
在本发明的实施例中,时间列块的元数据信息能索引到时间列块在存储文件中的位置,再将时间列块进行解码,即可获得时间戳列,并获得一次遍历时间列块的元数据信息对应的所有的值列块的元数据信息,其中,对应的值列块包括所有带查询分类的值列块的元数据信息。
S606:根据值列块的元数据信息依次遍历每一个待查询分量,以获得与值列块的元数据信息对应的值列块,解码每个值列块,以获得各待查询分量的值列。
当序列化后的值列中被写入第一页数据页的数据达到数据页的设定阈值时,剩余的序列化后的时间戳列无法再写入当前刷写的数据页,则开启新的数据页,然后将反序列化后的值列刷写到磁盘中的刷写操作,直至序列化后的值列全部被刷写,以生成时间列块存储在存储文件中的数据区。在本发明实施例中,当正在刷写的某个分量的值列块中存在位图即bitmap时,该bitmap是用于表示值列中的空值,此时需要将存在的bitmap序列化在页数据头之后,再将bitmap之后的被序列化的值列刷写到数据页中,进而存储为值列块存储在存储文件中。
在本发明实施例中,先遍历获取的时间列块的元数据信息,根据该元数据信息记录的信息获取和值列,其中,元数据信息记录的信息可以是文件中数据块的起始位置和大小,通过这些信息可以索引并读取文件中的时间列块,将读取的时间列数据块进行解码,从而获取时间戳列,然后获取本次迭代对应的所有待查分量的值列数据块的元数据信息。
S607:将时间戳列和各待查询分量的值列作为查询结果返回。
在本发明实施例中,步骤S605中的查询结果为一列时间戳和各待查询分量的值列拼成的一个矩阵。示例性的,依次遍历每一个查询分量的元数据信息,根据其中记录的值列数据块的起始位置和大小,索引并读取对应的值列数据块,然后将值列数据块进行解码,由于值列数据块解码会得到值列和bitmap,解码过程中,根据bitmap里的内容,自动在值列的返回值中的bitmap的位置补充空值。获得时间列和所有填充过空值的值列后,无需时间戳的对齐操作,直接将时间戳列与M列值列拼成一个矩阵后返回查询结果即可。
进一步的,当M=N时,即待多元时序数据的全部分量时,根据多元时序数据的存储方法可知,多元时序数据的所有分量的值列块在物理上紧接着对应的时间列块进行存储,保证同一个多元序列同一个时间域的数据在磁盘上是连续的,因此,结合图6中本发明实施例提供的单元和多元时序数据的混合处理方法,当M=N时,单元和多元时序数据的混合处理方法可以优化为:
若判定待查询分量集合中包含所有的值列块的文件时间序列元数据信息中的分量名称,则在根据元数据树的键,获取元数据树中所有时间列块的文件时间序列元数据信息和元数据信息之后,无需执行步骤直接步骤执行遍历时间列块的元数据信息,以获取与时间列块的元数据信息对应的时间列块,解码时间列块,以获得时间戳列及之后的步骤,这样能节省查询多元时序数据的时间。
综上,本实施例中,通过遍历,先将待查询的分量从所有的多元时序数据的分量中保留到待查询分量集合中,再将待查询分量的数据块的文件时间序列元数据信息读取出来,最后根据数据块的元数据信息查询到数据块在文件中的位置,再对查询到的数据块进行解码,即可得到一列时间戳列和与时间戳列对应且补充过空值的值列,最后无需时间戳的对齐操作,即可将一列时间戳列和各值列拼成一个矩阵作为查询结构返回到终端101。这样的查询无需对齐时间戳的操作,使查询效率更高。
图7为本发明实施例提供的单元和多元时序数据的混合处理方法流程示意图六,在本发明实施例中,在图2提供的实施例的基础上,针对存储在存储文件中的单元时序数据,查询时,单元和多元时序数据的混合处理方法还包括:
S701:获取查询条件。
S702:根据查询条件和元数据树的键,获得单元序列数据块的文件时间序列元数据信息。
S703:根据单元序列数据块的文件时间序列元数据信息,获得每个单元序列数据块的元数据信息。
在本发明实施例中,单元时序数据的存储时只生成单元序列数据块,因此,针对单元时序数据,查询时,获取的查询条件可以是某个时间点,或具体的单元时序数据名称,示例性的,查询的单元时序数据为单元时序数据s1,该单元时序数据s1可以是设备在其中一个测点检测到的数据,该测点可以是该设备中其中一个传感器,查询该传感器获取的数据时,首先以s1为键从存储文件尾部的元数据树中先索引到索引区中的单元序列数据块的文件时间序列元数据信息的位置,从而得到单元序列数据块的文件时间序列元数据信息。而单元序列数据块的文件时间序列元数据信息与单元序列数据块的元数据信息对应,因此,能继续索引并获取单元序列数据块的元数据信息。
S704:根据每个单元序列数据块的元数据信息,获取单元时间序列在存储文件的数据区中对应的所有的单元序列数据块。
在本发明实施例中,每个单元序列数据块的元数据信息记录了每个单元序列数据块的起始位置和大小等描述单元序列数据块的基础特征信息,因此,根据这些描述信息,能在每个单元序列数据块的元数据信息的基础上,读取磁盘中数据区的所有的单元序列数据块。
S705:将单元序列数据块中的每个数据页进行解码,以获得每个数据页对应的一列时间戳和一列值。
S706:判断每个时间戳和与时间戳列对应的值是否满足查询条件。
S707:若是,则将时间戳列和时间戳列对应的值列作为查询结果返回。
S708:若否,则检查下一个数据页对应的时间戳和与时间戳对应的值,直至所有的数据页全部被查询。
在本发明的实施例中,由于单元时序数据在建模时只包含一列时间戳和一列值,并不会存在空值,所以每一页解码后获得的会在内存中产生一列时间戳和一列值,而没有空值,然后只需判断每个数据点是否满足查询的过滤条件,其中,数据点可以是某个时间戳和/或某个值,过滤条件可以是时间点和/或数值,若数据点满足过滤条件则将查询得到的时间戳列和值列作为查询结果返回。
综上,本实施例中,查询单元时序数据时,通过元数据树的键能快速索引到单元序列数据块的文件时间序列元数据信息,从而获得单元序列数据块的元数据信息,最终根据单元序列数据块的元数据信息,获得单元序列数据块,再将单元序列数据块解码,即可获得一列时间戳和一列值,最后根据查询条件和过滤条件即可得到满足条件的时间戳列和值列作为查询结果返回至终端101。
图8为本发明实施例提供的时序数据的处理装置的结构示意图。如图8所示,该时序数据的处理装置80包括:获取模块801、判断处理模块802、存储模块803、元数据信息更新模块804、元数据信息处理模块805以及元数据信息存储模块806。
获取模块801,用于获取待存储数据,;
判断处理模块802,用于判断待存储数据是否为多元时序数据,若是,则将多元时序数据的时间戳列和每个分量的值列序列化;
存储模块803,用于将序列化后的时间戳列存储为时间列块,将序列化后的每个分量的值列存储为值列块,以将多元时序数据存储为多个数据块存储在存储文件的数据区;
元数据信息更新模块804,用于更新多元时序数据的所有的数据块的元数据信息;
元数据信息处理模块805,用于根据所有的数据块中属于时间列块的元数据信息,生成时间列块的对应的文件时间序列元数据信息,并根据所有的数据块中属于各值列块的元数据信息,生成各值列块的文件时间序列元数据信息;
元数据信息存储模块806,用于将时间列块的文件时间序列元数据信息和元数据信息,以及各值列块的文件时间序列元数据信息和元数据信息,序列化后存储在多元存储文件的索引区,并将多元时序数据作为存储文件的元数据树的键生成元数据树。
在一种可能的实现方式中,存储模块803具体用于在写入第一页数据页的页数据头后,将序列化后的时间戳列的时间数据写入第一页数据页,当第一页数据页写入的序列化后的时间戳列大小达到设定阈值时,刷写新的数据页,直至序列化后的时间戳列全部被刷写,以生成时间列。存储模块803还具体用于写入值列块的第一页数据页的页数据头,并将序列化后的各值列写入第一页数据页,当第一页数据页写入的数据大小达到设定阈值时,刷写新的数据页,直至序列化后的各值列全部被刷写,以生成各值列块。
在一种可能的实现方式中,当获取模块801获取待存储数据后,判断处理模块802还用于判定待存储数据为单元时序数据,将单元时序数据的时间戳列和值列序列化;存储模块803还用于将序列化后的时间戳列和值列存储为单元序列数据块,以将单元时序数据存储为单元序列数据块存储在存储文件的数据区;元数据信息更新模块804还用于根据单元序列数据块的元数据信息,生成单元序列数据块的文件时间序列元数据信息;元数据信息处理模块805还用于将单元序列数据块的文件时间序列元数据信息和元数据信息,序列化后存储在存储文件的索引区;元数据信息存储模块806还用于以单元时序数据的名称为键生成元数据树。
在一种可能的实现方式中,针对单元时序数据的处理,该时序数据的处理装置中的存储模块803具体用于写入第一页数据页的页数据头,并将序列化后的时间戳列和值列写入第一页数据页,当第一页数据页写入的序列化后的时间戳列大小达到设定阈值时,刷写新的数据页,直至序列化后的时间戳列和值列全部被刷写,以生成单元序列数据块。
在一种可能的实现方式中,该时序数据的处理装置还包括:查询模块807。
查询模块807,用于根据元数据树的键,获取元数据树中所有时间列块的文件时间序列元数据信息和元数据信息;从时间列块的文件时间序列元数据信息开始,遍历多元时序数据的值列块的文件时间序列元数据信息;若判定值列块的文件时间序列元数据信息中的分量名称存在于待查询分量集合中,则保留值列块的文件时间序列元数据信息,以获得包含值列块的分量中所有值列块的元数据信息,直至所有的值列块的元数据信息全部被遍历;遍历时间列块的元数据信息,以获取与时间列块的元数据信息对应的时间列块,解码时间列块,以获得时间戳列;根据值列块的元数据信息依次遍历每一个待查询分量,以获得与值列块的元数据信息对应的值列块,解码每个值列块,以获得各待查询分量的值列;将时间戳列和各待查询分量的值列作为查询结果返回,查询结果为一列时间戳和各待查询分量的值列拼成的一个矩阵。
在一种可能的实现方式中,若判定待查询分量集合中包含所有的值列块的文件时间序列元数据信息中的分量名称,则查询模块807查询多元时序数据时,在根据元数据树的键,获取元数据树中所有时间列块的文件时间序列元数据信息和元数据信息之后,直接执行遍历时间列块的元数据信息,以获取与时间列块的元数据信息对应的时间列块,解码时间列块,以获得时间戳列及之后的步骤。
在一种可能的实现方式中,针对单元时序数据,该时序数据的处理装置的查询模块807还用于查询单元时序数据,查询模块用于获取查询条件;根据查询条件和元数据树的键,获得单元序列数据块的文件时间序列元数据信息;根据单元序列数据块的文件时间序列元数据信息,获得每个单元序列数据块的元数据信息;根据每个单元序列数据块的元数据信息,获取单元时序数据在存储文件的数据区中对应的所有的单元序列数据块;将单元序列数据块中的每个数据页进行解码,以获得每个数据页对应的一列时间戳和一列值;判断每个时间戳和与时间戳对应的值是否满足查询条件;若是,则将时间戳列和时间戳对应的值列作为查询结果返回;若否,则检查下一个数据页对应的时间戳和与时间戳对应的值,直至所有的数据页全部被查询。
本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
图9为本发明实施例提供的计算机设备的硬件结构示意图。如图9所示,本实施例的计算机设备90包括:处理器901以及存储器902;其中
处理器901,用于存储计算机执行指令;
存储器902;用于执行存储器存储的计算机执行指令,以实现上述实施例中服务器102所执行的各个步骤。具体可以参见前述方法实施例中的相关描述。
可选地,存储器902既可以是独立的,也可以跟处理器901集成在一起。
当存储器902独立设置时,该计算机设备还包括总线903,用于连接存储器902和处理器901。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现如上述的单元和多元时序数据的混合处理方法。
本发明实施例还提供一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时,实现如上述的单元和多元时序数据的混合处理方法。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,上述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例的方法的部分步骤。
应理解,上述处理器可以是中央处理单元(Central Processing Unit,简称CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,简称ISA)总线、外部设备互连(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(Application Specific Integrated Circuits,简称ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种单元和多元时序数据的混合处理方法,其特征在于,包括:
获取待存储数据;
若判定所述待存储数据为多元时序数据,则将所述多元时序数据的时间戳列和每个分量的值列序列化;
将序列化后的时间戳列存储为时间列块,将序列化后的每个分量的值列存储为值列块,以将所述多元时序数据存储为多个数据块存储在存储文件的数据区;
更新所述多元时序数据的所有的数据块的元数据信息;
根据所述所有的数据块中属于时间列块的元数据信息,生成所述时间列块的对应的文件时间序列元数据信息,根据所述所有的数据块中属于各值列块的元数据信息,生成各所述值列块的文件时间序列元数据信息;
将所述时间列块的文件时间序列元数据信息和元数据信息,以及各所述值列块的文件时间序列元数据信息和元数据信息,序列化后存储在所述存储文件的索引区;
将所述多元时序数据作为所述存储文件的元数据树的键生成元数据树。
2.根据权利要求1所述的方法,其特征在于,所述将序列化后的时间戳列存储为时间列块,将序列化后的每个分量的值列存储为值列块,包括:
写入第一页数据页的页数据头,并将序列化后的时间戳列的时间数据写入第一页所述数据页;
当第一页所述数据页中写入的所述序列化后的时间戳列大小达到设定阈值时,刷写新的所述数据页,直至所述序列化后的时间戳列全部被刷写,以生成所述时间列块;
写入所述值列块的第一页所述数据页的页数据头,并将序列化后的各值列写入第一页所述数据页;
当所述第一页所述数据页中写入的数据大小达到设定阈值时,刷写新的所述数据页,直至所述序列化后的各值列全部被刷写,以生成各所述值列块。
3.根据权利要求1所述的方法,其特征在于,所述获取待存储数据之后,还包括:
若判定所述待存储数据为单元时序数据,则将所述单元时序数据的时间戳列和值列序列化;
将序列化后的时间戳列和值列存储为单元序列数据块,以将所述单元时序数据存储为所述单元序列数据块存储在所述存储文件的数据区;
更新所述单元序列数据块的元数据信息;
根据所述单元序列数据块的元数据信息,生成单元序列数据块的文件时间序列元数据信息;
将所述单元序列数据块的文件时间序列元数据信息和元数据信息,序列化后存储在所述存储文件的索引区;
以所述单元时序数据的名称为键生成元数据树。
4.根据权利要求3所述的方法,其特征在于,所述将序列化后的时间戳列和值列存储为单元序列数据块,以将所述单元时序数据存储为所述单元序列数据块存储在所述存储文件的数据区,包括:
写入第一页数据页的页数据头,并将序列化后的时间戳列和值列写入第一页所述数据页;
当第一页所述数据页中写入的所述序列化后的时间戳列大小达到设定阈值时,刷写新的所述数据页,直至所述序列化后的时间戳列和值列全部被刷写,以生成所述单元序列数据块。
5.根据权利要求1所述的方法,其特征在于,还包括:
获取查询命令,其中,所述查询命令包含待查询的多元序列元数据的键以及待查询分量集合;
根据所述元数据树的键,获取所述元数据树中所有所述时间列块的文件时间序列元数据信息和元数据信息;
从所述时间列块的文件时间序列元数据信息开始,遍历所述多元时序数据的所述值列块的文件时间序列元数据信息;
若判定所述值列块的文件时间序列元数据信息中的分量名称存在于所述待查询分量集合中,则保留所述值列块的文件时间序列元数据信息,以获得包含所述值列块的分量中所有值列块的元数据信息,直至所有的所述值列块的元数据信息全部被遍历;
遍历所述时间列块的元数据信息,以获取与所述时间列块的元数据信息对应的时间列块,解码所述时间列块,以获得时间戳列;
根据所述值列块的元数据信息依次遍历每一个所述待查询分量,以获得与所述值列块的元数据信息对应的值列块,解码每个所述值列块,以获得各待查询分量的值列;
将所述时间戳列和各所述待查询分量的值列作为查询结果返回,所述查询结果为一列时间戳和各所述待查询分量的值列拼成的一个矩阵。
6.根据权利要求5所述的方法,其特征在于,还包括:
若判定所述待查询分量集合中包含所有的所述值列块的文件时间序列元数据信息中的分量名称,则在所述根据所述元数据树的键,获取所述元数据树中所有所述时间列块的文件时间序列元数据信息和元数据信息之后,直接执行遍历所述时间列块的元数据信息,以获取与所述时间列块的元数据信息对应的时间列块,解码所述时间列块,以获得时间戳列及之后的步骤。
7.根据权利要求4所述的方法,其特征在于,还包括:
获取查询条件;
根据所述查询条件和所述元数据树的键,获得所述单元序列数据块的文件时间序列元数据信息;
根据所述单元序列数据块的文件时间序列元数据信息,获得每个所述单元序列数据块的元数据信息;
根据每个所述单元序列数据块的元数据信息,获取所述单元时序数据在所述存储文件的数据区中对应的所有的所述单元序列数据块;
将所述单元序列数据块中的每个所述数据页进行解码,以获得每个所述数据页对应的一列时间戳和一列值;
判断每个所述时间戳和与所述时间戳对应的值是否满足所述查询条件;
若是,则将所述时间戳和所述时间戳对应的值作为查询结果返回;
若否,则检查下一个所述数据页对应的时间戳和与所述时间戳对应的值,直至所有的所述数据页全部被查询。
8.一种时序数据的处理装置,其特征在于,包括:
获取模块,用于获取待存储数据;
判断处理模块,用于判断所述待存储数据是否为多元时序数据,若是,则将所述多元时序数据的时间戳列和每个分量的值列序列化;
存储模块,用于将序列化后的时间戳列存储为时间列块,将序列化后的每个分量的值列存储为值列块,以将所述多元时序数据存储为多个数据块存储在存储文件的数据区;
元数据信息更新模块,用于更新所述多元时序数据的所有的数据块的元数据信息;
元数据信息处理模块,用于根据所述所有的数据块中属于时间列块的元数据信息,生成所述时间列块的对应的文件时间序列元数据信息,并根据所述所有的数据块中属于各值列块的元数据信息,生成各所述值列块的文件时间序列元数据信息;
元数据信息存储模块,用于将所述时间列块的文件时间序列元数据信息和元数据信息,以及各所述值列块的文件时间序列元数据信息和元数据信息,序列化后存储在所述存储文件的索引区,并将所述多元时序数据作为所述存储文件的元数据树的键生成元数据树。
9.一种计算机设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1至8任一项所述的单元和多元时序数据的混合处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至8任一项所述的单元和多元时序数据的混合处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211155031.5A CN115630100A (zh) | 2022-09-21 | 2022-09-21 | 单元和多元时序数据的混合处理方法、装置及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211155031.5A CN115630100A (zh) | 2022-09-21 | 2022-09-21 | 单元和多元时序数据的混合处理方法、装置及计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115630100A true CN115630100A (zh) | 2023-01-20 |
Family
ID=84903709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211155031.5A Pending CN115630100A (zh) | 2022-09-21 | 2022-09-21 | 单元和多元时序数据的混合处理方法、装置及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115630100A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116244313A (zh) * | 2023-05-08 | 2023-06-09 | 北京四维纵横数据技术有限公司 | Json数据存储和访问方法、装置、计算机设备及介质 |
-
2022
- 2022-09-21 CN CN202211155031.5A patent/CN115630100A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116244313A (zh) * | 2023-05-08 | 2023-06-09 | 北京四维纵横数据技术有限公司 | Json数据存储和访问方法、装置、计算机设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11853549B2 (en) | Index storage in shingled magnetic recording (SMR) storage system with non-shingled region | |
CN111159329B (zh) | 敏感词检测方法、装置、终端设备和计算机可读存储介质 | |
KR20210003946A (ko) | 논리적-물리적 데이터 구조 | |
CN112463020A (zh) | 基于Flash的数据存取方法、装置及设备 | |
CN115630100A (zh) | 单元和多元时序数据的混合处理方法、装置及计算机设备 | |
CN115562587A (zh) | 应用于存储介质的数据存储方法、装置、设备及存储介质 | |
CN110377276B (zh) | 源代码文件管理方法及设备 | |
CN111984651A (zh) | 一种基于持久性内存的列式存储方法、装置及设备 | |
CN114020525B (zh) | 故障隔离方法、装置、设备及存储介质 | |
CN115114232A (zh) | 一种历史版本对象列举方法、装置及其介质 | |
CN112764683B (zh) | 存储块管理信息同步记录方法、***、终端及存储介质 | |
CN113722623B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN115268794A (zh) | 数据存储方法及相关装置 | |
CN114489481A (zh) | 硬盘存储数据并访问的方法及*** | |
CN114297196A (zh) | 元数据存储方法、装置、电子设备及存储介质 | |
CN114217741A (zh) | 存储装置的存储方法及存储装置 | |
CN103514953A (zh) | 对存储在闪存中的数据有地址ram的模拟电可擦存储器 | |
CN117079703B (zh) | 用于测试芯片内嵌存储器的方法及装置、电子设备 | |
CN118034612B (zh) | 一种数据处理方法、装置和存储介质 | |
CN114329640B (zh) | 计数值读取方法、计数方法、装置、电子设备及存储介质 | |
CN116108022B (zh) | 一种电能表数据存储方法、装置、终端及存储介质 | |
CN116821146B (zh) | 一种基于Apache Iceberg的数据表列更新方法及*** | |
CN115993938B (zh) | 一种磁盘格式化方法、装置、设备和计算机可读存储介质 | |
CN117724998A (zh) | 用于Flash存储器的建表方法、装置和芯片 | |
CN116756104A (zh) | Dbc文件更新比对方法、装置、电子设备及存储介质 |
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 |