数据存储方法、装置、终端设备及存储介质

文档序号:1952959 发布日期:2021-12-10 浏览:17次 >En<

阅读说明:本技术 数据存储方法、装置、终端设备及存储介质 (Data storage method and device, terminal equipment and storage medium ) 是由 刘国伟 于 2020-06-10 设计创作,主要内容包括:本申请适用于数据处理技术领域,提供了数据存储方法、装置、终端设备及存储介质,包括:获取数据,并记录所述数据的时间戳信息,所述数据为时序型数据;将所述数据作为热数据保存至热数据存储节点,并同时保存至冷数据存储节点;其中,所述热数据存储节点用于响应热数据的查询请求;所述冷数据存储节点用于响应冷数据的查询请求;若检测到所述数据的保存时长超出预设的热数据保存时长,则判定所述数据为冷数据,并将所述数据从所述热数据存储节点删除,其中所述数据的保存时长根据所述数据的时间戳信息确定。本申请实施例能够通过有序有效的数据存储来保证之后的数据查询效率。(The application is applicable to the technical field of data processing, and provides a data storage method, a data storage device, terminal equipment and a storage medium, wherein the data storage method comprises the following steps: acquiring data and recording timestamp information of the data, wherein the data is time sequence type data; storing the data as hot data to a hot data storage node and simultaneously storing the data to a cold data storage node; wherein the hot data storage node is used for responding to a query request of hot data; the cold data storage node is used for responding to a query request of cold data; and if the storage time of the data is detected to exceed the preset hot data storage time, judging the data to be cold data, and deleting the data from the hot data storage node, wherein the storage time of the data is determined according to the timestamp information of the data. According to the embodiment of the application, the subsequent data query efficiency can be ensured through ordered and effective data storage.)

数据存储方法、装置、终端设备及存储介质

技术领域

本申请属于数据处理技术领域,尤其涉及一种数据存储方法、装置、终端设备及存储介质。

背景技术

在生活中,常常需要持续监测并记录同一目标在时间维度上的状态数据,例如持续记录同一指定区域在不同时间点的监控图像数据、同一地区在不同时间点的气象数据等,该同一目标在时间维度上的状态数据可以称为时序型数据。由于随着时间的推移,会不断产生新的时序型数据(即新的时间点对应的状态数据),因此时序型数据的数据量通常比较庞大。

在现有技术中,通常是将时序型数据进行集中存储或者通过随机无序的数据分片的方式进行存储,然而由于时序型数据的数据量庞大,现有的存储方式会导致之后的数据查询效率较低。

发明内容

有鉴于此,本申请实施例提供了数据存储方法、装置、终端设备及存储介质,以解决现有技术中由于数据量庞大的时序型数据的存储不当,导致后续的数据查询效率较低的问题。

本申请实施例的第一方面提供了一种数据存储方法,包括:

获取数据,并记录所述数据的时间戳信息,所述数据为时序型数据;

将所述数据作为热数据保存至热数据存储节点,并同时保存至冷数据存储节点;其中,所述热数据存储节点用于响应热数据的查询请求;所述冷数据存储节点用于响应冷数据的查询请求;

若检测到所述数据的保存时长超出预设的热数据保存时长,则判定所述数据为冷数据,并将所述数据从所述热数据存储节点删除,其中所述数据的保存时长根据所述数据的时间戳信息确定。

本申请实施例的第二方面提供了一种数据存储装置,包括:

数据获取单元,用于获取数据,并记录所述数据的时间戳信息,所述数据为时序型数据;

数据保存单元,用于将所述数据作为热数据保存至热数据存储节点,并同时保存至冷数据存储节点;其中,所述热数据存储节点用于响应热数据的查询请求;所述冷数据存储节点用于响应冷数据的查询请求;

删除单元,用于若检测到所述数据的保存时长超出预设的热数据保存时长,则判定所述数据为冷数据,并将所述数据从所述热数据存储节点删除,其中所述数据的保存时长根据所述数据的时间戳信息确定。

本申请实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,当所述处理器执行所述计算机程序时,使得终端设备实现如所述数据存储方法的步骤。

本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被处理器执行时,使得终端设备实现如所述数据存储方法的步骤。

本申请实施例的第五方面提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行如第一方面中所述的数据存储方法的步骤。

本申请实施例与现有技术相比存在的有益效果是:本申请实施例中,考虑到在时序型数据中,通常较新存储的数据(即保存时长较短)为经常被查询的热数据,因此根据数据的保存时长来区分该数据为热数据还是冷数据,使得热数据特别区分保存于专门用于响应热数据的查询请求的热数据存储节点中,从而保证数据的查询效率。具体地,第一方面,将刚获取的数据先作为热数据保存在热数据存储节点中,并在根据时间戳信息确定的数据的保存时长超出热数据保存时长时,将数据判定为冷数据,从热数据存储节点删除,从而使得热数据存储节点只专门保存热数据部分,减少热数据存储节点的数据量,从而减少响应热数据的查询时的检索范围,进而提高热数据查询效率;第二方面,在刚获取数据时,除了将其作为热数据保存在热数据存储节点外,还将其保存在冷数据存储节点中,当数据仍为热数据时,保存于冷数据存储节点中的数据能够作为热数据的备份数据,而当数据超出预设的热数据保存时长被判定为冷数据时,冷数据存储节点仍能够长久保存该数据,以供响应偶尔所需的冷数据的查询请求。综上,本申请实施例通过将数据有策略地控制保存于热数据存储节点、冷数据存储节点中,实现热数据、冷数据的区分存储,控制热数据存储节点保存的数据量,提高热数据的查询效率,同时保证冷数据也能够在需要的时候通过冷数据节点响应查询,因此能够通过有序有效的数据存储来保证之后的数据查询效率。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种数据存储方法应用场景的示意图

图2是本申请实施例提供的第一种数据存储方法的实现流程示意图;

图3是本申请实施例提供的第二种数据存储方法的实现流程示意图;

图4是本申请实施例提供的一种链表的示意图;

图5是本申请实施例提供的一种预设表拆分后的链表的示意图;

图6是本申请实施例提供的一种预设表合并后的链表的示意图;

图7是本申请实施例提供的一种数据存储装置的示意图;

图8是本申请实施例提供的终端设备的示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。

为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。

另外,在本申请的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

本申请实施例的数据存储方法的应用场景示意图如图1所示,包括用于采集时序型数据的采集设备11、数据存储设备12、热数据存储节点121、冷数据存储节点122和用户13。详述如下:

