WO2021258360A1 - 一种车载数据存储方法及系统 - Google Patents
一种车载数据存储方法及系统 Download PDFInfo
- Publication number
- WO2021258360A1 WO2021258360A1 PCT/CN2020/098216 CN2020098216W WO2021258360A1 WO 2021258360 A1 WO2021258360 A1 WO 2021258360A1 CN 2020098216 W CN2020098216 W CN 2020098216W WO 2021258360 A1 WO2021258360 A1 WO 2021258360A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- time
- node
- stored
- processed
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 85
- 238000013500 data storage Methods 0.000 title claims abstract description 18
- 238000005192 partition Methods 0.000 claims abstract description 118
- 238000003860 storage Methods 0.000 claims abstract description 41
- 238000012545 processing Methods 0.000 claims description 7
- 230000000717 retained effect Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 230000006835 compression Effects 0.000 claims description 3
- 238000007906 compression Methods 0.000 claims description 3
- 238000012217 deletion Methods 0.000 claims description 3
- 230000037430 deletion Effects 0.000 claims description 3
- 238000007596 consolidation process Methods 0.000 claims 1
- 238000004364 calculation method Methods 0.000 abstract description 11
- 230000001360 synchronised effect Effects 0.000 abstract description 2
- 230000006872 improvement Effects 0.000 description 34
- 238000004458 analytical method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012216 screening Methods 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/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/2457—Query processing with adaptation to user needs
- G06F16/24573—Query processing with adaptation to user needs using data annotations, e.g. user-defined metadata
-
- 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/2455—Query execution
- G06F16/24552—Database cache management
-
- 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/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- 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/23—Updating
-
- 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/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
- G06F16/2322—Optimistic concurrency control using timestamps
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6058—Saving memory space in the encoder or decoder
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种车载数据存储方法及存储系统,用于车载数据库,所述方法包括:在当前时间段,获取写入所述车载数据库的各条待处理时序数据;根据所述各条待处理时序数据,分别确定所述车载数据库中的各个待存储节点以及所述各个待存储节点中的各个待存储分区,并将所述各条待处理时序数据分别写入所述各个待存储分区中的各个时序;将写入所述各个待存储分区中的各条时序数据分别写入对应的各个内存数据桶中,并在所述各个内存数据桶中进行各条时序数据的合并。通过以上方式减少了对车载硬盘的写入次数,控制了写入车载硬盘的数据量,并可实现在插入数据时对汇总数据的同步预计算。
Description
本发明涉及数据存储技术领域,具体而言,涉及一种车载数据存储方法及系统。
车载数据库中主要存储的是时序数据,所存储的原始数据量非常大。如果从车载数据库中直接查询原始数据来进行分析计算,会耗费大量的计算资源和时间,同时车载设备能提供的计算资源是有限的,导致车载设备无法及时响应其他请求。另外,车载硬盘的容量有限,大量原始数据高频率的写入车载硬盘,会使硬盘容量占满而导致车内设备故障。而如果将全部原始数据传输回云端来进行分析计算,由于数据量巨大,带宽无法满足实时传输的要求。
发明内容
为解决上述问题,本发明的目的在于提供一种车载数据存储方法及系统,减少对车载硬盘的写入次数,控制写入车载硬盘的数据量,并可实现在插入数据时对汇总数据的预计算。
本发明提供了一种车载数据存储方法,所述方法用于车载数据库,所述方法包括:
在当前时间段,获取写入所述车载数据库的各条待处理时序数据;
根据所述各条待处理时序数据,分别确定所述车载数据库中的各个待存储节点以及所述各个待存储节点中的各个待存储分区,并将所述各条待处理时序数据分别写入所述各个待存储分区中的各个时序;
将写入所述各个待存储分区中的各条时序数据分别写入对应的各个内存数据桶中,并在所述各个内存数据桶中进行各条时序数据的合并。
作为本发明进一步的改进,根据所述各条待处理时序数据,分别确定所述车载数据库中的各个待存储节点以及所述各个待存储节点中的各个待存储分区,并将所述各条待处理时序数据分别写入所述各个待存储分区中的各个时序,包括:
根据一条待处理时序数据的关键字,确定所述待处理时序数据的关键字 对应的哈希值;
根据所述哈希值,确定所述待处理时序数据对应的待存储节点、所述待存储节点中的待存储分区以及所述待存储分区中对应的时序,将所述待处理时序数据写入所述待存储分区中对应的时序;
依次类推,将所述各条待处理时序数据分别写入所述各个待存储分区中的各个时序。
作为本发明进一步的改进,将写入所述各个待存储分区中的各条时序数据分别写入对应的各个内存数据桶中,并在所述各个内存数据桶中进行各条时序数据的合并,包括:
将一个待存储分区中的各个时序在当前时间段内写入的各条时序数据分别写入所述各个时序对应的内存数据桶中;
在一个内存数据桶中,对写入所述内存数据桶的各条时序数据进行合并;
依次类推,将写入所述各个待存储分区中的各条时序数据分别写入对应的各个内存数据桶中,并在所述各个内存数据桶中进行各条时序数据的合并。
作为本发明进一步的改进,将所述各条待处理时序数据分别写入所述各个待存储分区中的各个时序,包括:
通过所述各条待处理时序数据中的时间戳差值和指标值差值,对所述各条待处理时序数据分别进行压缩;
将压缩后的所述各条待处理时序数据分别写入所述各个待存储分区中的各个时序。
作为本发明进一步的改进,通过所述各条待处理时序数据中的时间戳差值和指标值差值,对所述各条待处理时序数据分别进行压缩,包括:
将第一待处理时序数据写入其对应的待存储分区;
确定写入所述待存储分区的第二待处理时序数据与所述第一待处理时序数据的第一时间戳差值和第一指标值差值,将所述第一时间戳差值和所述第一指标值差值作为压缩后的第二待处理时序数据存储至所述待存储分区中;
确定写入所述待存储分区的第三待处理时序数据与所述第二待处理时序数据的第二时间戳差值和第二指标值差值,并确定所述第二时间戳差值和所 述第一时间戳差值之间的第三时间戳差值,以及所述第二指标值差值和所述第一指标值差值的第三指标值差值,将所述第三时间戳差值和所述第三指标值差值作为压缩后的第三待处理时序数据存储至所述待存储分区中;
依次类推,将所述各条待处理时序数据通过各个时间戳差值和各个指标值差值分别进行压缩存储。
作为本发明进一步的改进,所述各个时间戳差值和所述各个指标值差值通过不同的编码方式表示并存储。
作为本发明进一步的改进,所述各个时间戳差值和所述各个指标值差值通过不同的编码方式表示并存储,包括:
根据所述各个时间戳差值和所述各个指标值差值的值,分别确定对应的编码方式;
若一个时间戳差值或一个指标值差的值大于或等于第一值且小于第二值,将所述时间戳差值或所述指标值差值用第一编码方式表示并存储;
若一个时间戳差值或一个指标值差值的值大于或等于第二值且小于第三值,将所述时间戳差值或所述指标值差值用第二编码方式表示并存储;
依次类推,对所述各个时间戳差值和所述各个指标值差值通过不同的编码方式表示并存储。
作为本发明进一步的改进,所述方法还包括:
确定写入车载硬盘的待处理合并时序数据,其中,所述待处理合并时序数据为所述各个内存数据桶中所合并的各条时序数据;
将所述待处理合并时序数据写入所述车载硬盘中。
作为本发明进一步的改进,将所述待处理合并时序数据写入所述车载硬盘中,包括:
将所述待处理合并时序数据以数据块方式进行压缩,并将压缩后的各数据块写入所述车载硬盘中。
作为本发明进一步的改进,所述方法还包括:
确定待记录时序数据,其中,所述待记录时序数据包括所述各个内存数据桶写入所述车载硬盘后的剩余时序数据以及所述各个待存储分区中的各个 时序的剩余时序数据;
对所述待记录时序数据记录日志信息,并确定所述日志信息是否写入所述车载硬盘以及写入所述车载硬盘的写入频率;
若确定所述日志信息写入所述车载硬盘,将所述日志信息以所述写入频率写入所述车载硬盘。
作为本发明进一步的改进,所述方法还包括:
根据存储时间确定所述车载硬盘中的待删除时序数据;
将所述待删除时序数据进行删除,以使所述待处理合并时序数据写入所述车载硬盘。
作为本发明进一步的改进,所述方法还包括:
确定所述各个待存储节点中的各个时序的汇总数据;
将所述各个时序的汇总数据分别按照汇总树进行存储,以使从内存中读取所述各个时序的汇总数据,其中,所述内存包括各个时序、各个内存数据桶和各个汇总树;
其中,每个汇总树包括根节点以及沿所述根节点从上至下的多层节点,每个节点存储一个时序在一个时间区间内的汇总数据。
作为本发明进一步的改进,将所述各个时序的汇总数据分别按照汇总树进行存储,包括:
对一个时序的汇总树,确定第n层节点中的各个节点所代表的第n时间区间,将所述时序中的时序数据在各个第n时间区间内计算的汇总数据分别存储至所述第n层节点中的各个节点;
确定第n-1层节点中的各个节点所代表的第n-1时间区间,将所述时序中的时序数据在各个第n-1时间区间内计算的汇总数据分别存储至所述第n-1层节点中的各个节点;
依次类推,将所述时序中的时序数据在各个时间区间内的汇总数据分别存储至所述汇总树中的各个节点;
依次类推,对所述各个时序的汇总数据分别按照汇总树进行存储。
作为本发明进一步的改进,每个汇总树中的各个节点分别存储从所述父 节点的开始时间到当前节点的开始时间的偏移量,以使通过所述父节点的开始时间和所述父节点的开始时间到当前节点的开始时间的偏移量确定所述当前节点代表的时间区间的开始时间。
作为本发明进一步的改进,所述方法还包括:将所述各个汇总树写入车载硬盘中,以使从所述车载硬盘中查询所述各个时序的汇总数据;
其中,每个汇总树对应的硬盘文件包含文件头部分和数据部分,所述文件头部分包括汇总树对应的时序的关键字以及汇总树的各个节点对应的时间区间,所述数据部分包括汇总树的各个节点存储的汇总数据。
作为本发明进一步的改进,所述方法还包括:
确定待查询时间区间和待查询汇总数据对应的时序的关键字;
根据所述待查询汇总数据对应的时序的关键字从所述车载硬盘中找到所述待查询汇总数据对应的硬盘文件;
从所述硬盘文件中载入所述待查询汇总数据对应的汇总树,从所述待查询汇总数据对应的汇总树的父节点开始匹配,逐层遍历所述待查询汇总数据对应的汇总树的多层节点,直至搜寻到所述待查询时间区间对应的一个或者多个节点,从所述查询时间区间对应的一个或者多个节点中获取汇总数据。
作为本发明进一步的改进,在搜寻所述待查询时间区间对应的汇总树的一个或者多个节点时,
若所述待查询时间区间包括所述待查询汇总数据对应的汇总树中一层节点中的一个节点时,获取所述一层节点中的一个节点的汇总数据,并将所述一层节点中的一个节点的汇总数据作为查询结果;
若所述待查询时间区间包括所述待查询汇总数据对应的汇总树中一层节点中的多个节点时,分别获取所述一层节点中的多个节点的汇总数据,并将所述一层节点中的多个节点的汇总数据进行合并,合并后的汇总数据作为查询结果。
作为本发明进一步的改进,在搜寻所述待查询时间区间对应的汇总树的一个或者多个节点时,
若所述待查询时间区间没有完整覆盖所述待查询汇总数据对应的汇总树中一层节点中的一个节点时,将所述待查询汇总数据对应的汇总树中一层节点中的上边界节点和下边界节点的汇总数据丢弃,并保留所述待查询汇总数 据对应的汇总树中一层节点中除所述上边界节点和所述下边界节点外的其他节点的汇总数据。
本发明还提供了一种车载数据存储系统,所述系统用于车载数据库,所述系统包括:
数据获取模块,用于在当前时间段,获取写入所述车载数据库的各条待处理时序数据;
数据写入模块,用于根据所述各条待处理时序数据,分别确定所述车载数据库中的各个待存储节点以及所述各个待存储节点中的各个待存储分区,并将所述各条待处理时序数据分别写入所述各个待存储分区中的各个时序;
数据合并模块,用于将写入所述各个待存储分区中的各条时序数据分别写入对应的各个内存数据桶中,并在所述各个内存数据桶中进行各条时序数据的合并。
作为本发明进一步的改进,所述数据写入模块用于:
根据一条待处理时序数据的关键字,确定所述待处理时序数据的关键字对应的哈希值;
根据所述哈希值,确定所述待处理时序数据对应的待存储节点、所述待存储节点中的待存储分区以及所述待存储分区中对应的时序,将所述待处理时序数据写入所述待存储分区中对应的时序;
依次类推,将所述各条待处理时序数据分别写入所述各个待存储分区中的各个时序。
作为本发明进一步的改进,所述数据合并模块用于:
将一个待存储分区中的各个时序在当前时间段内写入的各条时序数据分别写入所述各个时序对应的内存数据桶中;
在一个内存数据桶中,对写入所述内存数据桶的各条时序数据进行合并;
依次类推,将写入所述各个待存储分区中的各条时序数据分别写入对应的各个内存数据桶中,并在所述各个内存数据桶中进行各条时序数据的合并。
作为本发明进一步的改进,将所述各条待处理时序数据分别写入所述各个待存储分区中的各个时序,包括:
通过所述各条待处理时序数据中的时间戳差值和指标值差值,对所述各 待处理时序数据分别进行压缩;
将压缩后的所述各条待处理时序数据分别写入所述各个待存储分区中的各个时序。
作为本发明进一步的改进,通过所述各条待处理时序数据中的时间戳差值和指标值差值,对所述各条待处理时序数据分别进行压缩,包括:
将第一待处理时序数据写入其对应的待存储分区;
确定写入所述待存储分区的第二待处理时序数据与所述第一待处理时序数据的第一时间戳差值和第一指标值差值,将所述第一时间戳差值和所述第一指标值差值作为压缩后的第二待处理时序数据存储至所述待存储分区中;
确定写入所述待存储分区的第三待处理时序数据与所述第二待处理时序数据的第二时间戳差值和第二指标值差值,并确定所述第二时间戳差值和所述第一时间戳差值之间的第三时间戳差值,以及所述第二指标值差值和所述第一指标值差值的第三指标值差值,将所述第三时间戳差值和所述第三指标值差值作为压缩后的第三待处理时序数据存储至所述待存储分区中;
依次类推,将所述各条待处理时序数据通过各个时间戳差值和各个指标值差值分别进行压缩存储。
作为本发明进一步的改进,所述各个时间戳差值和所述各个指标值差值通过不同的编码方式表示并存储。
作为本发明进一步的改进,所述各个时间戳差值和所述各个指标值差值通过不同的编码方式表示并存储,包括:
根据所述各个时间戳差值和所述各个指标值差值的值,分别确定对应的编码方式;
若一个时间戳差值或一个指标值差的值大于或等于第一值且小于第二值,将所述时间戳差值或所述指标值差值用第一编码方式表示并存储;
若一个时间戳差值或一个指标值差值的值大于或等于第二值且小于第三值,将所述时间戳差值或所述指标值差值用第二编码方式表示并存储;
依次类推,对所述各个时间戳差值和所述各个指标值差值通过不同的编码方式表示并存储。
作为本发明进一步的改进,所述系统还包括:
第一数据写出模块,用于确定写入车载硬盘的待处理合并时序数据,其中,所述待处理合并时序数据为所述各个内存数据桶中所合并的各条时序数据;将所述待处理合并时序数据写入所述车载硬盘中。
作为本发明进一步的改进,将所述待处理合并时序数据写入所述车载硬盘中,包括:
将所述待处理合并时序数据以数据块方式进行压缩,并将压缩后的各数据块写入所述车载硬盘中。
作为本发明进一步的改进,所述系统还包括:
日志模块,用于确定待记录时序数据,其中,所述待记录时序数据包括所述各个内存数据桶写入所述车载硬盘后的剩余时序数据以及所述各个待存储分区中的各个时序的剩余时序数据;对所述待记录时序数据记录日志信息,并确定所述日志信息是否写入所述车载硬盘以及写入所述车载硬盘的写入频率;若确定所述日志信息写入所述车载硬盘,将所述日志信息以所述写入频率写入所述车载硬盘。
作为本发明进一步的改进,所述系统还包括:
数据删除模块,用于根据存储时间确定所述车载硬盘中的待删除时序数据;将所述待删除时序数据进行删除,以使所述待处理合并时序数据写入所述车载硬盘。
作为本发明进一步的改进,所述系统还包括:
数据汇总模块,用于确定所述各个待存储节点中的各个时序的汇总数据;将所述各个时序的汇总数据分别按照汇总树进行存储,以使从内存中读取所述各个时序的汇总数据,其中,所述内存包括各个时序、各个内存数据桶和各个汇总树;
其中,每个汇总树包括根节点以及沿所述根节点从上至下的多层节点,每个节点存储一个时序在一个时间区间内的多个时序数据的汇总数据。
作为本发明进一步的改进,将所述各个时序的汇总数据分别按照汇总树进行存储,包括:
对一个时序的汇总树,确定第n层节点中的各个节点所代表的第n时间区间,将所述时序中的时序数据在各个第n时间区间内计算的汇总数据分别存储至所述第n层节点中的各个节点;
确定第n-1层节点中的各个节点所代表的第n-1时间区间,将所述时序中的时序数据在各个第n-1时间区间内计算的汇总数据分别存储至所述第n-1层节点中的各个节点;
依次类推,将所述时序中的时序数据在各个时间区间内的汇总数据分别存储至所述汇总树中的各个节点;
依次类推,对所述各个时序的汇总数据分别按照汇总树进行存储。
作为本发明进一步的改进,每个汇总树中的各个节点分别存储从所述父节点的开始时间到当前节点的开始时间的偏移量,以使通过所述父节点的开始时间和所述父节点的开始时间到当前节点的开始时间的偏移量确定所述当前节点代表的时间区间的开始时间。
作为本发明进一步的改进,所述系统还包括:
第二数据写出模块,用于将所述各个汇总树写入车载硬盘中,以使从所述车载硬盘中查询所述各个时序的汇总数据;
其中,每个汇总树对应的硬盘文件包含文件头部分和数据部分,所述文件头部分包括汇总树对应时序的关键字以及汇总树的各个节点对应的时间区间,所述数据部分包括汇总树的各个节点存储的汇总数据。
作为本发明进一步的改进,所述系统还包括:
数据查询模块,用于确定待查询时间区间和待查询汇总数据对应的时序的关键字,根据所述待查询汇总数据对应的时序的关键字从所述车载硬盘中找到所述待查询汇总数据对应的硬盘文件;从所述硬盘文件中载入所述待查询汇总数据对应的汇总树,从所述待查询汇总数据对应的汇总树的父节点开始匹配,逐层遍历所述待查询汇总数据对应的汇总树的多层节点,直至搜寻到所述待查询时间区间对应的一个或者多个节点,从所述查询时间区间对应的一个或者多个节点中获取汇总数据。
作为本发明进一步的改进,在搜寻所述待查询时间对应的一个或者多个节点时,
若所述待查询时间区间包括所述待查询汇总数据对应的汇总树中一层节点中的一个节点时,获取所述一层节点中的一个节点对应的汇总数据,并将所述一层节点中的一个节点的汇总数据作为查询结果;
若所述待查询时间区间包括所述待查询汇总数据对应的汇总树中一层节点中的多个节点时,分别获取所述一层节点中的多个节点对应的汇总数据,并将所述一层节点中的多个节点对应的汇总数据进行合并,合并后的汇总数据作为查询结果。
作为本发明进一步的改进,在搜寻所述待查询时间区间对应的一个或者多个节点时,
若所述待查询时间区间没有完整覆盖所述待查询汇总数据对应的汇总树中一层节点中的一个节点时,将所述待查询汇总数据对应的汇总树中一层节点中的上边界节点和下边界节点的汇总数据丢弃,并保留所述待查询汇总数据对应的汇总树中一层节点中除所述上边界节点和所述下边界节点外的其他节点的汇总数据。
本发明还提供了一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被处理器执行以实现所述的方法。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现所述的方法。
本发明的有益效果为:
将车载时序数据的读写操作全部在内存中进行,以使车载数据库可以轻松承载毫秒级别的数据写入操作;
对车载硬盘的写入和更新次数少,避免对车载硬盘的高频写入,提高车载硬盘的使用寿命;
对车载时序数据进行压缩存储,控制写入车载硬盘的数据量,防止车载硬盘被占满,而导致设备故障;
在插入数据的时候,进行了汇总数据的预计算,将汇总数据和原始数据一起写出到硬盘上,进一步降低了对车载硬盘的写入次数,也能快速地从车载数据库中读取所需的汇总数据的计算结果。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一示例性实施例所述的车载数据库的示意图;
图2为本发明一示例性实施例所述的车载数据库存储系统的示意图;
图3为本发明一示例性实施例所述的汇总树结构的示意图;
图4为本发明一示例性实施例所述的查询汇总数据的示意图;
图5为本发明又一示例性实施例所述的查询汇总数据的示意图。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明,若本发明实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
另外,在本发明的描述中,所用术语仅用于说明目的,并非旨在限制本发明的范围。术语“包括”和/或“包含”用于指定所述元件、步骤、操作和/或组件的存在,但并不排除存在或添加一个或多个其他元件、步骤、操作和/或组件的情况。术语“第一”、“第二”等可能用于描述各种元件,不代表顺序,且不对这些元件起限定作用。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个及两个以上。这些术语仅用于区分一个元素和另一个元素。结合以下附图,这些和/或其他方面变得显而易见,并且,本领域普通技术人员更容易理解关于本发明所述实施例的说明。附图仅出于说明的目的用来描绘本发明所述实施例。本领域技术人员将很容易地从以下说明中认识到,在不背离本发明所述原理的情况下,可以采用本发明所示结构和方法的替代实施例。
本发明实施例的一种车载数据存储方法,所述方法用于车载数据库,所述方法包括:
在当前时间段,获取写入车载数据库的各条待处理时序数据;
根据各条待处理时序数据,分别确定车载数据库中的各个待存储节点以及各个待存储节点中的各个待存储分区,并将各条待处理时序数据分别写入各个待存储分区中的各个时序;
将写入各个待存储分区中的各条时序数据分别写入对应的各个内存数据桶中,并在各个内存数据桶中进行各条时序数据的合并。
如图1所示,本发明的车载数据库包括多个节点,可以为物理节点或虚拟节点,每个节点上运行一个或者多个车载数据库实例,每个车载数据库实例(即待存储节点)运行一个车载数据库存储系统。如图2所示,车载数据库存储系统被划分为多个分区,每个分区包括多个时序(一个时序表示具有相同关键字的多个时间段的时序数据)、多个内存数据桶和硬盘文件(数据文件和日志文件)。在客户端发送数据插入请求(待处理时序数据)或查询请求时,将对应的请求发送至对应的车载数据库实例中的分区。
在一种可选的实施方式中,根据各条待处理时序数据,分别确定车载数据库中的各个待存储节点以及各个待存储节点中的各个待存储分区,并将各条待处理时序数据分别写入各个待存储分区中的各个时序,包括:
根据一条待处理时序数据的关键字,确定待处理时序数据的关键字对应的哈希值;
根据哈希值,确定待处理时序数据对应的待存储节点、待存储节点中的待存储分区以及待存储分区中对应的时序,将待处理时序数据写入待存储分区中对应的时序;
依次类推,将各条待处理时序数据分别写入各个待存储分区中的各个时序。
举例说明,当插入一条待处理时序数据<timestamp,key,value>,需要先根据该条待处理时序数据的key值(关键字)计算hash值(哈希值),再根据hash值决定插入请求发送到那个存储节点中。本发明将时序数据按照时间、 key值分段缓存在各个待存储分区中的各个时序中,每一个不同的key值对应一个不同的时序,每个时序具有一个相同的关键字。这样可以使时序数据的读写操作都在内存(内存包括多个时序、多个内存数据桶和多个汇总树)中进行,以使车载数据库可以承载毫秒级别的数据写入操作。
在一种可选的实施方式中,将写入各个待存储分区中的各条时序数据分别写入对应的各个内存数据桶中,并在各个内存数据桶中进行各条时序数据的合并,包括:
将一个待存储分区中的各个时序在当前时间段内写入的各条时序数据分别写入各个时序对应的内存数据桶中;
在一个内存数据桶中,对写入内存数据桶的各条时序数据进行合并;
依次类推,将写入各个待存储分区中的各条时序数据分别写入对应的各个内存数据桶中,并在各个内存数据桶中进行各条时序数据的合并。
本发明的内存包括多个时序、多个内存数据桶和多个汇总树,几个时序对应一个内存数据桶,将当前时间段的时序数据完全写入后,各个时序中当前时间段内的各条时序数据会被写入一个内存数据桶中,当前时间段的各条时序数据在该内存数据桶中进行合并。举例说明,设置每个时序包含10分钟的时序数据,一条时序数据写入对应的时序达到10分钟后,各个时序(例如两个时序)在当前时间段的各条时序数据会被分别写出至一个内存数据桶中,然后开始下一个时间段的时序数据写入,已经写入这个内存数据桶中的当前时间段的各个时序(例如两个时序)对应的各条时序数据则会被合并等待写出至硬盘。
在一种可选的实施方式中,将各条待处理时序数据分别写入各个待存储分区中的各个时序,包括:
通过各条待处理时序数据中的时间戳差值和指标值差值,对各条待处理时序数据分别进行压缩;
将压缩后的各条待处理时序数据分别写入各个待存储分区中的各个时序。
由于车载数据的数据量大,本发明对写入内存的时序数据进行压缩,控 制后期写入车载硬盘的数据量。例如对每一条时序数据<timestamp,key,value>进行压缩存储。一般,对车载时序数据采集指标值的频率是固定的,且指标值的波动区间不大,前后两条时序数据对应的三元组中的timestamp和value值相差都很小。因此本发明通过记录差值而不是原值的方式,对时序数据进行压缩,经过压缩后能在内存中存入更多的时序数据。
在一种可选的实施方式中,通过各条待处理时序数据中的时间戳差值和指标值差值,对各条待处理时序数据分别进行压缩,包括:
将第一待处理时序数据写入其对应的待存储分区;
确定写入待存储分区的第二待处理时序数据与第一待处理时序数据的第一时间戳差值和第一指标值差值,将第一时间戳差值和第一指标值差值作为压缩后的第二待处理时序数据存储至待存储分区中;
确定写入待存储分区的第三待处理时序数据与第二待处理时序数据的第二时间戳差值和第二指标值差值,并确定第二时间戳差值和第一时间戳差值之间的第三时间戳差值,以及第二指标值差值和第一指标值差值的第三指标值差值,将第三时间戳差值和第三指标值差值作为压缩后的第三待处理时序数据存储至待存储分区中;
依次类推,将各条待处理时序数据通过各个时间戳差值和各个指标值差值分别进行压缩存储。
本发明例如将<Δ(Δtimestamp),Δ(Δvalue)>进行存储,实现对时序数据的压缩,其中,Δtimestamp)表示当前时序数据中的时间戳和前一时序数据的时间戳的差值,Δ(Δtimestamp)表示前后两个时间戳差值的差值,Δvalue表示当前时序数据和前一时序数据中的指标值(value)的差值,Δ(Δvalue)表示前后两个指标值差值的差值(Δvalue1-Δvalue2),其中,Δvalue1表示当前时序数据和前一时序数据的指标值差值,Δvalue2表示前一时序数据和再前一时序数据的指标值差值。举例说明,一个时序有四条时序数据分别是<1585137131985,“VhlSpd”,43.5>、<1585137132035,“VhlSpd”,43.6>、<1585137132085,“VhlSpd”,43.7>、<1585137132135,“VhlSpd”,43.9>,第一时序数据作为该时序内的第一条数据,需要存储key值(关键字VhlSpd), 即第一时序数据会被存储为<1585137131985,43.5>,该时序内的其他时序数据无需存储key值。对于第二时序数据,仅存储和第一时序数据的差值,即第二时序数据存储为<50,0.1>。对于第三时序数据,先计算和第二时序数据的差值为<50,0.1>,再计算这个差值与第二时序数据和第一时序数据的差值<50,0.1>之间的差值,即第三时序数据存储为<0,0>。依次类推,第四时序数据和第三时序数据的差值为<50,0.2>,这个差值与第三时序数据和第二时序数据的差值<50,0.1>之间的差值为<0,0.1>,即第四时序数据存储为<0,0.1>。
在一种可选的实施方式中,各个时间戳差值和各个指标值差值通过不同的编码方式表示并存储。
在一种可选的实施方式中,各个时间戳差值和各个指标值差值通过不同的编码方式表示并存储,包括:
根据各个时间戳差值和各个指标值差值的值,分别确定对应的编码方式;
若一个时间戳差值或一指标值差的值大于或等于第一值且小于第二值,将时间戳差值或指标值差值用第一编码方式表示并存储;
若一时间戳差值或一指标值差值的值大于或等于第二值且小于第三值,将时间戳差值或指标值差值用第二编码方式表示并存储;
依次类推,对各个时间戳差值和各个指标值差值通过不同的编码方式表示并存储。
如前述所示,前后两条时序数据之间的时间戳差值和指标值差值不会有太大的差值,差值的取值范围比原值的取值范围小很多。可以将差值按照差值范围进行编码表示后存储。举例说明,差值0例如可以用一位二进制0表示,差值在-128-127间例如可以用8个bit位编码表示等,本发明对各种编码方式不做具体限定。通过编码方式来存储差值,可以使存储数据的长度比原始数据小很多,能在内存中存入更多的时序数据。另外,每个时序中的第一条时序数据会存储key值,而同一时序后面的时序数据不存储key值,这样可以极大地节省内存空间。
在一种可选的实施方式中,所述方法还包括:
确定写入车载硬盘的待处理合并时序数据,其中,待处理合并时序数据 为各个内存数据桶中所合并的各条时序数据;
将待处理合并时序数据写入车载硬盘中。
在一种可选的实施方式中,将待处理合并时序数据写入车载硬盘中,包括:将待处理合并时序数据以数据块方式进行压缩,并将压缩后的各数据块写入车载硬盘中。
如图2所示,本发明采用异步定期写出方式,将合并时序数据从内存数据桶中写出至硬盘。这种写出方式可以在一次写出操作的时候将内存数据桶中全部等待写出的时间段全部写出,可以尽可能多的同时写出多个时间段的数据到硬盘上。另外,本发明对需要写出至硬盘的数据以数据块为单位进行压缩,以进一步减小需要写入硬盘的数据量。
在一种可选的实施方式中,所述方法还包括:
确定待记录时序数据,其中,待记录时序数据包括各个内存数据桶写入车载硬盘后的剩余时序数据以及各个待存储分区中的各个时序的剩余时序数据;
对待记录时序数据记录日志信息,并确定日志信息是否写入车载硬盘以及写入车载硬盘的写入频率;
若确定日志信息写入车载硬盘,将日志信息以写入频率写入车载硬盘。
由于采用的是异步写出方式而不是实时的,因此会有一部分时序数据保留在各个内存数据桶中和各个时序中,当系统断电或者其他原因导致系统宕机发生时,这部分数据容易丢失。为避免这部分数据丢失,本发明可以为这部分数据记录日志,当系统遭遇宕机或者断电故障的时候,待系统重启后可以从日志中对这部分数据进行恢复。在车载控制设备中有一些控制设备产生的信号,对数据安全性要求不高,这一部分要求不高的数据丢失不会对车载系统造成太大的影响,在这种情况下,为了减少对车载硬盘的写入次数,可以通过配置确定是否需要将日志写入车载硬盘和以什么写入频率写出到车载硬盘。
车载控制设备的指标数据是对某一时刻的设备性能或者是操作行为的一种反馈,是只读数据,如果允许修改则不可避免不安全的篡改行为。本发明 可以设置写入至各个存储节点的数据不可以修改,这样可以避免修改车载硬盘上写出的数据文件和日志文件,从而进一步减少写入车载硬盘的次数。
在一种可选的实施方式中,所述方法还包括:
根据存储时间确定车载硬盘中的待删除时序数据;
将待删除时序数据进行删除,以使待处理合并时序数据写入车载硬盘。
写出至车载硬盘的数据随着时间的增加,数据量会越来越大,如果不定期删除会超出硬盘的容量。车载控制设备的指标数据最主要的用途是进行分析和监控,无论分析和监控都是基于最近的数据进行分析和处理,然后将处理完毕的数据或者分析结果同步到服务器,因此车载数据库中对数据的访问都是对最近的数据进行访问,数据的价值会随着其保存期限的增加而不断地降低,数据在保存了一段时间之后,其价值已经基本趋近于零。本发明可以自动对超过存储时间的数据进行删除,该存储时间可以进行设定,本发明对存储时间不做具体限定。
在一种可选的实施方式中,所述方法还包括:
确定各个待存储节点中各个时序的汇总数据;
将各个时序的汇总数据分别按照汇总树进行存储,以使从内存中读取各个时序的汇总数据,其中,内存包括各个时序和各个内存数据桶以及各个汇总树;
其中,每个汇总树包括根节点以及沿根节点从上至下的多层节点,每个节点存储一个时序在一个时间区间内的汇总数据。
在一种可选的实施方式中,将各个时序的汇总数据分别按照汇总树进行存储,包括:
对一个时序的汇总树,确定第n层节点中的各个节点所代表的第n时间区间,将时序内的时序数据在各个第n时间区间内计算的汇总数据分别存储至第n层节点中的各个节点;
确定第n-1层节点中的各个节点所代表的第n-1时间区间,将时序内的时序数据在各个第n-1时间区间内计算的汇总数据分别存储至第n-1层节点中的各个节点;
依次类推,将时序内的时序数据在各个时间区间内的汇总数据分别存储至汇总树结构中的各个节点;
依次类推,对各个时序的汇总数据分别按照汇总树进行存储。
本发明对每个需要进行汇总计算的时序,通过汇总树来存储汇总数据。可以快速地从车载数据库中读取所需的汇总计算结果,而不是将原始数据传递回云端再进行计算,或者在查询的过程中让车载数据库从原始数据进行计算再返回结果。举例说明,如图3所示,汇总树中的每个节点代表一个时间区间,存储了这个时间区间内某个时序的汇总数据。例如,根节点表示从根节点中存储的开始时间起30天内的汇总数据,例如sum、count,min和max值;第二层第一个节点代表从根节点开始时间起第一天内的汇总数据;第三层第一个节点代表从根节点开始时间起第一个小时内的汇总数据;第四层第一个节点代表从根节点开始时间起第一分钟内的汇总数据。
本发明对每一个需要进行汇总计算的时序在内存中保留一个汇总树,当向某一时序写入数据的时候,车载数据库同步更新汇总树,当写入的时序数据超出当前汇总树表示的时间范围的时候,车载数据库将此汇总树写出至车载硬盘,然后在内存中重新构建汇总树来存储下一个时间段的汇总数据。
本发明中所述的汇总树与Merge Tree方式不同,Merge Tree仅能够应用于关系数据,不能应用于时序数据。而汇总树中每个节点都存储了一个时间区间,这个时间区间代表了汇总计算的开始和结束时间。如图3所示,例如可以将汇总树节点分为四种不同的类型:ROOT、DAY、HOUR、MINUTE,其中,ROOT类型代表该节点存储了30天的汇总数据,DAY类型代表该节点中存储了1天的汇总数据,HOUR代表节点中存储了1小时的汇总数据,MINUTE代表节点中存储了1分钟的汇总数据。由于每个节点的时间区间为固定区间且区间的大小和节点的类型相关,因此每个节点不需要存储其所表示的时间区间的结束时间,而仅需存储其所表示的时间区间的开始时间,就能根据节点类型计算节点表示的时间区间的结束时间。本发明对汇总树节点的类型不做具体限制。
在一种可选的实施方式中,汇总树中的各个节点存储从父节点的开始时 间到当前节点的开始时间的偏移量,以使通过父节点的开始时间和父节点的开始时间到当前节点的开始时间的偏移量计算得到当前节点代表的时间区间的开始时间。
在从汇总树查询数据时,一般是从根节点遍历到当前节点的父节点然后遍历到当前节点,本发明在汇总树节点中仅仅存储从父节点的开始时间到当前节点的开始时间的偏移量,可以进一步节省存储空间。
在一种可选的实施方式中,所述方法还包括:将各个汇总树写入车载硬盘中,以使从车载硬盘中查询各个时序的汇总数据;
其中,每个汇总树对应的硬盘文件中包含文件头部分和数据部分,文件头部分包括汇总树对应的时序的关键字以及汇总树的各个节点对应的时间区间,数据部分包括汇总树的各个节点存储的汇总数据。
在一种可选的实施方式中,所述方法还包括:
确定待查询时间区间和待查询汇总数据对应的时序的关键字;
根据待查询汇总数据对应的时序的关键字从车载硬盘中找到待查询汇总数据对应的硬盘文件;
从硬盘文件中载入待查询汇总数据对应的汇总树,从待查询汇总数据对应的汇总树的父节点开始匹配,逐层遍历待查询汇总数据对应的汇总树的多层节点,直至搜寻到待查询时间区间对应的一个或者多个节点,从所述查询时间区间对应的一个或者多个节点中获取汇总数据。
本发明在插入数据的时候对汇总数据进行了预计算,同时将汇总数据和原始数据一起写出到硬盘上,降低了对车载设备硬盘的写入次数;而且通过对硬盘上文件头部分进行设置,提供了文件筛选机制,可以极大地提高汇总数据的查询效率。
在一种可选的实施方式中,在搜寻待查询时间区间对应的汇总树一个或者多个节点时,
若待查询时间区间包括待查询汇总数据对应的汇总树中一层节点中的一个节点时,获取一层节点中的一个节点的汇总数据,并将一层节点中的一个节点对应的汇总数据作为查询结果;
若待查询时间区间包括待查询汇总数据对应的汇总树中一层节点中的多个节点时,分别获取一层节点中的多个节点的汇总数据,并将一层节点中的多个节点对应的汇总数据进行合并,合并后的汇总数据作为查询结果。
上述可以理解为,在搜寻待查询时间区间对应的汇总树的一个或多个节点时,当遍历到汇总树中某一层节点,如果待查询时间区间包括这一层节点中的某一个节点时,可以将这个节点的汇总数据作为查询结果,如果待查询时间区间包括这一层节点中的某几个节点时,可以将这几个节点的汇总数据合并后的数据作为查询结果。
举例说明,如图4所示,当需要查询某个时间段<2020-02-21 14:20:00,2020-02-21 14:21:01>,某个key值所有数据中的出现的最大值的时候,查询表示为<key,2020-02-21 14:20:00,2020-02-21 14:21:01,max>,首先从内存中找到该key值所对应的汇总树,然后从根节点开始匹配,查询对应的时间区间,发现查询区间被汇总树第二层节点中第一个节点的时间区间覆盖,因此将查询转变为从汇总树第二层节点中第一个节点开始查询,然后发现查询区间被汇总树第三层节点中第一个节点的时间区间覆盖,再将查询转变为从汇总树第三层节点中第一个节点开始查询,然后发现查询区间是第四层节点中第一个节点和第二个节点表示的时间区间的合并,所以将查询转换为对汇总树第四层节点中第一个节点和第二个节点分别进行查询,然后将查询结果合并求最大值。
在一种可选的实施方式中,在搜寻所述待查询时间区间对应的汇总树的一个或者多个节点时,若待查询时间区间没有完整覆盖待查询汇总数据对应的汇总树中一层节点中的一个节点时,将待查询汇总数据对应的汇总树中一层节点中的上边界节点和下边界节点的汇总数据丢弃,并保留待查询汇总数据对应的汇总树中一层节点中除上边界节点和下边界节点外的其他节点的汇总数据。
上述可以理解为,在搜寻待查询区间对应的汇总树的一个或多个节点时,当遍历到汇总树中某一层节点,如果这一层节点中的某一个节点没有被查询时间区间完整覆盖,需要舍弃这一层节点中的上边界节点和下边界节点的汇总数据,保留这一层节点中的其他节点的汇总数据。
举例说明,如图5所示,当查询区间不是完整地覆盖一个汇总树中某一层节点中的一个节点时候,为保证数据的正确性,需要丢弃所查询的汇总树这一层节点中上边界和下边界所在的节点(例如图5中第四层最左和最右两个节点),其他节点的汇总数据会被加入最终结果的计算中(例如图5中第四层第二个节点和从右数倒数第二个节点之间的节点的汇总数据被加入最终结果的计算中)。
本发明的汇总树每一层节点的类型和节点的数量不同,表示的时间区间也不同。通过这种汇总树例如可以存储一个时序30天的汇总数据,包括:min,max,sum和count值,最小支持的时间区间粒度是分钟,仅需4M的存储空间。使用汇总树可以让基于时间区间的汇总数据查询的时间复杂度从O(N)降低到O(log
60N)-O(log
24N)之间。当写出汇总树至硬盘文件时,在硬盘文件的文件头部分保留了汇总树对应的时序的key值以及这个汇总树中每个节点表示的时间区间,这样在查询的时候,不需要对文件内容进行解析就可以直接从文件头部分获取这些信息,判断文件中保存的汇总树是不是待查询的对象,如果不是,则可跳过不再对文件内容(数据部分)进行解析,加快查询的速度。
本发明实施例所述的一种车载数据存储系统,所述系统用于车载数据库,所述系统包括:
数据获取模块,用于在当前时间段,获取写入车载数据库的各条待处理时序数据;
数据写入模块,用于根据各条待处理时序数据,分别确定车载数据库中的各个待存储节点以及各个待存储节点中的各个待存储分区,并将各条待处理时序数据分别写入各个待存储分区中的各个时序;
数据合并模块,用于将写入各个待存储分区中的各条时序数据分别写入对应的各个内存数据桶中,并在各个内存数据桶中进行各条时序数据的合并。
在一种可选的实施方式中,数据写入模块用于:
根据一条待处理时序数据的关键字,确定待处理时序数据的关键字对应的哈希值;
根据哈希值,确定待处理时序数据对应的待存储节点、待存储节点中的待存储分区以及待存储分区中对应的时序,将待处理时序数据写入待存储分 区中对应的时序;
依次类推,将各条待处理时序数据分别写入各个待存储分区中的各个时序。
在一种可选的实施方式中,数据合并模块用于:
将一个待存储分区中的各个时序在当前时间段内写入的各条时序数据分别写入各个时序对应的内存数据桶中;
在一个内存数据桶中,对写入内存数据桶的各条时序数据进行合并;
依次类推,将写入各个待存储分区中的各条时序数据分别写入对应的各个内存数据桶中,并在各个内存数据桶中进行各条时序数据的合并。
在一种可选的实施方式中,将各条待处理时序数据分别写入各个待存储分区中的各个时序,包括:
通过各条待处理时序数据中的时间戳差值和指标值差值,对各条待处理时序数据分别进行压缩;
将压缩后的各条待处理时序数据分别写入各个待存储分区中的各个时序。
在一种可选的实施方式中,通过各条待处理时序数据中的时间戳差值和指标值差值,对各条待处理时序数据分别进行压缩,包括:
将第一待处理时序数据写入其对应的待存储分区;
确定写入待存储分区的第二待处理时序数据与第一待处理时序数据的第一时间戳差值和第一指标值差值,将第一时间戳差值和第一指标值差值作为压缩后的第二待处理时序数据存储至待存储分区中;
确定写入待存储分区的第三待处理时序数据与第二待处理时序数据的第二时间戳差值和第二指标值差值,并确定第二时间戳差值和第一时间戳差值之间的第三时间戳差值,以及第二指标值差值和第一指标值差值的第三指标值差值,将第三时间戳差值和第三指标值差值作为压缩后的第三待处理时序数据存储至待存储分区中;
依次类推,将各条待处理时序数据通过各个时间戳差值和各个指标值差值分别进行压缩存储。
在一种可选的实施方式中,各个时间戳差值和各个指标值差值通过不同的编码方式表示并存储。
在一种可选的实施方式中,各个时间戳差值和各个指标值差值通过不同的编码方式表示并存储,包括:
根据各个时间戳差值和各个指标值差值的值,分别确定对应的编码方式;
若一个时间戳差值或一个指标值差的值大于或等于第一值且小于第二值,将时间戳差值或指标值差值用第一编码方式表示并存储;
若一个时间戳差值或一个指标值差值的值大于或等于第二值且小于第三值,将时间戳差值或指标值差值用第二编码方式表示并存储;
依次类推,对各个时间戳差值和各个指标值差值通过不同的编码方式表示并存储。
在一种可选的实施方式中,所述系统还包括:
第一数据写出模块,用于确定写入车载硬盘的待处理合并时序数据,其中,待处理合并时序数据为各个内存数据桶中所合并的各条时序数据;将待处理合并时序数据写入车载硬盘中。
在一种可选的实施方式中,将待处理合并时序数据写入车载硬盘中,包括:将待处理合并时序数据以数据块方式进行压缩,并将压缩后的各数据块写入车载硬盘中。
在一种可选的实施方式中,所述系统还包括:
日志模块,用于确定待记录时序数据,其中,待记录时序数据包括各个内存数据桶写入车载硬盘后的剩余时序数据以及各个待存储分区中的各个时序的剩余时序数据;对待记录时序数据记录日志信息,并确定日志信息是否写入车载硬盘以及写入车载硬盘的写入频率;若确定日志信息写入车载硬盘,将日志信息以写入频率写入车载硬盘。
在一种可选的实施方式中,所述系统还包括:
数据删除模块,用于根据存储时间确定车载硬盘中的待删除时序数据;
将待删除时序数据进行删除,以使待处理合并时序数据写入车载硬盘。
在一种可选的实施方式中,所述系统还包括:
数据汇总模块,用于确定各个待存储节点中的各个时序的汇总数据;将各个时序的汇总数据分别按照汇总树进行存储,以使从内存中读取各个时序的汇总数据;
其中,每个汇总树包括根节点以及沿根节点从上至下的多层节点,每个节点存储一个时序在一个时间区间内的汇总数据。
在一种可选的实施方式中,将各个时序的汇总数据分别按照汇总树进行存储,包括:
对一个时序的汇总树,确定第n层节点中的各个节点所代表的第n时间区间,将时序内的时序数据在各个第n时间区间内计算的汇总数据分别存储至第n层节点中的各个节点;
确定第n-1层节点中的各个节点所代表的第n-1时间区间,将时序内的时序数据在各个第n-1时间区间内计算的汇总数据分别存储至第n-1层节点中的各个节点;
依次类推,将时序内的时序数据在各个时间区间内的汇总数据分别存储至汇总树中的各个节点;
依次类推,对各个时序的汇总数据分别按照汇总树进行存储。
在一种可选的实施方式中,每个汇总树中的各个节点分别存储从父节点的开始时间到当前节点的开始时间的偏移量,以使通过父节点的开始时间和父节点的开始时间到当前节点的开始时间的偏移量确定当前节点代表的时间区间的开始时间。
在一种可选的实施方式中,所述系统还包括:
第二数据写出模块,用于将各个汇总树写入车载硬盘中,以使从车载硬盘中查询各个时序的汇总数据;
其中,每个汇总树对应的硬盘文件包含文件头部分和数据部分,文件头中包括汇总树对应的时序的关键字以及汇总树的各个节点的时间区间,数据部分包括及汇总树的各个节点存储的汇总数据。
在一种可选的实施方式中,所述系统还包括:
数据查询模块,用于确定待查询时间区间和待查询汇总数据对应的时序 的关键字,根据待查询汇总数据对应的时序的关键字从车载硬盘中找到待查询汇总数据对应的硬盘文件;从硬盘文件中载入待查询汇总数据对应的汇总树,从待查询汇总树对应的汇总树的父节点开始匹配,逐层遍历待查询汇总数据对应的汇总树的多层节点,直至搜寻到待查询时间区间对应的一个或者多个节点,从查询时间区间对应的一个或者多个节点中获取汇总数据。
在一种可选的实施方式中,所述在搜寻待查询时间区间对应的一个或者多个节点时,
若待查询时间区间包括待查询汇总数据对应的汇总树中一层节点中的一个节点时,获取一层节点中的一个节点对应的汇总数据,并将一层节点中的一个节点对应的汇总数据作为查询结果;
若待查询时间区间包括待查询汇总数据对应的汇总树中一层节点中的多个节点时,分别获取一层节点中的多个节点对应的汇总数据,并将一层节点中的多个节点对应的汇总数据进行合并,合并后的汇总数据作为查询结果。
在一种可选的实施方式中,在搜寻待查询时间区间对应的一个或者多个节点时,
若待查询时间没有完整覆盖待查询汇总数据对应的汇总树中一层节点中的一个节点时,将待查询汇总数据对应的汇总树中一层节点中的上边界节点和下边界节点的汇总数据丢弃,并保留待查询汇总数据对应的汇总树中一层节点中除上边界节点和下边界节点外的其他节点的汇总数据。
本公开还涉及一种电子设备,包括服务器、终端等。该电子设备包括:至少一个处理器;与至少一个处理器通信连接的存储器;以及与存储介质通信连接的通信组件,所述通信组件在处理器的控制下接收和发送数据;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行以实现上述实施例中的车载数据存储方法。
在一种可选的实施方式中,存储器作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。处理器通过运行存储在存储器中的非易失性软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现车载数据存储方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储选项列表等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器, 例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至外接设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个模块存储在存储器中,当被一个或者多个处理器执行时,执行上述任意方法实施例中的车载数据存储方法。
上述产品可执行本申请实施例所提供的车载数据存储方法,具备执行方法相应的功能模块和有益效果,未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的车载数据存储方法。
本公开还涉及一种计算机可读存储介质,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行上述部分或全部的车载数据存储方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
此外,本领域普通技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本领域技术人员应理解,尽管已经参考示例性实施例描述了本发明,但是在不脱离本发明的范围的情况下,可进行各种改变并可用等同物替换其元件。另外,在不脱离本发明的实质范围的情况下,可进行许多修改以使特定情况或材料适应本发明的教导。因此,本发明不限于所公开的特定实施例,而是本发明将包括落入所附权利要求范围内的所有实施例。
Claims (38)
- 一种车载数据存储方法,其特征在于,所述方法用于车载数据库,所述方法包括:在当前时间段,获取写入所述车载数据库的各条待处理时序数据;根据所述各条待处理时序数据,分别确定所述车载数据库中的各个待存储节点以及所述各个待存储节点中的各个待存储分区,并将所述各条待处理时序数据分别写入所述各个待存储分区中的各个时序;将写入所述各个待存储分区中的各条时序数据分别写入对应的各个内存数据桶中,并在所述各个内存数据桶中进行各条时序数据的合并。
- 如权利要求1所述的方法,其中,根据所述各条待处理时序数据,分别确定所述车载数据库中的各个待存储节点以及所述各个待存储节点中的各个待存储分区,并将所述各条待处理时序数据分别写入所述各个待存储分区中的各个时序,包括:根据一条待处理时序数据的关键字,确定所述待处理时序数据的关键字对应的哈希值;根据所述哈希值,确定所述待处理时序数据对应的待存储节点、所述待存储节点中的待存储分区以及所述待存储分区中对应的时序,将所述待处理时序数据写入所述待存储分区中对应的时序;依次类推,将所述各条待处理时序数据分别写入所述各个待存储分区中的各个时序。
- 如权利要求2所述的方法,其中,将写入所述各个待存储分区中的各条时序数据分别写入对应的各个内存数据桶中,并在所述各个内存数据桶中进行各条时序数据的合并,包括:将一个待存储分区中的各个时序在当前时间段内写入的各条时序数据分别写入所述各个时序对应的内存数据桶中;在一个内存数据桶中,对写入所述内存数据桶的各条时序数据进行合并;依次类推,将写入所述各个待存储分区中的各条时序数据分别写入对应的各个内存数据桶中,并在所述各个内存数据桶中进行各条时序数据的合并。
- 如权利要求1所述的方法,其中,将所述各条待处理时序数据分别写 入所述各个待存储分区中的各个时序,包括:通过所述各条待处理时序数据中的时间戳差值和指标值差值,对所述各条待处理时序数据分别进行压缩;将压缩后的所述各条待处理时序数据分别写入所述各个待存储分区中的各个时序。
- 如权利要求4所述的方法,其中,通过所述各条待处理时序数据中的时间戳差值和指标值差值,对所述各条待处理时序数据分别进行压缩,包括:将第一待处理时序数据写入其对应的待存储分区;确定写入所述待存储分区的第二待处理时序数据与所述第一待处理时序数据的第一时间戳差值和第一指标值差值,将所述第一时间戳差值和所述第一指标值差值作为压缩后的第二待处理时序数据存储至所述待存储分区中;确定写入所述待存储分区的第三待处理时序数据与所述第二待处理时序数据的第二时间戳差值和第二指标值差值,并确定所述第二时间戳差值和所述第一时间戳差值之间的第三时间戳差值,以及所述第二指标值差值和所述第一指标值差值的第三指标值差值,将所述第三时间戳差值和所述第三指标值差值作为压缩后的第三待处理时序数据存储至所述待存储分区中;依次类推,将所述各条待处理时序数据通过各个时间戳差值和各个指标值差值分别进行压缩存储。
- 如权利要求4所述的方法,其中,所述各个时间戳差值和所述各个指标值差值通过不同的编码方式表示并存储。
- 如权利要求6所述的方法,其中,所述各个时间戳差值和所述各个指标值差值通过不同的编码方式表示并存储,包括:根据所述各个时间戳差值和所述各个指标值差值的值,分别确定对应的编码方式;若一个时间戳差值或一个指标值差的值大于或等于第一值且小于第二值,将所述时间戳差值或所述指标值差值用第一编码方式表示并存储;若一个时间戳差值或一个指标值差值的值大于或等于第二值且小于第三值,将所述时间戳差值或所述指标值差值用第二编码方式表示并存储;依次类推,对所述各个时间戳差值和所述各个指标值差值通过不同的编码方式表示并存储。
- 如权利要求1所述的方法,其中,所述方法还包括:确定写入车载硬盘的待处理合并时序数据,其中,所述待处理合并时序数据为所述各个内存数据桶中所合并的各条时序数据;将所述待处理合并时序数据写入所述车载硬盘中。
- 如权利要求8所述的方法,其中,将所述待处理合并时序数据写入所述车载硬盘中,包括:将所述待处理合并时序数据以数据块方式进行压缩,并将压缩后的各数据块写入所述车载硬盘中。
- 如权利要求8所述的方法,其中,所述方法还包括:确定待记录时序数据,其中,所述待记录时序数据包括所述各个内存数据桶写入所述车载硬盘后的剩余时序数据以及所述各个待存储分区中的各个时序的剩余时序数据;对所述待记录时序数据记录日志信息,并确定所述日志信息是否写入所述车载硬盘以及写入所述车载硬盘的写入频率;若确定所述日志信息写入所述车载硬盘,将所述日志信息以所述写入频率写入所述车载硬盘。
- 如权利要求8所述的方法,其中,所述方法还包括:根据存储时间确定所述车载硬盘中的待删除时序数据;将所述待删除时序数据进行删除,以使所述待处理合并时序数据写入所述车载硬盘。
- 如权利要求1所述的方法,其中,所述方法还包括:确定所述各个待存储节点中各个时序的汇总数据;将所述各个时序的汇总数据分别按照汇总树进行存储,以使从内存中读取所述各个时序的汇总数据,其中,所述内存包括各个时序、各个内存数据桶和各个汇总树;其中,每个汇总树包括根节点以及沿所述根节点从上至下的多层节点, 每个节点存储一个时序在一个时间区间内的汇总数据。
- 如权利要求12所述的方法,其中,将所述各个时序的汇总数据分别按照汇总树进行存储,包括:对一个时序的汇总树,确定第n层节点中的各个节点所代表的第n时间区间,将所述时序内的时序数据在各个第n时间区间内计算的汇总数据分别存储至所述第n层节点中的各个节点;确定第n-1层节点中的各个节点所代表的第n-1时间区间,将所述时序内的时序数据在各个第n-1时间区间内计算的汇总数据分别存储至所述第n-1层节点中的各个节点;依次类推,将所述时序内的时序数据在各个时间区间内的汇总数据分别存储至所述汇总树中的各个节点;依次类推,对所述各个时序的汇总数据分别按照汇总树进行存储。
- 如权利要求13所述的方法,其中,每个汇总树中的各个节点分别存储从所述父节点的开始时间到当前节点的开始时间的偏移量,以使通过所述父节点的开始时间和所述父节点的开始时间到当前节点的开始时间的偏移量确定所述当前节点代表的时间区间的开始时间。
- 如权利要求13所述的方法,其中,所述方法还包括:将所述各个汇总树写入车载硬盘中,以使从所述车载硬盘中查询所述各个时序的汇总数据;其中,每个汇总树对应的硬盘文件包含文件头部分和数据部分,所述文件头部分包括汇总树对应的时序的关键字以及汇总树的各个节点对应的时间区间,所述数据部分包括汇总树的各个节点存储的汇总数据。
- 如权利要求15所述的方法,其中,所述方法还包括:确定待查询时间区间和待查询汇总数据对应的时序的关键字;根据所述待查询汇总数据对应的时序的关键字从所述车载硬盘中找到所述待查询汇总数据对应的硬盘文件;从所述硬盘文件中载入所述待查询汇总数据对应的汇总树,从所述待查询汇总数据对应的汇总树的父节点开始匹配,逐层遍历所述待查询汇总数据对应的汇总树的多层节点,直至搜寻到所述待查询时间区间对应的一个或者 多个节点,从所述查询时间区间对应的一个或者多个节点中获取汇总数据。
- 如权利要求16所述的方法,其中,在搜寻所述待查询时间区间对应的一个或者多个节点时,若所述待查询时间区间包括所述待查询汇总数据对应的汇总树中一层节点中的一个节点时,获取所述一层节点中的一个节点的汇总数据,并将所述一层节点中的一个节点的汇总数据作为查询结果;若所述待查询时间区间包括所述待查询汇总数据对应的汇总树中一层节点中的多个节点时,分别获取所述一层节点中的多个节点的汇总数据,并将所述一层节点中的多个节点的汇总数据进行合并,合并后的汇总数据作为查询结果。
- 如权利要求16所述的方法,其中,在搜寻所述待查询时间区间对应的一个或者多个节点时,若所述待查询时间区间没有完整覆盖所述待查询汇总数据对应的汇总树中一层节点中的一个节点时,将所述待查询汇总数据对应的汇总树中一层节点中的上边界节点和下边界节点的汇总数据丢弃,并保留所述待查询汇总数据对应的汇总树中一层节点中除所述上边界节点和所述下边界节点外的其他节点的汇总数据。
- 一种车载数据存储系统,其特征在于,所述系统用于车载数据库,所述系统包括:数据获取模块,用于在当前时间段,获取写入所述车载数据库的各条待处理时序数据;数据写入模块,用于根据所述各条待处理时序数据,分别确定所述车载数据库中的各个待存储节点以及所述各个待存储节点中的各个待存储分区,并将所述各条待处理时序数据分别写入所述各个待存储分区中的各个时序;数据合并模块,用于将写入所述各个待存储分区中的各条时序数据分别写入对应的各个内存数据桶中,并在所述各个内存数据桶中进行各条时序数据的合并。
- 如权利要求19所述的系统,其中,所述数据写入模块用于:根据一条待处理时序数据的关键字,确定所述待处理时序数据的关键字对应的哈希值;根据所述哈希值,确定所述待处理时序数据对应的待存储节点、所述待存储节点中的待存储分区以及所述待存储分区中对应的时序,将所述待处理时序数据写入所述待存储分区中对应的时序;依次类推,将所述各条待处理时序数据分别写入所述各个待存储分区中的各个时序。
- 如权利要求20所述的系统,其中,所述数据合并模块用于:将一个待存储分区中的各个时序在当前时间段内写入的各条时序数据分别写入所述各个时序对应的内存数据桶中;在一个内存数据桶中,对写入所述内存数据桶的各条时序数据进行合并;依次类推,将写入所述各个待存储分区中的各条时序数据分别写入对应的各个内存数据桶中,并在所述各个内存数据桶中进行各条时序数据的合并。
- 如权利要求19所述的系统,其中,将所述各条待处理时序数据分别写入所述各个待存储分区中的各个时序,包括:通过所述各条待处理时序数据中的时间戳差值和指标值差值,对所述各条待处理时序数据分别进行压缩;将压缩后的所述各条待处理时序数据分别写入所述各个待存储分区中的各个时序。
- 如权利要求22所述的系统,其中,通过所述各条待处理时序数据中的时间戳差值和指标值差值,对所述各条待处理时序数据分别进行压缩,包括:将第一待处理时序数据写入其对应的待存储分区;确定写入所述待存储分区的第二待处理时序数据与所述第一待处理时序数据的第一时间戳差值和第一指标值差值,将所述第一时间戳差值和所述第一指标值差值作为压缩后的第二待处理时序数据存储至所述待存储分区中;确定写入所述待存储分区的第三待处理时序数据与所述第二待处理时序数据的第二时间戳差值和第二指标值差值,并确定所述第二时间戳差值和所述第一时间戳差值之间的第三时间戳差值,以及所述第二指标值差值和所述第一指标值差值的第三指标值差值,将所述第三时间戳差值和所述第三指标 值差值作为压缩后的第三待处理时序数据存储至所述待存储分区中;依次类推,将所述各条待处理时序数据通过各个时间戳差值和各个指标值差值分别进行压缩存储。
- 如权利要求22所述的系统,其中,所述各个时间戳差值和所述各个指标值差值通过不同的编码方式表示并存储。
- 如权利要求24所述的系统,其中,所述各个时间戳差值和所述各个指标值差值通过不同的编码方式表示并存储,包括:根据所述各个时间戳差值和所述各个指标值差值的值,分别确定对应的编码方式;若一个时间戳差值或一个指标值差的值大于或等于第一值且小于第二值,将所述时间戳差值或所述指标值差值用第一编码方式表示并存储;若一个时间戳差值或一个指标值差值的值大于或等于第二值且小于第三值,将所述时间戳差值或所述指标值差值用第二编码方式表示并存储;依次类推,对所述各个时间戳差值和所述各个指标值差值通过不同的编码方式表示并存储。
- 如权利要求19所述的系统,其中,所述系统还包括:第一数据写出模块,用于确定写入车载硬盘的待处理合并时序数据,其中,所述待处理合并时序数据为所述各个内存数据桶中所合并的各条时序数据;将所述待处理合并时序数据写入所述车载硬盘中。
- 如权利要求26所述的系统,其中,将所述待处理合并时序数据写入所述车载硬盘中,包括:将所述待处理合并时序数据以数据块方式进行压缩,并将压缩后的各数据块写入所述车载硬盘中。
- 如权利要求26所述的系统,其中,所述系统还包括:日志模块,用于确定待记录时序数据,其中,所述待记录时序数据包括所述各个内存数据桶写入所述车载硬盘后的剩余时序数据以及所述各个待存储分区中的各个时序的剩余时序数据;对所述待记录时序数据记录日志信息,并确定所述日志信息是否写入所述车载硬盘以及写入所述车载硬盘的写入频 率;若确定所述日志信息写入所述车载硬盘,将所述日志信息以所述写入频率写入所述车载硬盘。
- 如权利要求26所述的系统,其中,所述系统还包括:数据删除模块,用于根据存储时间确定所述车载硬盘中的待删除时序数据;将所述待删除时序数据进行删除,以使所述待处理合并时序数据写入所述车载硬盘。
- 如权利要求19所述的系统,其中,所述系统还包括:数据汇总模块,用于确定所述各个待存储节点中的各个时序的汇总数据;将所述各个时序的汇总数据分别按照汇总树进行存储,以使从内存中读取所述各个时序的汇总数据,其中,所述内存包括各个时序、各个内存数据桶和各个汇总树;其中,每个汇总树包括根节点以及沿所述根节点从上至下的多层节点,每个节点存储一个时序在一个时间区间内的汇总数据。
- 如权利要求30所述的系统,其中,将所述各个时序的汇总数据分别按照汇总树进行存储,包括:对一个时序的汇总树,确定第n层节点中的各个节点所代表的第n时间区间,将所述时序内的时序数据在各个第n时间区间内计算的汇总数据分别存储至所述第n层节点中的各个节点;确定第n-1层节点中的各个节点所代表的第n-1时间区间,将所述时序内的时序数据在各个第n-1时间区间内计算的汇总数据分别存储至所述第n-1层节点中的各个节点;依次类推,将所述时序内的时序数据在各个时间区间内的汇总数据分别存储至所述汇总树中的各个节点;依次类推,对所述各个时序的汇总数据分别按照汇总树进行存储。
- 如权利要求31所述的系统,其中,每个汇总树中的各个节点分别存储从所述父节点的开始时间到当前节点的开始时间的偏移量,以使通过所述父节点的开始时间和所述父节点的开始时间到当前节点的开始时间的偏移量确定所述当前节点代表的时间区间的开始时间。
- 如权利要求31所述的系统,其中,所述系统还包括:第二数据写出模块,用于将所述各个汇总树写入车载硬盘中,以使从所述车载硬盘中查询所述各个时序的汇总数据;其中,每个汇总树对应的硬盘文件包含文件头部分和数据部分,所述文件头部分包括汇总树对应的时序的关键字以及汇总树的各个节点的时间区间,所述数据部分包括及汇总树的各个节点存储的汇总数据。
- 如权利要求33所述的系统,其中,所述系统还包括:数据查询模块,用于确定待查询时间区间和待查询汇总数据对应的时序的关键字,根据所述待查询汇总数据对应的时序的关键字从所述车载硬盘中找到所述待查询汇总数据对应的硬盘文件;从所述硬盘文件中载入所述待查询汇总数据对应的汇总树,从所述待查询汇总数据对应的汇总树的父节点开始匹配,逐层遍历所述待查询汇总数据对应的汇总树的多层节点,直至搜寻到所述待查询时间区间对应的一个或者多个节点,从所述查询时间区间对应的一个或者多个节点中获取汇总数据。
- 如权利要求34所述的系统,其中,在搜寻所述待查询时间区间对应的一个或者多个节点时,若所述待查询时间区间包括所述待查询汇总数据对应的汇总树中一层节点中的一个节点时,获取所述一层节点中的一个节点对应的汇总数据,并将所述一层节点中的一个节点的汇总数据作为查询结果;若所述待查询时间区间包括所述待查询汇总数据对应的汇总树中一层节点中的多个节点时,分别获取所述一层节点中的多个节点对应的汇总数据,并将所述一层节点中的多个节点对应的汇总数据进行合并,合并后的汇总数据作为查询结果。
- 如权利要求34所述的系统,其中,在搜寻所述待查询时间区间对应的一个或者多个节点时,若所述待查询时间区间没有完整覆盖所述待查询汇总数据对应的汇总树中一层节点中的一个节点时,将所述待查询汇总数据对应的汇总树中一层节点中的上边界节点和下边界节点的汇总数据丢弃,并保留所述待查询汇总数据对应的汇总树中一层节点中除所述上边界节点和所述下边界节点外的其他节点的汇总数据。
- 一种电子设备,包括存储器和处理器,其特征在于,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被处理器执行以实现如权利要求1-17中任一项所述的方法。
- 一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行以实现如权利要求1-17中任一项所述的方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022580360A JP2023531751A (ja) | 2020-06-24 | 2020-06-24 | 車載データ記憶方法およびシステム |
PCT/CN2020/098216 WO2021258360A1 (zh) | 2020-06-24 | 2020-06-24 | 一种车载数据存储方法及系统 |
CN202080009529.3A CN113348450A (zh) | 2020-06-24 | 2020-06-24 | 一种车载数据存储方法及系统 |
EP20941877.1A EP4174675A4 (en) | 2020-06-24 | 2020-06-24 | METHOD AND SYSTEM FOR ON-BOARD DATA STORAGE |
US18/003,466 US20230252029A1 (en) | 2020-06-24 | 2020-06-24 | On-board data storage method and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/098216 WO2021258360A1 (zh) | 2020-06-24 | 2020-06-24 | 一种车载数据存储方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021258360A1 true WO2021258360A1 (zh) | 2021-12-30 |
Family
ID=77468483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/098216 WO2021258360A1 (zh) | 2020-06-24 | 2020-06-24 | 一种车载数据存储方法及系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230252029A1 (zh) |
EP (1) | EP4174675A4 (zh) |
JP (1) | JP2023531751A (zh) |
CN (1) | CN113348450A (zh) |
WO (1) | WO2021258360A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115391355A (zh) * | 2022-10-26 | 2022-11-25 | 本原数据(北京)信息技术有限公司 | 数据处理方法、装置、设备及存储介质 |
CN116561171A (zh) * | 2023-07-10 | 2023-08-08 | 浙江邦盛科技股份有限公司 | 一种倾斜数据双时序分布处理方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150081719A1 (en) * | 2013-09-19 | 2015-03-19 | Suprio Ray | Parallel Spatio Temporal Indexing for High-Update Workloads and Query Processing |
CN106648446A (zh) * | 2015-10-30 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种用于时序数据的存储方法、装置及电子设备 |
CN107451176A (zh) * | 2016-05-30 | 2017-12-08 | 恩芬森株式会社 | 数据复制方法及其装置 |
CN108021650A (zh) * | 2017-11-30 | 2018-05-11 | 冶金自动化研究设计院 | 一种时序数据的高效存储和读取系统 |
CN110825733A (zh) * | 2019-10-08 | 2020-02-21 | 华中科技大学 | 一种面向多采样流的时间序列数据管理方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7293024B2 (en) * | 2002-11-14 | 2007-11-06 | Seisint, Inc. | Method for sorting and distributing data among a plurality of nodes |
US8577704B2 (en) * | 2007-12-10 | 2013-11-05 | Modelsheet Software, Llc | Automatically generating formulas based on parameters of a model |
US8010704B2 (en) * | 2008-05-29 | 2011-08-30 | GM Global Technology Operations LLC | Method of efficient compression for measurement data |
US9128965B1 (en) * | 2013-08-07 | 2015-09-08 | Amazon Technologies, Inc. | Configurable-capacity time-series tables |
-
2020
- 2020-06-24 US US18/003,466 patent/US20230252029A1/en active Pending
- 2020-06-24 WO PCT/CN2020/098216 patent/WO2021258360A1/zh unknown
- 2020-06-24 CN CN202080009529.3A patent/CN113348450A/zh active Pending
- 2020-06-24 EP EP20941877.1A patent/EP4174675A4/en active Pending
- 2020-06-24 JP JP2022580360A patent/JP2023531751A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150081719A1 (en) * | 2013-09-19 | 2015-03-19 | Suprio Ray | Parallel Spatio Temporal Indexing for High-Update Workloads and Query Processing |
CN106648446A (zh) * | 2015-10-30 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种用于时序数据的存储方法、装置及电子设备 |
CN107451176A (zh) * | 2016-05-30 | 2017-12-08 | 恩芬森株式会社 | 数据复制方法及其装置 |
CN108021650A (zh) * | 2017-11-30 | 2018-05-11 | 冶金自动化研究设计院 | 一种时序数据的高效存储和读取系统 |
CN110825733A (zh) * | 2019-10-08 | 2020-02-21 | 华中科技大学 | 一种面向多采样流的时间序列数据管理方法及系统 |
Non-Patent Citations (1)
Title |
---|
See also references of EP4174675A4 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115391355A (zh) * | 2022-10-26 | 2022-11-25 | 本原数据(北京)信息技术有限公司 | 数据处理方法、装置、设备及存储介质 |
CN115391355B (zh) * | 2022-10-26 | 2023-01-17 | 本原数据(北京)信息技术有限公司 | 数据处理方法、装置、设备及存储介质 |
CN116561171A (zh) * | 2023-07-10 | 2023-08-08 | 浙江邦盛科技股份有限公司 | 一种倾斜数据双时序分布处理方法、装置、设备及介质 |
CN116561171B (zh) * | 2023-07-10 | 2023-09-15 | 浙江邦盛科技股份有限公司 | 一种倾斜数据双时序分布处理方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
EP4174675A4 (en) | 2024-02-28 |
EP4174675A1 (en) | 2023-05-03 |
CN113348450A (zh) | 2021-09-03 |
JP2023531751A (ja) | 2023-07-25 |
US20230252029A1 (en) | 2023-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102521405B (zh) | 支持高速加载的海量结构化数据存储、查询方法和系统 | |
US7805416B1 (en) | File system query and method of use | |
CN102521406B (zh) | 海量结构化数据复杂查询任务的分布式查询方法和系统 | |
TWI737395B (zh) | 日誌結構儲存系統及方法 | |
TWI733514B (zh) | 儲存系統、區塊鏈網路的網路節點以及基於區塊鏈的日誌結構儲存系統 | |
EP2904495B1 (en) | Locality aware, two-level fingerprint caching | |
CN102521269B (zh) | 一种基于索引的计算机连续数据保护方法 | |
US8135763B1 (en) | Apparatus and method for maintaining a file system index | |
US20200401557A1 (en) | Metadata compaction in a distributed storage system | |
US20170068675A1 (en) | Method and system for adapting a database kernel using machine learning | |
TW202111585A (zh) | 日誌結構儲存系統 | |
US11429566B2 (en) | Approach for a controllable trade-off between cost and availability of indexed data in a cloud log aggregation solution such as splunk or sumo | |
WO2021258360A1 (zh) | 一种车载数据存储方法及系统 | |
US20180150472A1 (en) | Method and apparatus for file compaction in key-value store system | |
CN102291256B (zh) | 一种监控数据的查询方法和设备 | |
US20190087437A1 (en) | Scheduling database compaction in ip drives | |
CN104584524A (zh) | 聚合中介系统中的数据 | |
US11755589B2 (en) | Delaying segment generation in database systems | |
CN114706836B (zh) | 一种基于机载嵌入式数据库的数据生命周期管理方法 | |
DE112020005227T5 (de) | Speicherzustandsüberwachung für differenziertedatenwiederherstellungskonfigurationen | |
US11809421B2 (en) | System and method for data analytics | |
KR101666440B1 (ko) | 환형큐 기반의 인-메모리 데이터베이스 시스템에서의 데이터 처리방법 | |
CN108959614A (zh) | 一种快照管理方法、系统、装置、设备及可读存储介质 | |
CN112711564B (zh) | 合并处理方法以及相关设备 | |
CN114185884A (zh) | 基于列存数据的流式数据处理方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20941877 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2022580360 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2020941877 Country of ref document: EP Effective date: 20230124 |