1.本说明书实施例涉及计算机技术领域,特别涉及一种数据处理方法。
背景技术:2.时序数据是基于某种频率持续产生的一系列指标数据。在应用性能监测、物联网和工业互联网存在大量时序数据,时序数据库就是为高效存储和查询这类数据而设计。在时序数据库中,有些场景需要删除时序数据库中存储的度量数据,该场景包括删除误写入的度量数据、清理不再使用的度量数据等。而传统的删除度量数据的方法存在成本高、效率低的问题,严重情况下的删除操作会导致数据库崩溃。
技术实现要素:3.有鉴于此,本说明书施例提供了一种数据处理方法。本说明书一个或者多个实施例同时涉及一种数据处理装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。
4.根据本说明书实施例的第一方面,提供了一种数据处理方法,包括:
5.接收目标时序数据的数据删除处理指令,基于所述数据删除处理指令处理内存中的所述目标时序数据;
6.确定所述数据删除处理指令的接收时间,基于所述接收时间以及磁盘中的所述目标时序数据生成初始处理标记;
7.基于所述目标时序数据确定所述目标时序数据在磁盘存储的至少一个待处理文件,基于所述初始处理标记对所述至少一个待处理文件中的所述目标时序数据进行删除处理。
8.根据本说明书实施例的第二方面,提供了一种数据处理装置,包括:
9.指令接收模块,被配置为接收目标时序数据的数据删除处理指令,基于所述数据删除处理指令处理内存中的所述目标时序数据;
10.标记生成模块,被配置为确定所述数据删除处理指令的接收时间,基于所述接收时间以及磁盘中的所述目标时序数据生成初始处理标记;
11.数据处理模块,被配置为基于所述目标时序数据确定所述目标时序数据在磁盘存储的至少一个待处理文件,基于所述初始处理标记对所述至少一个待处理文件中的所述目标时序数据进行删除处理。
12.根据本说明书实施例的第三方面,提供了一种计算设备,包括:
13.存储器和处理器;
14.所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,其中,所述处理器执行所述计算机可执行指令时实现所述数据处理方法的步骤。
15.根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现任意一项所述数据处理方法的步骤。
16.根据本说明书实施例的第五方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据处理方法的步骤。
17.本说明书一个实施例通过接收目标时序数据的数据删除处理指令,基于所述数据删除处理指令处理内存中的所述目标时序数据;确定所述数据删除处理指令的接收时间,基于所述接收时间以及磁盘中的所述目标时序数据生成初始处理标记;基于所述目标时序数据确定所述目标时序数据在磁盘存储的至少一个待处理文件,基于所述初始处理标记对所述至少一个待处理文件中的所述目标时序数据进行删除处理。
18.具体的,通过先处理存储在内存中的目标时序数据,之后并未对磁盘中存储的目标时序数据直接进行处理,而是在对磁盘中存储的目标时序数据进行处理之前,在磁盘空间中为该目标时序数据生成处理标记,基于该处理标记实现用户在此感知到该目标时序数据已经处理结束,进而后续再基于该处理标记真正地处理该目标时序数据,通过该方式,在处理过程中仅基于目标时序数据生成处理标记,并未针对全量时间线的数据生成处理标记,进而减少了数据库的内存资源开销,也提升了目标时序数据的处理效率。
附图说明
19.图1是本说明书一个实施例提供的一种数据处理方法的时间序列的结构示意图;
20.图2是本说明书一个实施例提供的一种数据处理方法的删除度量数据的流程示意图;
21.图3是本说明书一个实施例提供的一种数据处理方法的流程图;
22.图4是本说明书一个实施例提供的一种数据处理方法的处理标记的磁盘存储格式示意图;
23.图5是本说明书一个实施例提供的一种数据处理方法的目标时序数据被覆盖示意图;
24.图6是本说明书一个实施例提供的一种数据处理方法的处理过程示意图;
25.图7是本说明书一个实施例提供的一种数据处理装置的结构示意图;
26.图8是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
27.在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
28.在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
29.应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类
似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
30.首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
31.时序数据库tsdb(time series database):提供高效存取时序数据和统计分析功能的数据管理系统。
32.时序数据(time series data):基于稳定频率持续产生的一系列指标监测数据。例如,监测某城市的空气质量时,每秒采集一个二氧化硫浓度的值而产生的一系列数据。
33.度量(metric):监测数据的指标,例如风力和温度。
34.标签(tag):度量(metric)虽然指明了要监测的指标项,但没有指明要针对什么对象的该指标项进行监测。标签(tag)就是用于表明指标项监测针对的具体对象,属于指定度量下的数据子类别。一个标签(tag)由一个标签键(tagkey)和一个对应的标签值(tagvalue)组成,例如“城市(tagkey)=杭州(tagvalue)”就是一个标签(tag)。更多标签示例:机房=a、ip=172.220.110.1。当标签键和标签值都相同才算同一个标签;标签键相同,标签值不同,则不是同一个标签。在监测数据的时候,指定度量是“气温”,标签是“城市=a”,则监测的就是a的气温。
35.标签键(tagkey,tagk):为指标项(metric)监测指定的对象类型(会有对应的标签值来定位该对象类型下的具体对象),例如国家、省份、城市、机房、ip等。
36.标签值(tagvalue,tagv):标签键(tagkey)对应的值。例如,当标签键(tagkey)是“国家”时,可指定标签值(tagvalue)为“中国”。
37.值(value):度量对应的值,例如15级(风力)和20℃(温度)。
38.时间戳(timestamp):数据(度量值)产生的时间点。
39.时间线(timeline):等同于时间序列的概念。
40.时间线索引(time series index):时间线索引
41.时间分区索引(time partitioned index):按照时间段索引时间线记录时间线的生命周期。
42.预写日志(wal):高效记录数据的方式。
43.墓碑标记(tombstone):标记删除的数据。
44.memstore:存储数据库在内存部分的数据。
45.数据点(data point):针对监测对象的某项指标(由度量和标签定义)按特定时间间隔(连续的时间戳)采集的每个度量值就是一个数据点。“一个度量+n个标签(n>=1)+一个时间戳+一个值”定义一个数据点。
46.时间序列(time series):针对某个监测对象的某项指标(由度量和标签定义)的描述。“一个度量+n个标签kv组合(n>=1)”定义为一个时间序列,某个时间序列上产生的数据值的增加,不会导致时间序列的增加。
47.需要说明的是,时间序列指代的数据格式可参见图1所示,图1示出了时间序列的结构示意图。
48.图1中表示度量为温度的时序数据,标签为楼层=33、房间号=3302、设备标识=7649501,图1中的下方列举了5个数据点,分别为时间戳=1、数据值为26;时间戳=2、数据值为25.8;时间戳=3、数据值为26.1;时间戳=4、数据值为26.3;时间戳=5、数据值为
26.5。针对一组时间戳以及数据值描述的检测对象的指标为一个时间序列。
49.在传统时序数据库中,例如influxdb、prometheus等,具备删除度量数据的能力,但在删除度量数据的过程中,需要查找出该度量数据的全部时间线,然后逐一删除每条时间线的数据,对于时间线数据量很大的度量数据,例如,时间线数量到一定级别以上,查找时间线的过程会耗时较大,并且占用较多的内存资源,容易导致数据库的内存耗尽,在对删除操作以的持久化存储方面,删除一种度量数据会存储百万以上的处理标记,存在严重写放大,使得删除度量数据的成本高,且效率较低,更可能会导致数据库崩溃。
50.参见图2,图2示出了本说明书一实施例提供的数据处理方法的删除度量数据的流程示意图。
51.图2中的时序数据库在接收到删除度量a的请求之后,在该时序数据库中查找该度量a的全部时间线,并将每个时间线进行持久化存储,生成对应的每个时间线的处理标记,再基于每个处理标记删除每个时间线中的度量a数据。需要说明的是,在时序数据库中查找该度量a的全部时间线的操作,可能会存在查找大量的时间线数据,该过程将十分耗时,并且占用较多的内存资源,导致用户查找数据的体验较差。
52.基于此,在本说明书中,提供了一种数据处理方法,本说明书同时涉及一种数据处理装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,在下面的实施例中逐一进行详细说明,以更好地减少数据库的内存资源开销,提升处理效率。
53.图3示出了根据本说明书一个实施例提供的一种数据处理方法的流程图,具体包括以下步骤,需要说明的是,本实施例提供的数据处理方法应用于时序数据库,以对时序数据库中的度量数据进行删除处理为例,进行详细说明。
54.需要说明的是,本实施例提供的数据处理方法中,数据删除处理指令可以理解为在两个方面对目标时序数据进行删除,一个是需要删除内存中存储的目标时序数据,一个是需要删除磁盘中已经进行持久化存储的目标时序数据,由于在时序数据库中,磁盘中存储的目标时序数据量比较大,因此对磁盘中存储的目标时序数据进行删除的过程需要较长的时间,使得用户对数据库的删除操作体验感较差,基于此,本实施例提供的数据删除方法,通过先清理内存中的目标时序数据,再生成一个持久化的处理标记,进而对磁盘中存储的目标时序数据先执行查询过滤,使得用户体验到该目标时序数据已被删除,后续再对该目标时序数据进行实际的删除操作,提升时序数据库中的删除效率。
55.步骤302:接收目标时序数据的数据删除处理指令,基于所述数据删除处理指令处理内存中的所述目标时序数据。
56.其中,目标时序数据可以理解为时序数据库中存储的某一度量的数据,比如度量为温度的数据。
57.实际应用中,时序数据库在接收到针对目标时序数据的数据删除处理指令之后,对存储在内存中的目标时序数据进行处理,比如数据删除处理指令,则时序数据库基于该数据删除指令删除时序数据库内存中的目标时序数据。
58.具体实施时,可先根据时序数据库的倒排索引表,查找存储目标时序数据对应的时间线,再将时间线和时间线的数据点从内存中删除;具体的,所述基于所述数据删除处理指令处理内存中的所述目标时序数据,包括:
59.基于所述目标时序数据在内存中确定所述目标时序数据的倒排索引表,并基于所
述倒排索引表查找所述目标时序数据对应的目标时间线;
60.根据所述目标时间线删除所述内存中的所述目标时序数据。
61.实际应用中,时序数据库可基于目标时序数据在内存中确定对应的倒排索引表,并在该倒排索引表中查找目标时序数据对应的目标时间线,再删除目标时间线中对应的目标时序数据。由于只查找内存中的倒排索引,而且在内存中的数据量比较小,因此删除内存中的目标时序数据的过程也相对比较快速。
62.本说明书实施例提供的数据处理方法,通过在内存中查找倒排索引表,进而可快速地确定目标时序数据对应的时间线,删除该时间线上记录的目标时序数据。
63.步骤304:确定所述数据删除处理指令的接收时间,基于所述接收时间以及磁盘中的所述目标时序数据生成初始处理标记。
64.其中,初始处理标记可以理解为基于删除操作请求记录的具有删除属性的标记信息,比如可生成数据库的墓碑标记,可表示为tombstone。
65.具体的,时序数据库在接收目标时序数据的数据删除处理指令时,能够确定该数据删除处理指令的接收时间,并记录该数据删除处理指令的接收时间和磁盘中的目标时序数据,再基于该接收时间和磁盘中的目标时序数据,将该数据处理操作生成一个tombstone。例如,接收的目标时序数据的数据删除处理指令为数据删除指令,目标时序数据是指温度数据,且接收该数据删除指令的时间为2021
‑1‑
1 12:00,则根据该时间以及温度生成初始处理标记(tombstone)。
66.在对目标时序数据的数据删除处理指令的操作生成处理标记的情况下,不仅要把该处理标记存储至内存中,还需要将该处理标记存储至磁盘中,便于后续在磁盘中使用;具体的,所述基于所述接收时间以及所述目标时序数据生成初始处理标记之后,还包括:
67.将所述初始处理标记存储至所述磁盘,其中,所述初始处理标记包括标记属性、标记长度、度量信息以及所述数据删除处理指令的接收时间。
68.其中,标记属性可以理解为对该数据处理操作的新建、删除等标记;标记长度可以理解为数据处理操作中的度量长度;度量信息可以理解为数据处理操作的度量类型;数据删除处理指令的接收时间可以理解为时序数据库接收到该数据删除处理指令的时间。
69.实际应用中,基于该数据删除处理指令生成的处理标记,不仅将该处理标记存储至内存中,还需要将该处理标记存储至磁盘的文件中,目的是为了避免数据库重启时,内存数据被清空后,无法获知数据删除处理指令的处理内容,进而需要将该处理标记存储至磁盘。
70.进一步地,参见图4,图4示出了本说明书实施例提供的数据处理方法中的处理标记的磁盘存储格式示意图。
71.图4中的处理标记包括标记属性(flag)、标记长度(metric size)、度量信息(metric)以及数据删除处理指令的接收时间(create time),比如,标记属性为对目标时序数据的删除操作、标记长度为度量长度为a、度量信息为温度、接收时间为2021
‑1‑
1 12:00。
72.本说明书实施例提供的数据处理方法,通过将根据数据删除处理指令生成的初始处理标记存储至磁盘中,便于后续在时序数据库进行重启或者其他意外操作之后,该处理标记的丢失,导致时序数据库无法获知数据处理的指令,而无法执行后续的操作任务,影响时序数据库的处理效率。
73.在对目标时序数据生成了初始处理标记之后,表明该时序数据库应该将目标时序数据进行了处理,因此,为了让用户感知到已经将目标时序数据进行删除,则可根据该初始处理标记对目标时序数据进行标记;具体的,所述基于所述目标时序数据确定所述目标时序数据在磁盘存储的至少一个待处理文件之前,还包括:
74.接收所述目标时序数据的数据查询指令,在基于所述数据查询指令确定内存中的所述目标时序数据为空的情况下,基于所述初始处理标记在磁盘中存储的所述目标时序数据标记为空。
75.具体实施时,在时序数据库对数据删除处理指令生成处理标记之后,若对目标时序数据进行删除操作的情况下,在确定内存中的目标时序数据为空的情况下,表明该目标时序数据已经在内存中被删除,则可基于该初始处理标记在磁盘中对目标时序数据标记为空,表明在磁盘中存储的目标时序数据已经被过滤,用户无法查询到该目标时序数据。
76.沿用上例,时序数据库接收到对温度数据的数据查询指令,根据该数据查询指令可确定该温度数据是否在内存中,在确定内存中的目标时序数据为空的情况下,则可基于初始处理标记在磁盘中将存储的目标时序数据标记为空,表明用户在磁盘中也无法查询到该目标时序数据。
77.本说明书实施例提供的数据处理方法,在对目标时序数据进行数据查询的过程中,基于上述已经对目标时序数据进行了删除操作,则在磁盘中也应该无法查询到目标时序数据,进而在磁盘中根据初始处理标记将目标时序数据标记为空,以实现用户无法查询到该目标时序数据。
78.为了更快速地将磁盘中的目标时序数据标记为空,需要确定目标时序数据存储在磁盘中的文件,再对该文件进行标记;具体的,所述基于所述处理标记在磁盘中存储的所述目标时序数据标记为空,包括:
79.确定在磁盘中存储所述目标时序数据的目标文件的写入时间,基于所述写入时间与所述处理标记的接收时间确定所述目标文件与所述初始处理标记的关联关系;
80.基于所述关联关系将存储在所述目标文件中的目标时序数据标记为空。
81.其中,关联关系可以理解为目标文件与初始处理标记之间的时间性的覆盖关系,在确定初始标记的创建时间可覆盖目标文件的生成时间后,即可基于初始处理标记处理目标文件中的目标时序数据。
82.需要说明的是,时序数据库将数据在磁盘中存储的方式,分为多个文件,每个文件中存储大量时间线的数据,因此在对目标时序数据的删除操作是对相应的文件中的目标时序数据进行删除操作。
83.实际应用中,在文件查询数据时,需要根据处理标记的提交时间和存储目标时序数据的文件创建时间来判断覆盖关系,规则是若tombstone在文件创建后提交,则tombstone可覆盖掉文件中的目标时序数据,参见图5,图5示出了本说明书实施例提供的数据处理方法的目标时序数据被覆盖示意图。
84.图5中纵轴表示时间t,在0
‑
t1的时间内,文件1被创建,且写入大量的时间线数据,在t1
‑
t2的时间内,根据用户提交目标时序数据的数据删除指令的时间,以及目标时序数据生成初始处理标记,因此初始处理标记的生成时间在文件1创建的时间后,进而可确定初始处理标记可覆盖文件1,文件1中被初始处理标记覆盖的目标时序数据视为被删除,在后续
的数据查询过程中,则忽略掉已经被覆盖的文件1中的目标时序数据。例如,图5中文件1写入了数据a,而初始处理标记中的度量信息为a,因此,针对初始处理标记所删除的度量为a,可确定此次数据删除操作则删除文件1中的数据a。
85.此外,在后续不断写入文件2、文件3的情况下,均可根据后续生成的初始标记的生成时间与文件的创建时间判断覆盖关系,进而实现将文件中的目标时序数据视为被删除。
86.本说明书实施例提供的数据处理方法,通过处理标记的生成时间以及存储目标时序数据的目标文件的创建时间之间的覆盖关系,在目标文件中确定被覆盖的目标时序数据,实现对用户所需删除的目标时序数据进行查询过滤。
87.步骤306:基于所述目标时序数据确定所述目标时序数据在磁盘存储的至少一个待处理文件,基于所述初始处理标记对所述至少一个待处理文件中的所述目标时序数据进行删除处理。
88.其中,待处理文件可以理解为在磁盘中存储目标时序数据的文件,也是后续需要对该文件中的目标时序数据实际进行删除的文件。
89.需要说明的是,根据目标时序数据的属性信息可以在磁盘中查找到存储该目标时序数据的待处理文件,并对待处理文件的目标时序数据进行实际删除。
90.具体实施时,时序数据库根据目标时序数据即可确定该目标时序数据在磁盘中存储的待处理文件,并根据上述方式生成的初始处理标记对待处理文件中的目标时序数据进行删除,此次删除过程为对磁盘中存储的目标时序数据进行实际的删除操作。
91.基于此,本实施例提供的数据处理方法,通过先对内存中存储的目标时序数据进行删除,然后再对磁盘中存储的目标时序数据进行标记处理,使得用户感知到目标时序数据已经删除,提高了数据库的处理效率,而真正的删除目标时序数据的过程可以延迟在后续的过程中,不影响返回给用户已经删除的反馈,进而达到提升删除效率。
92.上述实施例以目标时序数据存储在一个目标文件为例对此过程进行说明,而本说明书实施例可针对目标时序数据存储在磁盘中的多个文件的情况下,对目标时序数据的删除操作的详细说明。
93.基于此,在针对一个数据删除指令下生成一个初始处理标记之后,时序数据库还在不断地写入新的目标时序数据,进而将新的目标时序数据又继续存储在磁盘中;具体的,所述基于所述目标时序数据确定所述目标时序数据在磁盘存储的至少一个待处理文件之前,还包括:
94.接收目标时序数据的数据写入指令,将所述数据写入指令携带的目标时序数据存储至内存;
95.基于所述目标时序数据以及所述数据写入指令中携带的数据写入时间确定所述目标时序数据在磁盘存储的存储文件,将所述目标时序数据存储至所述存储文件。
96.实际应用中,时序数据库可接收新的目标时序数据的数据写入指令,将该数据写入指令携带的新的目标时序数据先存储至内存中,再将该新的目标时序数据存储至磁盘中,首先基于新的目标时序数据以及时序数据库接收数据写入指令时的数据写入时间,确定该新的目标时序数据在磁盘中应存储的存储文件,将该新的目标时序数据存储至该存储文件中。
97.例如,用户提交删除温度数据的指令,即根据提交删除温度数据指令的提交时间
以及温度数据生成初始处理标记,并基于初始处理标记可确定温度数据存储在磁盘中的文件1中,而在后续的过程中,又继续写入新的温度数据,并将新的温度数据存储至内存中,且根据温度数据以及写入温度数据的时间确定将该新的温度数据应存储在磁盘中的存储文件,该存储文件为文件2,即将新的温度数据存储在文件2中。
98.本说明书实施例提供的数据处理方法,通过向时序数据库写入新的温度数据,将新的温度数据不仅存储在内存中,还需要存储在磁盘对应的文件中,能够保证数据时序数据库写入的安全性。
99.进一步地,所述基于所述初始处理标记对所述至少一个待处理文件中的所述目标时序数据进行删除处理,包括:
100.接收所述目标时序数据的第一数据删除处理指令,基于所述第一数据删除处理指令处理所述内存中的所述目标时序数据;
101.确定所述第一数据删除处理指令的接收时间,基于所述接收时间以及所述目标时序数据生成第一处理标记;
102.基于所述第一处理标记以及所述初始处理标记,对所述待处理文件以及所述存储文件中的目标时序数据进行删除处理。
103.实际应用中,沿用上述实施例的应用场景,在接收到针对新的目标时序数据的数据删除指令的情况下,将内存中存储的新的目标时序数据进行删除后,根据新的数据删除指令的接收时间以及新的目标时序数据生成第一处理标记,即一个数据删除指令可对应生成一个处理标记,此时,具有两个处理标记,分别为初始处理标记和第一处理标记,基于该初始处理标记以及第一处理标记对待处理文件以及存储文件中的目标时序数据同时进行处理。
104.本说明书实施例提供的数据处理方法,对于新写入的目标时序数据提交的删除请求中,也相应地生成对应的处理标记,并根据新生成的处理标记以及旧的处理标记对磁盘中存储目标时序数据的文件进行合并处理,进而可提升数据的删除效率。
105.为了提高相同数据的删除效率,可以将目标时序数据在接收到多次删除指令之后,确定存储了目标时序数据的目标文件,进行统一的合并删除处理;具体的,所述基于所述第一处理标记以及所述初始处理标记,对所述待处理文件以及所述存储文件中的目标时序数据进行删除处理,包括:
106.基于所述第一处理标记以及所述初始处理标记,在所述待处理文件以及所述存储文件中确定与所述第一处理标记以及所述初始处理标记均有覆盖关系的目标文件;
107.将所述目标文件进行合并处理,生成新目标文件,并删除所述新目标文件中的所述目标时序数据。
108.实际应用中,在第一处理标记和初始处理标记均存在的情况下,可在对应的待处理文件以及存储文件中,确定与第一处理标记和初始处理标记均具有覆盖关系的目标文件,其中,目标文件的数量在本实施例中不做任何限定,可以为一个、两个、三个等。需要说明的是,覆盖关系的确定可参考上述实施例对处理标记和磁盘中的文件之间的覆盖关系的描述,本实施例对此不做过多赘述。
109.在磁盘中确定出存储目标时序数据的目标文件之后,将该目标文件进行合并处理,生成新目标文件,并删除新目标文件中的目标时序数据,此时,目标时序数据才实际被
删除掉,该真正的删除过程是延后处理的,这样删除目标时序数据的过程仅在查询内存时间线的过程耗费了较长的时间,而在删除磁盘中的目标时序数据的过程中,提高了数据的删除效率,不仅能够给用户快速删除目标时序数据的感知,也进而可减少时序数据库中的计算资源。
110.更进一步地,在对目标时序数据进行实际删除之后,应将磁盘中的处理标记进行删除处理;具体的,所述基于所述初始处理标记对所述待处理文件中的所述目标时序数据进行删除处理之后,还包括:
111.删除所述磁盘中的初始处理标记以及第一处理标记。
112.实际应用中,磁盘中会存储大量的处理标记,每接收一个数据删除指令,均会生成一个处理标记,并将该处理标记存储在内存和磁盘中,但在目标时序数据基于该处理标记进行实际删除之后,也可删除存储在磁盘中的处理标记,以节省数据库的存储空间。
113.综上,本说明书实施例提供的数据处理方法,通过先处理存储在内存中的目标时序数据之后,延迟对磁盘中存储的目标时序数据的处理,而是在磁盘空间中为该目标时序数据生成处理标记,后续基于该处理标记再处理该目标时序数据,进而实现了减少数据库的内存资源开销,提升目标时序数据的处理效率。
114.下述结合附图6,图6示出了本说明书一个实施例提供的一种数据处理方法的处理过程示意图。
115.图6中a部分为基于数据删除指令生成的处理标记的示意图,图6中的b部分为对磁盘中的文件删除目标时序数据的示意图;具体的,时序数据库在接收到针对温度数据的第一数据删除指令的情况下,可基于提交该数据删除指令的提交时间以及温度数据生成初始处理标记,且温度数据可确定存储在磁盘的文件1中,基于所述提交时间以及所述文件1创建时间之间的覆盖关系,可确定初始处理标记覆盖文件1;在温度数据不断进行写入的情况下,该温度数据可写入至文件2,那么在时序数据库接收到针对温度数据的第二数据删除指令的情况下,可与第二次提交数据删除指令的提交时间以及温度数据生成第一处理标记,同样根据覆盖关系,确定第一处理标记覆盖文件1和文件2,则被第一处理标记覆盖的文件1和文件2中的温度数据可视为被删除,在后续的查询过程中,可忽略掉被覆盖的温度数据。
116.在针对目标时序数据对应的处理标记的覆盖关系明确的情况下,可对磁盘中存储在文件1和文件2的温度数据进行实际的删除操作,由于第一处理标记已经覆盖文件1和文件2,那么可将文件1和文件2进行合并,生成文件2
‑
1,在合并的过程中,文件1忽略被初始处理标记和第一处理标记覆盖的数据,文件2忽略被第一处理标记覆盖的数据,合并后的新文件2
‑
1不再包含已被删除的数据。在合并完成后,初始处理标记和第一处理标记不再覆盖任何文件,即可将初始处理标记和第一处理标记删除,以减少时序数据库的存储空间占用率,基于此,通过合并文件过程中忽略掉被处理标记覆盖的数据,达到删除数据的目的。
117.需要说明的是,在对目标时序数据的删除过程只查内存时间线,而非全量时间线,基于度量粒度的处理标记进行持久化,而非放大到较大时间线粒度的处理标记,因此,本实施例提供的数据处理方法,可以减少数据库的内存资源开销、减少写放大,可以提升删除效率。
118.与上述方法实施例相对应,本说明书还提供了数据处理装置实施例,图7示出了本说明书一个实施例提供的一种数据处理装置的结构示意图。如图7所示,该装置包括:
119.指令接收模块702,被配置为接收目标时序数据的数据删除处理指令,基于所述数据删除处理指令处理内存中的所述目标时序数据;
120.标记生成模块704,被配置为确定所述数据删除处理指令的接收时间,基于所述接收时间以及磁盘中的所述目标时序数据生成初始处理标记;
121.数据处理模块706,被配置为基于所述目标时序数据确定所述目标时序数据在磁盘存储的至少一个待处理文件,基于所述初始处理标记对所述至少一个待处理文件中的所述目标时序数据进行删除处理。
122.可选地,所述装置,还包括:
123.标记模块,被配置为接收所述目标时序数据的数据查询指令,在基于所述数据查询指令确定内存中的所述目标时序数据为空的情况下,基于所述初始处理标记在磁盘中存储的所述目标时序数据标记为空。
124.可选地,所述指令接收模块702,进一步被配置为:
125.基于所述目标时序数据在内存中确定所述目标时序数据的倒排索引表,并基于所述倒排索引表查找所述目标时序数据对应的目标时间线;
126.根据所述目标时间线删除所述内存中的所述目标时序数据。
127.可选地,所述装置,还包括:
128.存储模块,被配置为将所述初始处理标记存储至所述磁盘,其中,所述初始处理标记包括标记属性、标记长度、度量信息以及所述数据删除处理指令的接收时间。
129.可选地,所述标记模块,进一步被配置为:
130.确定在磁盘中存储所述目标时序数据的目标文件的写入时间,基于所述写入时间与所述处理标记的接收时间确定所述目标文件与所述初始处理标记的关联关系;
131.基于所述关联关系将存储在所述目标文件中的目标时序数据标记为空。
132.可选地,所述存储模块,进一步被配置为接收目标时序数据的数据写入指令,将所述数据写入指令携带的目标时序数据存储至内存;
133.基于所述目标时序数据以及所述数据写入指令中携带的数据写入时间确定所述目标时序数据在磁盘存储的存储文件,将所述目标时序数据存储至所述存储文件。
134.可选地,所述数据处理模块706,进一步被配置为:
135.接收所述目标时序数据的第一数据删除处理指令,基于所述第一数据删除处理指令处理所述内存中的所述目标时序数据;
136.确定所述第一数据删除处理指令的接收时间,基于所述接收时间以及所述目标时序数据生成第一处理标记;
137.基于所述第一处理标记以及所述初始处理标记,对所述待处理文件以及所述存储文件中的目标时序数据进行删除处理。
138.可选地,所述数据处理模块706,进一步被配置为:
139.基于所述第一处理标记以及所述初始处理标记,在所述待处理文件以及所述存储文件中确定与所述第一处理标记以及所述初始处理标记均有覆盖关系的目标文件;
140.将所述目标文件进行合并处理,生成新目标文件,并删除所述新目标文件中的所述目标时序数据。
141.可选地,所述装置,还包括:
142.删除模块,被配置为删除所述磁盘中的初始处理标记以及第一处理标记。
143.本说明书实施例提供的数据处理装置,通过先处理存储在内存中的目标时序数据,之后并未对磁盘中存储的目标时序数据直接进行处理,而是在对磁盘中存储的目标时序数据进行处理之前,在磁盘空间中为该目标时序数据生成处理标记,基于该处理标记实现用户在此感知到该目标时序数据已经处理结束,进而后续再基于该处理标记真正地处理该目标时序数据,通过该方式,在处理过程中仅基于目标时序数据生成处理标记,并未针对全量时间线的数据生成处理标记,进而减少了数据库的内存资源开销,也提升了目标时序数据的处理效率。
144.上述为本实施例的一种数据处理装置的示意性方案。需要说明的是,该数据处理装置的技术方案与上述的数据处理方法的技术方案属于同一构思,数据处理装置的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
145.图8示出了根据本说明书一个实施例提供的一种计算设备800的结构框图。该计算设备800的部件包括但不限于存储器810和处理器820。处理器820与存储器810通过总线830相连接,数据库850用于保存数据。
146.计算设备800还包括接入设备840,接入设备840使得计算设备800能够经由一个或多个网络860通信。这些网络的示例包括公用交换电话网(pstn)、局域网(lan)、广域网(wan)、个域网(pan)或诸如因特网的通信网络的组合。接入设备840可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic))中的一个或多个,诸如ieee802.11无线局域网(wlan)无线接口、全球微波互联接入(wi
‑
max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc)接口,等等。
147.在本说明书的一个实施例中,计算设备800的上述部件以及图8中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图8所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
148.计算设备800可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备800还可以是移动式或静止式的服务器。
149.其中,处理器820用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据处理方法的步骤。
150.上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
151.本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据处理方法的步骤。
152.上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
153.本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据处理方法的步骤。
154.上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的数据处理方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
155.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
156.所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read
‑
only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
157.需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
158.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
159.以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。