时序型数据为同一监测目标在时间维度上的状态数据,采集设备11可以为摄像机、温湿度监测仪、气象监测仪等,对应地,时序型数据可以为摄像机在同一监控区域内实时抓拍的图像数据、温湿度监测仪在同一环境内实时监测的温湿度数据,气象监测仪在同一地区范围实时监测的气象数据等。

数据存储设备12从采集设备11获取采集得到的数据,并将该数据作为热数据保存至热数据存储节点121以及同时保存至冷数据存储节点122中,并在检测到该数据的保存时长超出预设的热数据保存时长时,将该数据判定为冷数据,将该数据从热数据存储节点122删除,以使热数据存储节点122只存储保存时长在热数据保存时长以内的热数据。其中,热数据存储节点121和冷数据存储节点122即可以是数据存储设备12中的一部分,也可以各自为独立于数据存储设备的外部存储器。

当用户13需要查询数据时,向数据存储装置12发送包含查询时间范围信息的查询请求,数据存储设备12根据该查询时间范围信息从热数据存储节点121和冷数据存储节点122中确定出一个作为目标响应节点,并从该目标响应节点中查询得到该查询请求对应的数据,并返回该查询请求对应的数据至用户13。

本申请实施例通过将数据有策略地控制保存于热数据存储节点、冷数据存储节点中,实现热数据、冷数据的区分存储,控制热数据存储节点保存的数据量,提高热数据的查询效率,同时保证冷数据也能够在需要的时候通过冷数据节点响应查询,因此能够通过有序有效的数据存储来保证之后的数据查询效率。

实施例一:

图2示出了本申请实施例提供的第一种数据存储方法的流程示意图,该数据存储方法的执行主体为终端设备,详述如下:

在S201中,获取数据,并记录所述数据的时间戳信息,所述数据为时序型数据。

本申请实施例中的数据为采集设备对同一监测目标在时间维度上进行数据采集得到的时序型数据,终端设备从该采集设备获取数据,并记录获取该数据时的时间戳信息。

在S202中,将所述数据作为热数据保存至热数据存储节点,并同时保存至冷数据存储节点;其中,所述热数据存储节点用于响应热数据的查询请求;所述冷数据存储节点用于响应冷数据的查询请求。

本申请实施例中的热数据指的是经常被访问(被查询的频次大于或者等于预设频次)的数据,冷数据指的是较少被访问(被查询的频次小于预设频次)的数据。在时序型数据的实际应用中,经常被访问的数据为最近存储的较新数据,较少被访问的数据为保存时间较久的历史数据,因此本申请实施例中具体将热数据定义为保存时长在预设的热数据保存时长以内的较新时序型数据,将冷数据定义为保存时长超过预设的热数据保存时长的历史时序型数据。

本申请实施例中,热数据存储节点专门存储热数据,并用于响应热数据的查询请求;冷数据存储节点存储所有已获取的数据,并用于响应冷数据的查询请求。

刚从步骤S201中获取到的数据属于较新的时序型数据,因此将其作为热数据保存至热数据存储节点中,并同时保存至冷数据存储节点中。

在S203中,若检测到所述数据的保存时长超出预设的热数据保存时长,则判定所述数据为冷数据,并将所述数据从所述热数据存储节点删除,其中所述数据的保存时长根据所述数据的时间戳信息确定。

本申请实施例中,数据的保存时长根据该数据的时间戳信息确定,具体地,将当前终端设备的系统时间戳减去获取该数据时的时间戳信息,并转换为与预设的热数据保存时长的时间单位一致的形式,即得到该数据的保存时长。

当检测到该数据的保存时长超出预设的热数据保存时长,则将该数据判定为保存时间较久的冷数据,将该数据从热数据存储节点删除,以使热数据存储节点保持在只存储热数据的状态,减少热数据存储节点存储的数据量,加快热数据存储节点响应热数据的查询的速度。

可选地,所述热数据存储节点存储于固态存储器中,所述冷数据存储节点存储于机械存储器中。

本申请实施例中,热数据存储节点具体存储于固态存储器中,例如存储于固态硬盘(Solid State Disk或Solid State Drive,简称SSD)中;而冷数据存储节点存储于机械存储器中,例如存储于机械硬盘(Hard Disk Drive,简称HDD)中。

固态存储器的特点为读写速度快但容量较低、硬件成本较高,而机械存储器的特点为容量较大、硬件成本较低,本申请实施例将存储的数据量较小的热数据存储节点存储于固态存储器中,能够进一步提高常用的热数据的查询速度,而将存储的数据量较大的冷数据存储节点存储于机械存储器中,能够保证大数据量数据的稳定存储,降低硬件成本。因此,通过将热数据存储节点存储于固态存储器中,冷数据存储节点存储于机械存储器中,既能够提高数据的查询速度,又能够在控制硬件成本的前提下满足数据的存储需求,从而进一步提高数据的存储效率及后续的查询效率。

可选地,在所述步骤S203之后,还包括:

S20401:获取查询请求,所述查询请求包含查询时间范围信息;

S20402:若根据所述查询时间范围信息及所述热数据保存时长确定所述查询请求为热数据的查询请求,则将所述热数据存储节点确定为目标响应节点,否则将所述冷数据存储节点确定为目标响应节点;

S20403:在所述目标响应节点中查询得到所述查询请求对应的数据。

在S20401中,终端设备可以通过获取用户在终端设备上操作的按键输入信息、触控信息或者语音信息来获取查询请求,或者通过接收用户终端发送的请求数据来获取该查询请求。本申请实施例中的查询请求至少包含查询时间范围信息,该查询时间范围信息的具体单位可以为月份、日期、周、小时、分钟、秒等。例如查询时间范围信息可以为“最近一周”或者具体日期“2020年04月01日”。除了查询时间范围信息外,该查询请求还可以包括其它查询约束条件。示例性地,设本申请实施例中获取的数据为图像数据,该图像数据分为人脸图像及动物图像等不同图像数据种类,则该查询请求还可以包括图像数据种类信息。示例性地,设本申请实施例中获取的数据为温湿度数据,即具体包括温度数据和湿度数据,则该查询请求还可以指定查询温度数据、湿度数据中的任意一种或者同时查询温度数据和湿度数据。

在S20402中,根据查询时间范围信息和预设的热数据保存时长,确定当前的查询请求为热数据的查询请求还是冷数据的查询请求;若当前的查询请求为热数据的查询请求,则将热数据存储节点确定为目标响应节点,若当前的查询请求为冷数据的查询请求,则将冷数据存储节点确定为目标响应节点。具体地,当查询时间范围信息在热数据保存时长内,则将该查询请求确定为热数据的查询请求,否则,将该查询请求确定为冷数据的查询请求。示例性地,设热数据保存时长为一个月,当前的查询时间范围信息为最近一周,则该查询时间范围信息在该热数据保存时长内,确定该查询请求为热数据的查询请求。示例性地,设当前时间为2020年05月06日,热数据保存时长为一个月(即2020年04月06日至2020年05月06日的数据作为热数据),查询时间范围信息为2020年04月01日,则该查询时间范围信息在该热数据保存时长之外,确定该查询请求为冷数据的查询请求。

