CN113032453A - 数据的存储和解压方法、装置、电子设备及存储介质 - Google Patents

数据的存储和解压方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN113032453A
CN113032453A CN202110215197.0A CN202110215197A CN113032453A CN 113032453 A CN113032453 A CN 113032453A CN 202110215197 A CN202110215197 A CN 202110215197A CN 113032453 A CN113032453 A CN 113032453A
Authority
CN
China
Prior art keywords
data
time sequence
data block
time
linked list
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.)
Granted
Application number
CN202110215197.0A
Other languages
English (en)
Other versions
CN113032453B (zh
Inventor
陈键冬
李旦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Huya Technology Co Ltd
Original Assignee
Guangzhou Huya Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Huya Technology Co Ltd filed Critical Guangzhou Huya Technology Co Ltd
Priority to CN202110215197.0A priority Critical patent/CN113032453B/zh
Publication of CN113032453A publication Critical patent/CN113032453A/zh
Application granted granted Critical
Publication of CN113032453B publication Critical patent/CN113032453B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2474Sequence data queries, e.g. querying versioned data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2315Optimistic concurrency control
    • G06F16/2322Optimistic concurrency control using timestamps
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Fuzzy Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本申请实施例提供了时域数据的存储和解压方法、装置、电子设备及存储介质,涉及数据处理技术领域。该时域数据的存储方法包括以下步骤:读取待存储的第一时序数据,将所述第一时序数据存入冗余数据块中;在冗余数据块存满后,对冗余数据块中的第一时序数据的每个数据结点的数据进行数据压缩运算得到第二时序数据,将第二时序数据存入链表的链表数据块中;当所述链表数据块达到第一预设数量时,将最先存入数据的链表数据块进行删除。本申请的技术方案能够能够减小时域数据的存储空间。

Description

数据的存储和解压方法、装置、电子设备及存储介质
技术领域
本申请实施例涉及数据处理技术领域,具体而言,本申请实施例涉及时域数据的存储和解压方法、装置、电子设备及存储介质。
背景技术
在系统数据的处理过程中,由于受限于存储资源的限制或节约系统资源,通常将获取的时序数据进行压缩存储,并根据查询等指令,对相应的压缩数据进行解压。
目前业内的时序数据压缩方案中,通常设置告警功能。将该告警功能存储于所有来自不同服务器不同应用的业务数据最近N个数据结点。按照标准单链表的形式,利用有限长度的缓存策略,当超过长度限制时淘汰最旧的数据。每个数据结点通常需要占用8个字节进行存储,但是,对于大多数的每个数据结点并不需要完全使用8个字节进行数据存储。
对于一个业务数据而言通常包含有多条时间线。原有的数据结点的数据存储方式会所需要存储的数据是海量的,而且每条时间线都是独立的,互不影响的。如果需要更长连续时间的数据,那单链表长度就会变得更加长,这种无疑会造成比较昂贵的内存消耗。
发明内容
为了能够解决数据存储地内存资源的消耗大的技术问题,本申请实施例提供了一种数据的存储方法、装置、电子设备及存储介质。
第一方面,本申请实施例提供了一种时域数据的存储方法,该方法包括以下步骤:
读取待存储的第一时序数据,将所述第一时序数据存入冗余数据块中;
在冗余数据块存满后,对冗余数据块中的第一时序数据的每个数据结点的数据进行数据压缩运算得到第二时序数据,将第二时序数据存入链表的链表数据块中;
当所述链表数据块达到第一预设数量时,将最先存入数据的链表数据块进行删除。
在第一方面的可选实施例中,所述时域数据的存储方法,还包括:配置所述链表,设定所述链表的链表数据块的数量。
在第一方面的可选实施例中,所述将所述第一时序数据存入冗余数据块中的步骤,包括:
根据所述第一时序数据按照生成时间的顺序形成第一数据结点,第一数据结点按照标准单链表进行存储,形成冗余数据块。
在第一方面的可选实施例中,所述对冗余数据块中的第一时序数据的每个数据结点的数据进行数据压缩运算得到第二时序数据的步骤,包括:
计算每相邻两个的第一数据结点之间的数据值的差值,将每个所述差值作为特征值作为第二数据结点的数据值,形成所述第二时序数据。
在第一方面的可选实施例中,所述的时序数据的存储方法,所述形成所述第二时序数据的步骤之后,还包括:
将所述第二数据结点依据生成的时间顺序逐一压缩存储于所述的数据块中,直到所述第二数据结点的数量达到第二预设数量时,将所述链表数据块中的第二数据结点进行打包并冻结,并添加至前一冻结的链表数据块。
第二方面,本申请实施例提供了时序数据的读取方法,用于对第一方面所述的时序数据进行读取,其包括以下步骤:
获取待读取的时序数据的时间戳;
根据所述时间戳确定目标时序数据存储的数据块;
若存储在冗余数据块中,从所述冗余数据块中读取对应的第一时序数据。
在第二方面的可选实施例中,所述时序数据的读取方法,还包括:
若存储在链表数据块中,根据所述时间戳确定对应的第二时序数据存储的链表数据块的位置,根据所述位置得到目标链表数据块;
根据所述目标链表数据块的起始位置读取对应的第二时域数据,并进行数据解压运算得到所述第一时序数据;其中,所述数据压缩运算与数据解压运算相匹配。
第三方面,还提供一种时序数据的存储装置,其包括:
第一读取模块,用于读取待存储的第一时序数据,将所述第一时序数据存入冗余数据块中;
运算模块,用于在冗余数据块存满后,对冗余数据块中的第一时序数据的每个数据结点的数据进行数据压缩运算得到第二时序数据,将第二时序数据存入链表的链表数据块中;
删除模块,用于当所述链表数据块达到第一预设数量时,将最先存入数据的链表数据块进行删除。
第四方面,还提供一种时序数据的读取装置,其包括:
时间戳获取模块,用于获取待读取的时序数据的时间戳;
目标数据块确定模块,用于根据所述时间戳确定时序数据存储的目标数据块;
第二读取模块,用于若存储在冗余数据块中,从所述冗余数据块中读取对应的第一时序数据。
第五方面,提供了一种电子设备,该电子设备包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中一个或多个应用程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序配置用于:执行实现本申请实施例的第一方面所提供的时序数据的存储方法,和/或第二方面所提供的时序数据的读取方法。
第六方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,其特征在于,该程序被处理器执行时实现本申请实施例第一方面所提供的时序数据的存储方法,和/或第二方面所提供的时序数据的读取方法。
本申请实施例提供的技术方案带来的有益效果是:
本申请所提供的时域数据的存储方案,将待存储的第一时序数据先存入冗余数据块中,当存满后,对第一时序数据进行数据压缩运算得到第二时序数据,并将该第二时序数据存入链表数据块中,直至达到链表数据块的预设数量,将最先存入数据的的链表数据块进行删除。该方案能够避免现有技术中仅仅以标准单链表的形式进行数据存储时,当数据结点接近阈值时触发告警所导致的不能满足数据处理对数据量的要求的问题,同时也能够减小时域数据的存储空间。,同时也能够减小时域数据的存储空间。
另外,基于该数据存储方案所提供的时域数据读取方案,当时域数据存储在冗余数据块时,可以通过直接读取其中的数据结点获取时序数据,减少因需要对链表数据块进行数据解压运算获取第一时序数据的几率,从而提高数据的读取效率。
本申请实施例附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本申请实施例的实践了解到。
附图说明
本申请实施例上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请的一个实施例中的时序数据的存储方法的流程示意图;
图2为本申请所提供的实施例的链表的结构图;
图3为本申请的一个实施例中的时序数据的读取方法的流程示意图;
图4为本申请公开的实施例所提供的时序数据的存储装置的结构示意图;
图5为本申请公开的实施例所提供的时序数据的读取装置的结构示意;
图6为本申请一个实施例所提供的一种时序数据的存储和/或时序数据的读取的电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
时序数据是一种按生成时间的顺序记录的数据格式,时序数据有两个比较重要的概念。数据结点:时序数据的数据结点是一个包含timestamp,value的二元组;时间线:一个业务数据能够包含不同的tag组合,也就是一个业务数据可以包括多条时间线。
目前,对于时序数据的存储方法大豆使用Gorilla论文张提到的压缩算法,该算法大都只是使用于海量数据归档的场景中,不适合用于高频率的插入和删除的情况,所以在一般的(timestamp,value)二元组数据类型的内存存储中,大多使用了标准单链表实现,标准单链表能够高效的应对插入和删除的场景。
但是,由于在存储数据时,一般为单链表预设长度,当单链表的数据结点接近设定长度时,会发出告警,提示删除最先形成的数据结点,从而所得到的单链表数据不能满足设定的单链表长度,影响相应的数据存储。
而且,在标准单链表中,每个数据结点通常需要占用8个字节进行存储,但是,对于大多数的每个数据结点并不需要完全使用8个字节进行数据存储。当业务数据包含多条时间线时,所形成的单链表的长度很长,造成海里的数据存储量,造成比较昂贵的内存消耗。
参照图1,图1为本申请的一个实施例中的时序数据的存储方法的流程示意图。
针对上述问题,本申请提供一种时序数据的存储方法,其包括以下步骤:
S110、读取待存储的第一时序数据,将所述第一时序数据存入冗余数据块中。
业务数据根据生成时间进行记录,形成时序数据。在本申请所提供的实施例中,根据业务数据的处理和交互得到处于待存储的状态的时序数据定义为第一时序数据。当存储装置获取该第一时序数据时,首先将其存入冗余数据块中。在本实施例中,该冗余数据块,对于本实施例用于存储数据且包括预设数量N的链表数据块而言,是额外添加的数据块。该冗余数据块是能够根据数据读取请求,直接读取的。
在本实施例中,第一时序数据按照数据的生成时间的顺序形成各个第一数据结点。各个第一数据结点按照数据的生成时间的顺序,按照标准单链表的形式进行存储,形成冗余数据块。
该标准单链表中的每一个第一数据结点是根据Gorilla算法压缩添加至冗余数据块中,每个一个第一数据结点包括8个字节。根据二进制运算并读取。
S120、在冗余数据块存满后,对冗余数据块中的第一时序数据的每个数据结点的数据进行数据压缩运算得到第二时序数据,将第二时序数据存入链表的链表数据块中。
该冗余数据块具有预设的长度阈值,其预设的长度阈值为β。当时序数据存储在该冗余数据块达到长度阈值时,不能继续往该冗余数据块存储数据,这是将该冗余数据块中存储该第一时序数据的每个数据结点的数据通过数据压缩算法进行数据压缩,得到第二时序数据。
在获取该第二时序数据后,并存储链表中。具体是存入到与该冗余数据块相邻的链表数据块中。
在此之前,需要对该链表进行配置,设定该链表的链表数据块的数量。另外,需要对每个链表数据块中的存储数据结点的数量设定数量阈值。
该第二时序数据是对第一时序数据经过数据压缩算法后得到的,与第一时序数据不同的是,不能通过二进制运算直接读取。需要经过与数据压缩算法相匹配的数据解压运算,从第二时序数据恢复至第一时序数据后,才能通过二进制运算并读取读取。
S130、当所述链表数据块达到第一预设数量时,将最先存入数据的链表数据块进行删除。
从冗余数据库块中的第一时域数据,经过运算后得到第二时域数据,并存入链表中。直至该链表中的链表数据块的数量达到第一预设数量时,将最先存入数据的链表数据块,即由在该链表中存入最先生成的时域数据的链表数据块进行删除,使得该链表的长度不超过N+1个数据块,其中,N为链表对链表数据块的预设数量,该数值1是代表冗余数据块占用了一个数据块的长度。对于该删除的链表数据块可以写入磁盘进行永久保存,以便日后对数据进行恢复。
同时,在对在该链表中,相对于该最先存入数据的链表数据块的相对一端,即冗余数据块处由于对旧的数据块进行删除,可以继续往该冗余数据块存入新的第一时序数据。
在本申请中所提供的一种时域数据的存储方法,能够将产生的第一时序数据存入冗余数据块中,直至该冗余数据块存满后,将其中的第一时域数据块的每个数据结点的数据进行数据压缩运算得到第二时序数据,并存储值链表的链表数据块中,当该链表数据块达到预设数量时,将最先存入数据的链表数据块进行删除,以便于继续存入新获取的第一时域数据。
在上述实施例的基础上,对于步骤S120中的对冗余数据块中的第一时序数据的每个数据结点的数据进行数据压缩运算得到第二时序数据,包括:
计算每相邻两个的第一数据结点之间的数据值的差值,将每个所述差值作为特征值作为第二数据结点的数据值,形成所述第二时序数据。
参照图2,图2为本申请所提供的实施例的链表的结构图。
参考图2,图2中的Head是代表冗余数据块,后面的Frozen是代表链表数据块。
对于每个数据结点而言,在本实施例中,无论是冗余数据块还是链表数据块,每个数据结点都配有各自的数据值。对于第一时域数据而言,能够通过各个数据结点进行二进制的转化,直接读取对应的数据结点的时域数据。
对于该步骤中,对冗余数据块中的相邻两个第一数据结点的数据值做差,得到相互之间的差值。入该冗余数据中,根据数据的生成时间得到存有分别编号为1、2、3、4、5的第一数据结点,其分别的数据值为20、21、23、26、30、35。经过对其相邻两个第一数据结点的数据做差值计算,得到对应的编号为2至5的数据结点的差值为2、3、4、5。而编号为1的数据值依然为20。经过该差值计算后,得到该组数据的数据分别为20、2、3、4、5。在本具体实施例中,将带有头部原始数据值以及后续相邻第一数据结点之间得到的差值形成第二时序数据,每个数据值则是链表数据块中的第二数据结点对应的数据值,每个数据值之间的排列顺序与在冗余数据块中的一致。
在冗余数据块将其中的第一时域数据经过运算后,形成第二时域数据并转存入链表数据块的过程中,在冗余数据块中产生空置的第一数据结点时,新产生的第一时域数据则继续存入该冗余数据块中。对于该链表数据块,当所存入并运算后所形成的第二数据结点的数量满足第二预设数量时,将该数据链表数据块中的第二数据结点打包成一整个链表数据块,并且该链表数据块中的第二数据结点则不能直接通过二进制运算读取,形成一个冻结的链表数据,并根据链表数据块的生成时间,添加至前一打包并冻结的链表数据块后。若此时链表中的链表数据块的数量因新的链表数据块形成并添加成功,造成该链表的链表数据块超过链表数据块的预设数量,则将最先存入数据的链表数据块进行删除,形成新的链表。
基于上述实施例所形成的链表的链表数据块为floor(N/β)+1,其中,N为对链表的设定的最大长度,β为每个链表数据块的长度预置。
根据如上述实施例所形成的链表,由于该第二数据结点的存储空间是按存储需要确定其对应的字节数量,不会如根据标准单链表中的数据结点需要按照设定的字节空间设定对应的存储空间。即使该该链表需要在设定数量的链表数据块的基础上增设一个冗余数据块,但鉴于其能够在每个链表数据块大多数数据结点上能够节省存储空间,从而能够随着存储数据的增加,所节省的存储空间越发提升。因此,该时域数据的存储方法适用于数据存储需求较大的情况。
基于上述所提供的时域序数据的存储方法的任一实施例的基础上,本申请还提供一种时序数据的读取方法,该读取方法是对上述的时域序数据的存储方法中的所有的时域数据,其中包括上述提到的第一时域数据和第二时域数据进行读取。
参照图3,图3为本申请的一个实施例中的时序数据的读取方法的流程示意图。
S210、获取待读取的时序数据的时间戳。
在本步骤中,将上述的时域序数据的存储方法中的所有的时域数据作为待读取的数据。根据该时序数据的数据生成时间,在本实施例中,可以根据时域数据所对应的时间戳来衡量各个时域数据的生成时间和相互之间的数据生成顺序,尤其对于各个数据结点,包括第一数据结点和第二数据结点。
S220、根据所述时间戳确定时序数据存储的目标数据块。
根据上述步骤S210所获取的时间戳,在本实施例中,可以根据该时间戳对时序数据的各个数据结点进行编号,并根据每个打包并冻结的链表数据块的长度以及冗余数据块的长度,得到该时序数据的数据结点所存储的目标数据块。
例如,每个打包并冻结的链表数据块的长度为8,冗余数据块的长度为5。其数据结点的编号是根据数据的时间戳的先后顺序进行编号的,即最先存入链表的数据为1。如当前的链表包含5个链表数据块,以及一个冗余数据块。那么编号为1至40的数据结点为第二数据结点,编号为第41至48的数据结点为第一数据结点。
S230、若存储在冗余数据块中,从所述冗余数据块中读取对应的第一时序数据。
延用上述对链表的数据结点的编号的实施例,若所要获取的数据位于编号为41至48之间的数据结点,该数据结点位于冗余数据块。则根据获取标准单链表的数据方式,即通过二进制的换算,读取第一时域数据。
若所要获取的数据位于编号为1至40之间的数据节点,该数据结点位于链表数据块中的情况下,需要根据每个打包并冻结的链表数据块的长度确定对应的第二时序数据所对应的位置,该位置包括目标时序数据的始末位置,得到该位置的数据结点所存储的目标链表数据块。
如该第二时序数据始末位置是编号为5至10的数据节点,由于每个打包并冻结的链表数据块的长度为8,即编号为5至8的数据节点位于第一个链表数据块,编号为9至10的数据节点位于第二个链表数据块。
针对上述所确定的第一个链表数据块和第二个链表数据块作为目标链表数据块,分别获取其头部数据结点的数据值,并根据其后续相邻的数据差值逐一相加值该头部数据结点的数据值上,直到求得所将该目标链表数据块中所要得到数据值的数据结点的第一时域数据。
延用上述实施例,如编号为对于5至8的第二数据节点,则从编号为1的数据节点的数据值开始,逐部将编号2至8的第二数据结点上的数据值相加值该编号为1的第二数据节点的数据值上,将编号为2至8的第二数据结点的数据值还原至该数据结点的原始产生的第一时域数据的数据值。
对于编号为对于9至10的第二数据节点,则获取第二个链表数据块的头部数据结点的数据值,即编号为9的第二数据节点的数据值,则将编号为10的第二数据节点的数据值添加至编号为9的第二数据节点的数据值,将该编号为10的第二数据节点的数据值还原至该数据结点的原始产生的第一时域数据的数据值。
根据上述还原得到的第一时域数据的数据值,通过二进制的换算,读取第一时域数据。
上述从第二数据节点的数据值还原至该数据结点的原始产生的第一时域数据的数据值,运用了数据解压运算,该数据解压运算与上述的数据压缩运算相匹配,即根据第二数据节点的编号确定目标链路数据块,对该目标链路数据块从其头部数据结点进行遍历,并将每个第二数据节点的数据值逐个添加至头部数据结点,得到对应数据节点原始产生的第一时域数据的数据值。
本申请所提供的时序数据的读取方法,基于上述的时序数据的存储方法,当数据存储在冗余数据块时,可以通过直接读取其中的数据结点获取时序数据,减少因需要对链表数据块进行数据解压运算获取第一时序数据的几率,从而提高数据的读取效率。
基于与时序数据的存储方法相同的申请构思,本申请实施例还提供了一种时序数据的存储装置。
参考图4,图4为本申请公开的实施例所提供的时序数据的存储装置的结构示意图。该时序数据的存储装置300,包括:
第一读取模块310,用于读取待存储的第一时序数据,将所述第一时序数据存入冗余数据块中;
运算模块320,用于在冗余数据块存满后,对冗余数据块中的第一时序数据的每个数据结点的数据进行数据压缩运算得到第二时序数据,将第二时序数据存入链表的链表数据块中;
删除模块330,用于当所述链表数据块达到第一预设数量时,将最先存入数据的链表数据块进行删除。
本申请实施例所提供的时序数据的存储装置300,将待存储的第一时序数据先存入冗余数据块中,当存满后,对第一时序数据进行数据压缩运算得到第二时序数据,并将该第二时序数据存入链表数据块中,直至达到链表数据块的预设数量,将最先存入数据的的链表数据块进行删除。该方案能够避免现有技术中仅仅以标准单链表的形式进行数据存储时,当数据结点接近阈值时触发告警所导致的不能满足数据处理对数据量的要求的问题,同时也能够减小时域数据的存储空间。
另外,基于时序数据的读取方法相同的申请构思,本申请实施例还提供了一种时序数据的读取装置400。该时序数据的读取装置400用于对上述时序数据的存储装置300中的时序数据进行读取。
参考图5,图5为本申请公开的实施例所提供的时序数据的读取装置的结构示意图。该时序数据的读取装置400,包括:
时间戳获取模块410,用于获取待读取的时序数据的时间戳;
目标数据块确定模块420,用于根据所述时间戳确定时序数据存储的目标数据块;
第二读取模块430,用于若存储在冗余数据块中,从所述冗余数据块中读取对应的第一时序数据。
本申请实施例所提供的时序数据的读取装置400,当数据存储在冗余数据块时,可以通过直接读取其中的数据结点获取时序数据,减少因需要对链表数据块进行数据解压运算获取第一时序数据的几率,从而提高数据的读取效率。
基于与本申请实施例中所示的方法相同的原理,本申请实施例中还提供了一种电子设备,该电子设备可以包括但不限于:处理器和存储器;存储器,用于存储计算机操作指令;处理器,用于通过调用计算机操作指令执行实施例所示的方法。与现有技术相比,本申请实施例中的电子设备将待存储的第一时序数据先存入冗余数据块中,当存满后,对第一时序数据进行数据压缩运算得到第二时序数据,并将该第二时序数据存入链表数据块中,直至达到链表数据块的预设数量,将最先存入数据的的链表数据块进行删除。该方案能够避免现有技术中仅仅以标准单链表的形式进行数据存储时,当数据结点接近阈值时触发告警所导致的不能满足数据处理对数据量的要求的问题,同时也能够减小时域数据的存储空间。和/或,本申请实施例所提供的电子设备也能够对在上述电子设备实现存储功能的基础上,对所存储的数据进行读取,具体为当数据存储在冗余数据块时,可以通过直接读取其中的数据结点获取时序数据,减少因需要对链表数据块进行数据解压运算获取第一时序数据的几率,从而提高数据的读取效率。
参照图6,图6为本申请一个实施例所提供的一种时序数据的存储和/或时序数据的读取的电子设备的结构示意图。
在一个可选实施例中提供了一种电子设备,如图6所示,图6所示的电子设备500包括:处理器501和存储器503。其中,处理器501和存储器503相连,如通过总线502相连。可选地,电子设备500还可以包括收发器504。需要说明的是,实际应用中收发器504不限于一个,该电子设备500的结构并不构成对本申请实施例的限定。
其中,电子设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图6示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。与现有技术相比,本申请实施例中的计算机可读存储介质将待存储的第一时序数据先存入冗余数据块中,当存满后,对第一时序数据进行数据压缩运算得到第二时序数据,并将该第二时序数据存入链表数据块中,直至达到链表数据块的预设数量,将最先存入数据的的链表数据块进行删除。该方案能够避免现有技术中仅仅以标准单链表的形式进行数据存储时,当数据结点接近阈值时触发告警所导致的不能满足数据处理对数据量的要求的问题,同时也能够减小时域数据的存储空间。和/或,本申请实施例所提供的计算机可读存储介质也能够对在上述计算机可读存储介质实现存储功能的基础上,对所存储的数据进行读取,具体为当数据存储在冗余数据块时,可以通过直接读取其中的数据结点获取时序数据,减少因需要对链表数据块进行数据解压运算获取第一时序数据的几率,从而提高数据的读取效率。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例所示的方法。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (11)

1.一种时序数据的存储方法,其特征在于,其包括以下步骤:
读取待存储的第一时序数据,将所述第一时序数据存入冗余数据块中;
在冗余数据块存满后,对冗余数据块中的第一时序数据的每个数据结点的数据进行数据压缩运算得到第二时序数据,将第二时序数据存入链表的链表数据块中;
当所述链表数据块达到第一预设数量时,将最先存入数据的链表数据块进行删除。
2.根据权利要求1所述的方法,其特征在于,还包括:
配置所述链表,设定所述链表的链表数据块的数量。
3.根据权利要求1所述的方法,其特征在于,所述将所述第一时序数据存入冗余数据块中的步骤,包括:
根据所述第一时序数据按照生成时间的顺序形成第一数据结点,第一数据结点按照标准单链表进行存储,形成冗余数据块。
4.根据权利要求1所述的方法,其特征在于,所述对冗余数据块中的第一时序数据的每个数据结点的数据进行数据压缩运算得到第二时序数据的步骤,包括:
计算每相邻两个的第一数据结点之间的数据值的差值,将每个所述差值作为特征值作为第二数据结点的数据值,形成所述第二时序数据。
5.根据权利要求4所述的方法,其特征在于,
所述形成所述第二时序数据的步骤之后,还包括:
将所述第二数据结点依据生成的时间顺序逐一压缩存储于所述的数据块中,直到所述第二数据结点的数量达到第二预设数量时,将所述链表数据块中的第二数据结点进行打包并冻结,并添加至前一冻结的链表数据块。
6.一种时序数据的读取方法,其特征在于,用于对权利要求1-5任一项所述的时序数据进行读取,其包括以下步骤:
获取待读取的时序数据的时间戳;
根据所述时间戳确定目标时序数据存储的数据块;
若存储在冗余数据块中,从所述冗余数据块中读取对应的第一时序数据。
7.根据权利要求6所述的方法,其特征在于,还包括:
若存储在链表数据块中,根据所述时间戳确定对应的第二时序数据存储的链表数据块的位置,根据所述位置得到目标链表数据块;
根据所述目标链表数据块的起始位置读取对应的第二时域数据,并进行数据解压运算得到所述第一时序数据;其中,所述数据压缩运算与数据解压运算相匹配。
8.一种时序数据的存储装置,其特征在于,其包括:
第一读取模块,用于读取待存储的第一时序数据,将所述第一时序数据存入冗余数据块中;
运算模块,用于在冗余数据块存满后,对冗余数据块中的第一时序数据的每个数据结点的数据进行数据压缩运算得到第二时序数据,将第二时序数据存入链表的链表数据块中;
删除模块,用于当所述链表数据块达到第一预设数量时,将最先存入数据的链表数据块进行删除。
9.一种时序数据的读取装置,其特征在于,用于对权利要求8中的所述时序数据的存储装置中的时序数据进行读取,其包括:
时间戳获取模块,用于获取待读取的时序数据的时间戳;
目标数据块确定模块,用于根据所述时间戳确定时序数据存储的目标数据块;
第二读取模块,用于若存储在冗余数据块中,从所述冗余数据块中读取对应的第一时序数据。
10.一种电子设备,其特征在于,其包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行根据权利要求1-5任一项所述的时序数据的存储方法,和/或权利要求6-7任一项所述的时序数据的读取方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-5任一项所述的时序数据的存储方法,和/或权利要求6-7任一项所述的时序数据的读取方法。
CN202110215197.0A 2021-02-25 2021-02-25 数据的存储和解压方法、装置、电子设备及存储介质 Active CN113032453B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110215197.0A CN113032453B (zh) 2021-02-25 2021-02-25 数据的存储和解压方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110215197.0A CN113032453B (zh) 2021-02-25 2021-02-25 数据的存储和解压方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN113032453A true CN113032453A (zh) 2021-06-25
CN113032453B CN113032453B (zh) 2024-03-01

Family

ID=76462200

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110215197.0A Active CN113032453B (zh) 2021-02-25 2021-02-25 数据的存储和解压方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113032453B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110633277A (zh) * 2019-08-13 2019-12-31 平安科技(深圳)有限公司 时序数据存储方法、装置、计算机设备和存储介质
CN111309720A (zh) * 2018-12-11 2020-06-19 北京京东尚科信息技术有限公司 时序数据的存储、读取方法、装置、电子设备及存储介质
CN112286867A (zh) * 2020-10-27 2021-01-29 山东鼎滏软件科技有限公司 油气田时序数据存储方法、查询方法及其装置、存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111309720A (zh) * 2018-12-11 2020-06-19 北京京东尚科信息技术有限公司 时序数据的存储、读取方法、装置、电子设备及存储介质
CN110633277A (zh) * 2019-08-13 2019-12-31 平安科技(深圳)有限公司 时序数据存储方法、装置、计算机设备和存储介质
CN112286867A (zh) * 2020-10-27 2021-01-29 山东鼎滏软件科技有限公司 油气田时序数据存储方法、查询方法及其装置、存储介质

Also Published As

Publication number Publication date
CN113032453B (zh) 2024-03-01

Similar Documents

Publication Publication Date Title
CN107229420B (zh) 数据存储方法、读取方法、删除方法和数据操作系统
CN111176549B (zh) 基于云存储的数据存储方法、装置和存储介质
CN111309720A (zh) 时序数据的存储、读取方法、装置、电子设备及存储介质
CN110505495B (zh) 多媒体资源抽帧方法、装置、服务器及存储介质
CN111858520B (zh) 一种区块链节点数据分离存储的方法和装置
CN111177143B (zh) 键值数据存储方法、装置、存储介质与电子设备
CN107870726A (zh) 基于冗余机制的数据存储方法和装置、服务器
CN113064760B (zh) 数据库合成备份方法、装置、计算机设备和存储介质
CN111880731B (zh) 一种数据处理方法、装置及相关组件
CN111639072A (zh) 一种车联网场景下的数据存储方法及系统、可读存储介质
CN111291235A (zh) 一种基于时序数据库的元数据存储方法及装置
CN110647514A (zh) 一种元数据更新方法、装置及元数据服务器
CN105447168A (zh) Mp4格式的碎片文件恢复与重组的方法
CN104965835A (zh) 一种分布式文件系统的文件读写方法及装置
CN106874399B (zh) 一种联网备份系统及备份方法
CN112748866A (zh) 一种增量索引数据的处理方法和装置
US10803018B2 (en) Compressed data rearrangement to optimize file compression
CN111831954B (zh) 内容数据更新方法、装置、计算机设备及存储介质
CN111857603B (zh) 数据处理方法及相关装置
CN111211993A (zh) 流式计算的增量持久化方法及其装置
CN113032453B (zh) 数据的存储和解压方法、装置、电子设备及存储介质
CN111061428B (zh) 一种数据压缩的方法及装置
CN110781166B (zh) 存储系统中数据管理方法和装置
CN116701352A (zh) 一种数据库数据迁移方法及系统
CN114020691B (zh) 读写分离的数据更新方法及其装置、kv存储系统

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
GR01 Patent grant
GR01 Patent grant