在S20403中,根据查询请求,在确定的目标响应节点中查询得到与该查询请求对应的数据。具体地,若该查询请求只包含查询时间范围信息,则该查询请求对应的数据即为目标响应节点中存储的时间在该查询时间范围内的数据。可选地,若该查询请求还包括其它查询约束条件,则该查询请求对应的数据即为目标响应节点中存储时间在该查询时间范围内且符合该其它查询约束条件的数据。示例性地,设当前的查询请求包含查询约束条件“人脸图像”和查询时间范围信息“最近一周”,且在步骤S20402中确定的目标响应节点为热数据存储节点,则最终在热数据存储节点中查询得到与查询请求对应的数据为最近一周内存储的所有人脸图像数据。

本申请实施例中,由于在获取到查询请求后,能够根据查询请求中包含的查询时间范围信息将热数据的查询请求还是冷数据的查询请求区分开,确定对应的目标响应节点,从而更快更准确地查询得到对应的数据,因此能够提高数据查询效率。

可选地,在所述步骤S201之前,还包括:

获取设置指令,根据所述设置指令设置热数据保存时长。

本申请实施例中,热数据保存时长可以根据实际需要设置。可选地,本申请实施例中的设置指令可以为管理人员通过文字输入或者语音输入的方式输入的包含时长信息的指令,该时长信息可以为“半年”“三个月”“一个月”“一周”等;之后根据该设置指令,将该时长信息设置为热数据保存时长。可选地,该设置指令包含统计的平均查询时间范围;终端设备每隔一段时间,自动统计预设时间段内查询请求包含的查询时间范围信息,确定平均查询时间范围,并生成包含该平均查询时间范围的设置指令,之后根据该平均查询时间范围,设置与该平均查询时间范围的相近的时长作为热数据保存时长,使得热数据保存时长设置更符合实际的查询请求。可选地,该设置指令包含热数据存储节点的存储容量信息及单位时间采集的数据量信息,根据该存储容量信息和单位时间采集的数据量信息,确定合理的热数据保存时长(例如将存储容量信息除以单位时间内采集的数据量信息得到的时长作为热数据保存时长),以使热数据存储节点能够合理地保存更多的热数据。

本申请实施例中,由于热数据保存时长能够根据设置指令灵活设置,因此能够使得热数据保存时长更加合理地符合实际应用需要,从而进一步提高数据的存储效率。

本申请实施例中,考虑到在时序型数据中,通常较新存储的数据(即保存时长较短)为经常被查询的热数据,因此根据数据的保存时长来区分该数据为热数据还是冷数据,使得热数据特别区分保存于专门用于响应热数据的查询请求的热数据存储节点中,从而保证数据的查询效率。具体地,第一方面,将刚获取的数据先作为热数据保存在热数据存储节点中,并在根据时间戳信息确定的数据的保存时长超出热数据保存时长时,将数据判定为冷数据,从热数据存储节点删除,从而使得热数据存储节点只专门保存热数据部分,减少热数据存储节点的数据量,从而减少响应热数据的查询时的检索范围,进而提高热数据查询效率;第二方面,在刚获取数据时,除了将其作为热数据保存在热数据存储节点外,还将其保存在冷数据存储节点中,当数据仍为热数据时,保存于冷数据存储节点中的数据能够作为热数据的备份数据,而当数据超出预设的热数据保存时长被判定为冷数据时,冷数据存储节点仍能够长久保存该数据,以供响应偶尔所需的冷数据的查询请求。综上,本申请实施例通过将数据有策略地控制保存于热数据存储节点、冷数据存储节点中,实现热数据、冷数据的区分存储,控制热数据存储节点保存的数据量,提高热数据的查询效率,同时保证冷数据也能够在需要的时候通过冷数据节点响应查询,因此能够通过有序有效的数据存储来保证之后的数据查询效率。

实施例二:

图3示出了本申请实施例提供的第二种数据存储方法的流程示意图,本申请实施例的执行主体为终端设备,详述如下:

在S301中,每隔预设时间,创建用于存储预设时段的时序型数据的预设表。

本申请实施例中,预设时段可以为指定的N天、N小时或者N周等,其中N为大于或者等于1的正整数,每隔预设时间定时创建用于存储预设时段内的时序型数据的预设表。示例性地,若预设时段为一天,则可以定时在每天的23点创建用于存储第二天0点到24点的一整天时间段内的时序型数据的预设表,即每一天的数据分别存储于对应的一张预设表中。

在S302中,在预设时段内持续获取数据,记录所述数据的时间戳信息,并将所述数据及所述数据的时间戳信息对应存储至所述预设表中。

在创建得到预设表后,在预设时段内持续地从采集设备获取采集得到的数据,并记录获取到该数据时终端设备的系统时间作为该数据对应的时间戳信息。之后,将该数据和该数据对应的时间戳信息对应存储到预设表中,例如将该数据和该数据对应的时间戳信息存储到预设表的同一行中。

在S303中,将所述预设表中的所有数据作为热数据,并将所述预设表保存至热数据存储节点和冷数据存储节点中。

当预设时段结束,将该预设表中的所有数据作为热数据保存至热数据存储节点中,并同时保存至冷数据存储节点中。例如,预设时段为一天,则一天结束后,将该预设表中一天存储的所有数据作为热数据保存至热数据存储节点,并同时保存至冷数据存储节点中。

在S304中,根据所述预设表中的时间戳信息确定所述预设表中的最大时间戳。

根据预设表中的时间戳信息,确定该预设表中的最大时间戳,该最大时间戳即为在预设时段内最后获取的数据对应的时间戳信息。

在S305中,根据所述最大时间戳及当前的系统时间戳确定所述预设表对应的保存时长。

本申请实施例中,具体将预设表中的最大时间戳作为该预设表的最终的时间戳信息,以进行预设表对应的保存时长的计算。具体地,将终端设备当前的系统时间戳减去该预设表的最大时间戳即为该预设表对应的保存时长。

在S306中,若检测到所述预设表对应的保存时长大于所述热数据保存时长,则判定所述预设表中的所有数据为冷数据,并将所述预设表从所述热数据存储节点删除。

当检测到该预设表对应的保存时长大于热数据保存时长,则将该预设表中的所有数据判定为冷数据,并将该预设表从热数据存储节点中删除,以使热数据存储节点只保存一定数据量的热数据。

本申请实施例中,通过定时创建用于存储预设时段内的时序型数据的预设表,使得在数据存储过程、对数据的冷热判定过程、以及将数据从热数据存储节点删除的过程都以表为单位进行,因此能够一次性对预设时段内的多个数据进行统一存储处理,从而能够节省资源运行开销并进一步提高数据存储效率。

可选地,所述冷数据存储节点保存了至少两个所述预设表,所述冷数据存储节点保存了至少两个所述预设表,所述冷数据存储节点还包括用于记录预设表的信息的链表,所述链表的每个链表节点依次对应一个预设表,每个所述链表节点的节点信息包括相邻链表节点地址指针信息、预设表的标识信息及查询记录信息,其中所述预设表的标识信息用于确定所述链表节点与所述预设表的对应关系,对应地,所述方法还包括:

A1:在每个单位时间段内监测各个预设表的查询记录信息,并将所述查询记录信息存储至所述预设表对应的所述链表节点中,其中所述查询记录信息至少包括查询耗时;

A2:若检测到所述链表节点中存在耗时节点,则将所述耗时节点对应的预设表拆分为L个更新后的预设表,其中所述耗时节点为存储的所述查询耗时大于预设耗时阈值的链表节点;所述L为根据所述查询耗时及所述预设耗时阈值确定的大于1的正整数;

A3:根据所述L个更新后的预设表,在所述链表中的所述耗时节点之后插入(L-1)个新建的链表节点,并分别为所述新建的链表节点、所述耗时节点、以及所述耗时节点的下一个链表节点设置各自对应的所述节点信息,以完成对所述链表的更新。

本申请实施例中,冷数据存储节点保存了两个或者两个以上的预设表,每个预设表分别存储一个预设时段的数据。其中,该冷数据存储节点还包括用于记录预设表的信息的链表,链表的每个链表节点分别依次对应一个预设表,如图4所示。其中,每个链表节点的信息包括了相邻链表节点地址指针信息、预设表的标识信息及查询记录信息。具体地,相邻链表节点地址指针信息用于记录与该链表节点相邻的其它链表节点的节点地址信息(具体包括上一链表节点的节点地址信息和下一链表节点的节点地址信息)。预设表的标识信息用于按序确定链表节点与预设表的对应关系,其中相邻的链表节点对应的预设表的数据存储位置相邻,预设表的标识信息可以为预设表的表名、根据预设表存储的数据的时间戳信息确定的时间戳信息标识(具体可以包括该预设表的最大时间戳信息和/或最小时间戳信息)、预设表的存储地址信息等。

在A1中,在每个单位时间段内监测各个预设表的查询记录信息,该查询记录信息至少包括查询耗时,其中该单位时间段为预设一个时间段,可以为一天、一周、一个月等。在一个单位时间段内,若检测到存在查询该预设表的数据的查询请求,则记录从获取该查询请求到得到该查询请求对应的数据的响应时间,该响应时间即为该预设表对应的查询耗时,将该查询耗时存储于该预设表对应的链表节点中。

在A2中,当检测到链表节点中存在存储的查询耗时大于预设耗时阈值的链表节点,则将该链表节点判定为耗时节点,说明当前该耗时节点对应的预设表包含的数据过多,导致响应查询请求的速度过慢,因此需要将该链表节点对应的预设表进行拆分,以减少单个预设表所包含的数据量,提高查询效率。此时,根据查询耗时和预设耗时阈值,将链表节点进行拆分,得到L个拆分后的预设表。具体地,设查询耗时m,预设耗时阈值为n,则即查询耗时除以预设耗时阈值并向上取整,即得到所要拆分得到的预设表的数目。

可选地,本申请实施例中在单位时间段内的一个指定时间点进行查询耗时比较、预设表的拆分步骤,该指定时间点为非繁忙时段(即查询请求较少)中的时间点,例如,若单位时间段为一天,则该指定时间点可以为凌晨2:00。若在一个单位时间段内,存在多次查询该预设表的查询请求,链表节点中存储了分别对应多次查询请求的多个查询耗时,则求取多个查询耗时的平均值作为该预设表对应的查询耗时。

在A3中,在将耗时节点对应的预设表拆分为L个更新后的预设表之后,需要为新增的预设表建立对应的链表节点。具体地,由于原来耗时节点对应的一个预设表拆分为L个更新后的预设表,则预设表的数目相比于拆分前新增了(L-1)个,因此需要为新增的预设表建立对应的(L-1)个新建的链表节点。建立之后,将该(L-1)个新建的链表节点插入链表中的耗时节点之后的位置。示例性地,设如图4所示的预设表2拆分为2个更新后的预设表:如图5所示的预设表2A和预设表2B,预设表的数目相比于拆分前新增了:2-1=1个,则需要将建立一个新增的链表节点,并在链表中插入这一个新增的链表节点,例如图5所示的新增的链表节点k。同时,为新建的链表节点设置对应的节点信息,并更新耗时节点以及该耗时节点的下一个链表的节点中包含的节点信息,从而完成链表的更新,以使得该链表能够及时准确地表示当前冷数据存储节点中各个预设表的信息,以准确地用于之后的查询和预设表管理操作。

可选地,本申请实施例中的预设表的标识信息具体为时间戳信息标识,所述步骤A3包括:

A31:建立L-1个所述新建的链表节点;

A32:根据所述耗时节点、所述耗时节点的下一个链表节点以及所述新建的链表节点的节点地址信息,设置所述新建的链表节点的相邻链表节点地址指针信息,以及更新所述耗时节点和所述耗时节点的下一个链表节点各自的相邻链表节点地址指针信息,从而将所述新建的链表节点插入所述链表中位于所述耗时节点之后的位置;

A33:根据所述L个更新后的预设表包含的数据的时间戳信息,更新所述耗时节点的时间戳信息标识以及所述新建的链表节点的时间戳信息标识,以建立所述L个更新后的预设表与所述耗时节点或者所述新建的链表节点的对应关系;

A34:将所述链表中的每个链表节点的查询记录清零,完成链表的更新。

在A31中,根据拆分得到的预设表的数目L,建立L-1个新建的链表节点。

在A32中,本申请实施例中的链表节点的节点地址信息可以为该链表节点的标号信息或者唯一标识信息,例如图4中的链表节点1的节点地址信息可以直接数字标号“1”或者文字标识“链表节点1”等。每个链表节点存储的节点信息中的相邻链表节点地址指针信息具体包括所述链表节点的上一个链表节点的节点地址信息以及所述链表节点的下一链表节点的节点地址信息。确定新建的链表节点的插入位置为所述耗时节点的位置之后,根据耗时节点、耗时节点的下一个链表节点和新建的链表节点各自对应的节点地址信息,相应设置各个新建的链表节点的相邻链表节点地址指针信息、更新所述耗时节点和所述耗时节点的下一个链表节点各自的相邻链表节点地址指针信息,从而完成新建的链表节点的插入。

示例性地,如图4所示的链表中,设链表节点1~4依次对应的节点地址信息为“1”“2”“3”“4”;链表节点2为当前的耗时节点,其对应的节点地址信息为“2”,其当前存储的相邻链表节点指针信息为:“2→prior=1”和“2→next=3”,用于表示链表节点2的上一个链表节点的节点地址信息为“1”,链表节点2的下一个链表节点的节点信息为“3”;链表节点3为当前的耗时节点(链表节点2)的下一个链表节点,其对应的节点地址信息为“3”,其当前存储的相邻链表节点指针信息为“3→prior=2”和“3→next=4”。将耗时节点,即链表节点2对应的预设表拆分为如图5所示的预设表2A和预设表2B后,需要新建一个新增的链表节点k,该新增的链表节点k的节点地址信息为“k”。确定该新增的链表节点k的位置应位于链表节点2之后,且在链表节点3之前,则根据链表节点2和链表节点3的节点地址信息:“2”、“3”,设置新增的链表节点的相邻链表节点指针信息为“k→prior=2”和“k→next=3”;根据新增的链表节点k的节点地址信息“k”,将链表节点2中的相邻链表节点指针信息更新为“2→prior=1”和“2→next=k”,将链表节点3中的相邻链表节点指针信息更新为“3→prior=k”和“3→next=4”,从而将所述新建的链表节点k如图5所示地插入链表中的位于耗时节点——链表节点2之后的位置。

在A33中,本申请实施例中具体是根据通过链表节点存储的时间戳信息来确定该链表节点对应的预设表,该时间戳信息标识可以包括预设表的数据的最大时间戳信息及最小时间戳信息。例如,设如图4所示的预设表2存储的数据中,对应的最小时间戳信息为:1590940800,最大时间戳信息为:1591027199,则相应将链表节点2的时间戳信息标识设置为“1590940800,1591027199”,以确定链表节点2和预设表2的唯一对应关系。

在将耗时节点对应的预设表拆分为L个更新后的预设表后,需要根据所述L个更新后的预设表包含的数据的时间戳信息,更新该耗时节点的时间戳信息标识以及新建的链表节点的时间戳信息标识,以建立所述L个更新后的预设表与所述耗时节点或者所述新建的链表节点的对应关系。示例性地,设如图4所示的预设表2拆分为如图5所示的预设表2A和预设表2B,预设表2A的时间戳信息标识为“1590940800,1590984000”,预设表2B的时间戳信息标识为“1590984001,1591027199”,则将链表节点2的时间戳信息标识由原来的“1590940800,1591027199”更新为“1590940800,1590984000”,以建立链表节点2与预设表2A的对应关系;将新增的链表节点k的时间戳信息标识设置为“1590984001,1591027199”,以建立新增的链表节点k与预设表2B的对应关系。

在A34中,在得到更新后的预设表后,将各个链表节点中存储的查询记录重置为零,以免之前的查询记录对之后的监控造成影响。

通过上述步骤A31至A34,向原来的链表插入新建的链表节点并更新各个链表节点的节点信息(具体包括相邻链表节点指针信息、时间戳信息和查询记录),从而准确地更新链表,使得更新后的链表能够准确有序地对应记录各个预设表的信息。

本申请实施例中,通过链表准确有序地记录冷数据存储节点中各个预设表的信息,因此能够对各个预设表进行有序地管理,保证数据查询的有序性和准确性,提高数据存储效率和查询效率;并且,根据链表中记录的各个预设表的查询耗时的信息,能够合理地对预设表进行拆分,从而减少单个预设表所包含的数据量,缩小查询该预设表存储的数据时的数据搜索范围,从而提高数据查询效率。具体地,由于能够根据查询耗时和预设耗时阈值来确定拆分得到的预设表的数目(即L),使得之后各个预设表对应的查询耗时控制在所述预设耗时阈值之内,因此能够更准确有效地提高查询请求的响应速度。

可选地,所述查询记录信息还包括单位时间段内的查询次数,对应地,在所述在每个单位时间段内监测各个预设表的查询记录信息,并将所述查询记录信息存储至所述预设表对应的所述链表节点中之后,还包括:

B1:若检测到所述链表节点中存在目标节点,则根据所述目标节点的相邻链表节点地址指针信息,获取第一相邻链表节点的节点信息;所述目标节点为存储的所述查询次数为0或者小于第一预设次数的链表节点,所述第一相邻链表节点为与所述目标节点相邻的链表节点;

B2:将所述节点信息符合预设条件的所述第一相邻链表节点确定为待删除节点,并将所述目标节点对应的第一预设表与所述待删除节点对应的预设表合并;

B3:更新第二相邻链表节点的节点信息及所述目标节点的节点信息,并将所述待删除节点从所述链表中删除,以完成所述链表的更新;所述第二相邻链表节点为除所述目标节点以外的与所述待删除节点相邻的链表节点。

本申请实施例中,链表节点中的查询记录信息还包括单位时间段内的查询次数信息,即在单位时间段内,若检测到存在查询该预设表的数据的查询请求,则记录该查询请求对应的查询耗时,同时将该预设表的查询记录次数加1。

在B1中,在当前单位时间段结束后,检测各个链表节点中存储的查询次数,若存在查询次数为0或者小于预设次数的目标节点,则说明该目标节点对应的预设表(以下将预设表称为第一预设表)包含的数据被请求查询的频次较低,即该第一预设表可以被合并,从而能够在不影响查询效率的前提下节省存储空间。此时,获取第一相邻链表节点的节点信息,该第一相邻链表节点即为与目标节点相邻的链表节点。通过该第一相邻链表节点的节点信息来进一步确定该目标节点对应的第一预设表是否可以与相邻的预设表进行合并。具体地,该第一相邻链表节点的信息包括该目标节点的上一个链表节点的节点信息和/或该目标节点的下一个链表节点的节点信息。

在B2中,判断第一相邻链表节点的节点信息是否符合预设条件,若符合,则将该第一相邻链表节点确定为待删除节点,并将该目标节点对应的第一预设表与该待删除节点对应的预设表合并。可选地,第一相邻链表节点包括目标节点的上一个链表节点和目标节点的下一个链表节点;可以先判断目标节点的上一个链表节点是否符合预设条件,若符合,则直接将该目标节点的上一个链表节点确定为待删除节点;若不符合,则进一步判断目标节点的下一个链表节点是否符合预设条件,若符合,则将该目标节点的下一个链表节点确定为待删除节点;若目标节点的上一个链表节点、目标节点的下一个链表节点均不符合预设条件,则判定当前第一预设表无法与相邻的预设表进行合并,不进行合并操作。

在B3中,由于需要将待删除节点删除,因此需要更新与该待删除节点相邻的链表节点的节点信息,具体地,更新与该待删除节点相邻的链表节点的相邻链表节点地址指针信息。其中,与该待删除节点相邻的链表节点包括目标节点以及除了目标节点外的第二相邻链表节点。具体地,若该待删除节点为目标节点的上一个链表节点,则该第二相邻链表节点为该待删除节点的上一个链表节点;若该待删除节点为目标节点的下一个链表节点,则第二相邻链表节点为该待删除节点的下一个链表节点。在更新该第二相邻链表节点的节点信息、目标节点的节点信息后,即可以将该待删除节点删除,以完成该链表的更新。

本申请实施例中,根据链表中链表节点记录的预设表的查询次数信息,对查询频次较低的预设表进行合并;由于查询频次较低的预设表不需要频繁响应查询请求,即使该预设表存储了较多的数据也不会影响数据的查询效率,因此将该查询频次较低的预设表合并,使得查询频次较低的预设表存储更多的数据,能够在不影响查询效率的前提下节省存储空间,进一步提高数据的存储效率。

可选地,所述预设表的标识信息具体包括时间戳信息标识,所述第一相邻链表节点包括所述目标节点的上一个链表节点,所述步骤B2包括:

若所述目标节点的上一个链表节点的节点信息符合预设条件,则将所述目标节点的上一个链表节点确定为待删除节点,并将所述目标节点对应的第一预设表与所述目标节点的上一个链表节点对应的第二预设表合并;

对应地,所述步骤B3包括:

B31a:更新所述待删除节点的上一个链表节点的相邻链表节点地址指针信息及所述目标节点的相邻链表节点地址指针信息,并将所述待删除节点从所述链表中删除;

B32a:根据合并得到的新的预设表包含的时间戳信息,更新所述目标节点的时间戳信息标识,以建立所述新的预设表与所述目标节点的对应关系。

本申请实施例中的第一相邻链表节点包括目标节点的上一个链表节点,该目标节点的上一个链表节点对应的预设表为第二预设表。在步骤B2中,当判定该目标节点的上一个链表节点符合预设条件时,将其确定为待删除节点,并将目标节点对应的第一预设表与该第二预设表合并。具体地,将该第二预设表的数据内容(包括存储的数据以及该数据对应的时间戳信息)合并至第一预设表中。

在步骤B31a中,由于需要删除待删除节点,需要先将与该待删除节点相邻的链表节点的相邻链表节点地址指针信息进行更新,以免待删除节点删除后,出现相邻链表节点地址指针信息错误的情况。具体地,本申请实施例中的与待删除节点相邻的链表节点包括该待删除节点的上一个链表节点以及目标节点;将该待删除节点的上一个链表节点的相邻链表节点地址指针信息和该目标节点的相邻链表节点地址指针信息进行更新,之后再将该待删除节点从该链表中删除。具体地,根据该目标节点的节点地址信息,更新该待删除节点的上一个链表节点的相邻链表节点地址指针信息,根据该待删除节点的上一链表节点的节点地址信息,更新该目标节点的相邻链表节点地址指针信息。示例性地,设如图4所示的链表中,目标节点为链表节点3,待删除节点为链表节点2,则待删除节点的上一个链表节点具体为链表节点2的上一个链表节点,即如图4所示的链表节点1;设该链表节点1(即待删除节点的上一个链表节点)的节点地址信息为“1”,链表节点3(即目标节点)的节点地址信息为“3”。若需要将链表节点2删除,则需建立链表节点1与链表节点3的指向连接关系,具体通过分别更新链表节点1和链表节点3的相邻链表节点地址指针信息,来建立该指向连接关系。具体地,设在图4中,原来链表节点1存储的相邻链表节点地址指针信息为“1→next=2”,表示该链表节点1的下一个链表节点为链表节点2,由于链表节点2为待删除节点,因此此时需要将链表节点1指向链表节点3,即将链表节点1存储的相邻链表节点指针信息更新为“1→next=3”;原来链表节点3存储的相邻链表节点地址指针信息为“3→prior=2”和“3→next=4”由于链表节点2为待删除节点,因此将链表节点3存储的相邻链表节点指针信息更新为“3→prior=1”和“3→next=4”。建立链表节点1和链表节点3的指向连接关系后,将链表节点2从该链表中删除,得到如图6所示的链表。

在步骤B32a中,由于将第二预设表合并至第一预设表后,该第一预设表包含的数据的时间戳信息发生了变化,此时需要根据该第一预设表当前的时间戳信息,对应更新目标节点存储的时间戳信息标识,以使得合并更新后的第一预设表与该目标节点通过该时间戳信息建立唯一的对应关系。具体地,找出合并后的第一预设表包含的数据对应的时间戳信息中的最小时间戳信息和最大时间戳信息,将该最小时间戳信息和最大时间戳信息时间戳信息标识更新至所述目标节点中。示例性地,如图6所示,设合并得到的新的预设表为预设表2_3,则将该预设表2_3的最小时间戳信息和最大时间戳信息更新作为该目标节点当前的时间戳信息标识,以使该目标节点与该预设表2_3唯一对应。

本申请实施例中,具体在查询次数较少的目标节点的上一个链表节点符合预设条件时,将该目标节点对应的第一预设表与该目标节点的上一个链表节点对应的第二预设表合并,从而能够在不影响查询效率的前提下节省存储空间,进一步提高数据的存储效率;并且,将该目标节点的上一个链表节点作为待删除节点,在合并预设表之后,更新该待删除节点的上一个链表节点的相邻链表节点指针信息和目标节点的相邻链表节点指针信息,并将该待删除节点删除,因此能够保证链表各链表节点的相互连接指向关系的准确性;并且,还能够根据合并后的预设表的时间戳信息更新目标节点中存储的时间戳信息标识,以保证目标节点与该合并后的预设表的对应关系,使得该链表能够准确地对应记录个预设表的信息,从而便于对各预设表进行准确地管理,以提高数据的存储效率和查询响应效率。

可选地,所述预设表的标识信息具体包括时间戳信息标识,所述第一相邻链表节点包括所述目标节点的下一个链表节点,所述步骤B2包括:

若所述目标节点的下一个链表节点的节点信息符合预设条件,则将所述目标节点的下一个链表节点确定为待删除节点,并将所述目标节点对应的第一预设表与所述目标节点的下一个链表节点对应的第三预设表合并;

对应地,所述步骤B3包括:

B31b:更新所述待删除节点的下一个链表节点的相邻链表节点地址指针信息及所述目标节点的相邻链表节点地址指针信息,并将所述待删除节点从所述链表中删除;

B32b:根据合并得到的新的预设表包含的时间戳信息,更新所述目标节点的时间戳信息标识,以建立所述新的预设表与所述目标节点的对应关系。

本申请实施例中的第一相邻链表节点包括目标节点的下一个链表节点,该目标节点的下一个链表节点对应的预设表为第三预设表。在步骤B2中,当判定该目标节点的下一个链表节点符合预设条件时,将其确定为待删除节点,并将目标节点对应的第一预设表与该第三预设表合并。具体地,将该第三预设表的数据内容(包括存储的数据以及该数据对应的时间戳信息)合并至第一预设表中。

在步骤B31b中,具体地,本申请实施例中的与待删除节点相邻的链表节点包括该待删除节点的下一个链表节点以及目标节点;将该待删除节点的下一个链表节点的相邻链表节点地址指针信息和该目标节点的相邻链表节点地址指针信息进行更新,之后再将该待删除节点从该链表中删除。具体地,根据该目标节点的节点地址信息,更新该待删除节点的下一个链表节点的相邻链表节点地址指针信息,根据该待删除节点的下一链表节点的节点地址信息,更新该目标节点的相邻链表节点地址指针信息。

在步骤B32b中,由于将第三预设表合并至第一预设表后,该第一预设表包含的数据的时间戳信息发生了变化,此时需要根据该第一预设表当前的时间戳信息,对应更新目标节点存储的时间戳信息标识,以使得合并更新后的第一预设表与该目标节点通过该时间戳信息建立唯一的对应关系。具体地,找出合并后的第一预设表包含的数据对应的时间戳信息中的最小时间戳信息和最大时间戳信息,将该最小时间戳信息和最大时间戳信息时间戳信息标识更新至所述目标节点中。

可选地,在所述步骤B32a或者步骤SB32b之后,还包括:

将所述链表中的每个链表节点的查询记录清零。将链表中的每个链表节点的查询记录重置为零,开启新一轮的查询记录监控,以免之前的查询记录对之后的监控造成影响。

本申请实施例中,具体在查询次数较少的目标节点的下一个链表节点符合预设条件时,将该目标节点对应的第一预设表与该目标节点的下一个链表节点对应的第三预设表合并,从而能够在不影响查询效率的前提下节省存储空间,进一步提高数据的存储效率;并且,将该目标节点的下一个链表节点作为待删除节点,在合并预设表之后,更新该待删除节点的下一个链表节点的相邻链表节点指针信息和目标节点的相邻链表节点指针信息,并将该待删除节点删除,因此能够保证链表各链表节点的相互连接指向关系的准确性;并且,还能够根据合并后的预设表的时间戳信息更新目标节点中存储的时间戳信息标识,以保证目标节点与该合并后的预设表的对应关系,使得该链表能够准确地对应记录个预设表的信息,从而便于对各预设表进行准确地管理,以提高数据的存储效率和查询响应效率。

可选地,所述预设条件包括:

所述第一相邻链表节点存储的所述查询次数为0或者小于第二预设次数;和/或所述第一相邻链表节点对应的预设表的数据量与所述第一预设表的数据量的总和小于预设数据量。

预设条件可以包括该第一相邻链表节点的节点信息中的查询次数为0或者小于第二预设次数。即,与第一预设表合并的相邻预设表的查询次数也需要尽量地少,从而避免合并后导致单个第一预设表的查询次数过多而降低数据查询效率。其中,该第二预设次数可以与上述的第一预设次数相同也可以不同,此处不作限定。

预设条件还可以包括该第一相邻链表节点对应的预设表的数据量与第一预设表的数据量的总和小于预设数据量。具体地,若该第一相邻链表节点为目标节点的上一个链表节点,则该链表节点对应的预设表为第二预设表;若该第一相邻链表节点为目标节点的下一个链表节点,则该第一相邻链表节点对应的预设表为第三预设表。当该第一相邻链表节点对应的预设表的数据量加上第一预设表的数量的总和小于预设数据量时,说明即使将该第一相邻链表节点对应的预设表和第一预设表合并为一个新的预设表后,该新的预设表的数据量仍不会过大,因而从该新的预设表中进行数据查询的耗时不会过长,此时可以将第一预设表和该第一相邻链表节点对应的预设表进行合并。否则,说明该第一相邻链表节点对应的预设表和第一预设表合并为一个新的预设表后,可能存在由于数据量过大影响查询效率的情况,此时则判定该链表节点不符合预设条件,不进行预设表的合并。

本申请实施例中由于能够考虑目标节点相邻的第一相邻链表节点(即目标节点的上一个链表节点或者目标节点的下一个链表节点)存储的查询次数和/或第一预设表相邻的预设表(例如第二预设表或者第三预设表)的数据量与该第一预设表的数据量的总和,因此能够提前控制合并后的新的预设表的查询次数或者数据量,从而避免由于合并后的新的预设表的查询响应效率较低而降低整体的数据查询效率。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

实施例三:

图7示出了本申请实施例提供的一种数据存储装置的结构示意图,为了便于说明,仅示出了与本申请实施例相关的部分:

该数据存储装置包括:数据获取单元71、数据保存单元72、删除单元73。其中:

数据获取单元71,用于获取数据,并记录所述数据的时间戳信息,所述数据为时序型数据。

数据保存单元72,用于将所述数据作为热数据保存至热数据存储节点,并同时保存至冷数据存储节点;其中,所述热数据存储节点用于响应热数据的查询请求;所述冷数据存储节点用于响应冷数据的查询请求。

删除单元73,用于若检测到所述数据的保存时长超出预设的热数据保存时长,则判定所述数据为冷数据,并将所述数据从所述热数据存储节点删除,其中所述数据的保存时长根据所述数据的时间戳信息确定。

可选地,在所述数据保存单元72中,所述热数据存储节点存储于固态存储器中,所述冷数据存储节点存储于机械存储器中。

可选地,所述数据存储装置还包括:

查询单元,用于获取查询请求,所述查询请求包含查询时间范围信息;若根据所述查询时间范围信息及所述热数据保存时长确定所述查询请求为热数据的查询请求,则将所述热数据存储节点确定为目标响应节点,否则将所述冷数据存储节点确定为目标响应节点;在所述目标响应节点中查询得到所述查询请求对应的数据。

可选地,所述数据存储装置还包括:

预设表创建单元,用于每隔预设时间,创建用于存储预设时段的时序型数据的预设表;

对应地,所述数据获取单元71,具体用于在预设时段内持续获取数据,记录所述数据的时间戳信息,并将所述数据及所述数据的时间戳信息对应存储至所述预设表中;

对应地,所述数据保存单元72,具体用于将所述预设表中的所有数据作为热数据,并将所述预设表保存至热数据存储节点和冷数据存储节点中;

对应地,所述删除单元73,具体用于根据所述预设表中的时间戳信息确定所述预设表中的最大时间戳;根据所述最大时间戳及当前的系统时间戳确定所述预设表对应的保存时长;若检测到所述预设表对应的保存时长大于所述热数据保存时长,则判定所述预设表中的所有数据为冷数据,并将所述预设表从所述热数据存储节点删除。

可选地,所述冷数据存储节点保存了至少两个所述预设表,所述冷数据存储节点还包括用于记录预设表的信息的链表,所述链表的每个链表节点依次对应一个预设表,每个所述链表节点的节点信息包括相邻链表节点地址指针信息、预设表的标识信息及查询记录信息,其中所述预设表的标识信息用于按序确定所述链表节点与所述预设表的对应关系,对应地,所述数据存储装置还包括:

查询记录信息监测单元,用于在每个单位时间段内监测各个预设表的查询记录信息,并将所述查询记录信息存储至所述预设表对应的所述链表节点中,其中所述查询记录信息至少包括查询耗时;

预设表拆分单元,用于若检测到所述链表节点中存在耗时节点,则将所述耗时节点对应的预设表拆分为L个更新后的预设表,其中所述耗时节点为存储的所述查询耗时大于预设耗时阈值的链表节点;所述L为根据所述查询耗时及所述预设耗时阈值确定的大于1的正整数;

第一更新单元,用于根据所述L个更新后的预设表,在所述链表中的所述耗时节点之后插入新建的链表节点,并分别为所述新建的链表节点、所述耗时节点、以及所述耗时节点的下一个链表节点设置各自对应的所述节点信息,以完成对所述链表的更新。

可选地,所述数据存储装置还包括:

目标节点检测单元,用于若检测到所述链表节点中存在目标节点,则根据所述目标节点的相邻链表节点地址指针信息,获取第一相邻链表节点的节点信息;所述目标节点为存储的所述查询次数为0或者小于第一预设次数的链表节点,所述第一相邻链表节点为与所述目标节点相邻的链表节点;

预设表合并单元,用于将所述节点信息符合预设条件的所述第一相邻链表节点确定为待删除节点,并将所述目标节点对应的第一预设表与所述待删除节点对应的预设表合并;

第二更新单元,用于更新第二相邻链表节点的节点信息及所述目标节点的节点信息,并将所述待删除节点从所述链表中删除,以完成所述链表的更新;所述第二相邻链表节点为除所述目标节点以外的与所述待删除节点相邻的链表节点。

可选地,所述预设表的标识信息具体包括时间戳信息标识,所述第一相邻链表节点包括所述目标节点的上一个链表节点,对应地:

所述预设表合并单元,具体用于若所述目标节点的上一个链表节点的节点信息符合预设条件,则将所述目标节点的上一个链表节点确定为待删除节点,并将所述目标节点对应的第一预设表与所述目标节点的上一个链表节点对应的第二预设表合并;

所述第二更新单元,具体用于更新所述待删除节点的上一个链表节点的相邻链表节点地址指针信息及所述目标节点的相邻链表节点地址指针信息,并将所述待删除节点从所述链表中删除;根据合并得到的新的预设表包含的时间戳信息,更新所述目标节点的所述时间戳信息标识,以建立所述新的预设表与所述目标节点的对应关系。

可选地,所述预设表的标识信息具体包括时间戳信息标识,所述第一相邻链表节点包括所述目标节点的下一个链表节点,对应地:

所述预设表合并单元,具体用于若所述目标节点的下一个链表节点的节点信息符合预设条件,则将所述目标节点的下一个链表节点确定为待删除节点,并将所述目标节点对应的第一预设表与所述目标节点的下一个链表节点对应的第三预设表合并;

所述第二更新单元,具体用于更新所述待删除节点的下一个链表节点的相邻链表节点地址指针信息及所述目标节点的相邻链表节点地址指针信息,并将所述待删除节点从所述链表中删除;根据合并得到的新的预设表包含的时间戳信息,更新所述目标节点的所述时间戳信息标识,以建立所述新的预设表与所述目标节点的对应关系。

可选地,所述预设条件包括:

所述第一相邻链表节点存储的所述查询次数为0或者小于第二预设次数和/或所述第一相邻链表节点对应的预设表的数据量与所述第一预设表的数据量的总和小于预设数据量。

可选地,所述数据存储装置还包括:

设置单元,用于获取设置指令,根据所述设置指令设置热数据保存时长。

需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

实施例四:

图8是本申请一实施例提供的终端设备的示意图。如图8所示,该实施例的终端设备8包括:处理器80、存储器81以及存储在所述存储器81中并可在所述处理器80上运行的计算机程序82,例如数据存储程序。所述处理器80执行所述计算机程序82时实现上述各个数据存储方法实施例中的步骤,例如图2所示的步骤S201至S203。或者,所述处理器80执行所述计算机程序82时实现上述各装置实施例中各模块/单元的功能,例如图7所示单元71至73的功能。

示例性的,所述计算机程序82可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器81中,并由所述处理器80执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序82在所述终端设备8中的执行过程。例如,所述计算机程序82可以被分割成数据获取单元、数据保存单元、删除单元,各单元具体功能如下:

数据获取单元,用于获取数据,并记录所述数据的时间戳信息,所述数据为时序型数据。

数据保存单元,用于将所述数据作为热数据保存至热数据存储节点,并同时保存至冷数据存储节点;其中,所述热数据存储节点用于响应热数据的查询请求;所述冷数据存储节点用于响应冷数据的查询请求。

删除单元,用于若检测到所述数据的保存时长超出预设的热数据保存时长,则判定所述数据为冷数据,并将所述数据从所述热数据存储节点删除,其中所述数据的保存时长根据所述数据的时间戳信息确定。

所述终端设备8可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器80、存储器81。本领域技术人员可以理解,图8仅仅是终端设备8的示例,并不构成对终端设备8的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。

所称处理器80可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器81可以是所述终端设备8的内部存储单元,例如终端设备8的硬盘或内存。所述存储器81也可以是所述终端设备8的外部存储设备,例如所述终端设备8上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器81还可以既包括所述终端设备8的内部存储单元也包括外部存储设备。所述存储器81用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器81还可以用于暂时地存储已经输出或者将要输出的数据。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

27页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:日程地址识别方法、设备、存储介质和软件程序产品

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!