掌桥专利:专业的专利平台
掌桥专利
首页

数据处理方法以及装置

文献发布时间:2023-06-19 12:19:35


数据处理方法以及装置

技术领域

本说明书实施例涉及计算机技术领域,特别涉及一种数据处理方法。本说明书一个或者多个实施例同时涉及一种数据处理装置,一种计算设备,以及一种计算机可读存储介质。

背景技术

随着互联网或者物联网的应用越来越广泛,互联网中的检测系统或者物联网设备等,产生越来越多的基于时间序列的数据,这些数据被称为时序数据。时序数据虽然来源不同,但由于采集设备版本升级、系统升级或者采集对象由于各种原因消失,总会不断有新的时间线创建、而旧的时间线逐渐淘汰,随着数据量不断增大,导致时序数据存储效率较低,并且为后续的查询带来不便,也导致查询效率降低。

发明内容

有鉴于此,本说明书施例提供了一种数据处理方法。本说明书一个或者多个实施例同时涉及一种数据处理装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。

根据本说明书实施例的第一方面,提供了一种数据处理方法,包括:

接收针对目标对象的待存储数据的数据存储请求,其中,所述数据存储请求中携带有待存储数据的属性信息以及目标对象的对象标签;

基于待存储数据的属性信息确定所述待存储数据的创建时间戳和最新时间戳,并基于所述创建时间戳和所述最新时间戳确定数据分区策略,且根据所述数据分区策略创建数据分区;

确定所述每个数据分区中所述目标对象的待存储数据,且确定所述待存储数据对应的索引数据;

基于所述索引数据对应的数据分区,所述数据分区对应的目标对象以及所述目标对象的对象标签构建第一索引表,并基于所述第一索引表将每个数据分区的待存储数据进行数据存储。

根据本说明书实施例的第二方面,提供了一种数据处理装置,包括:

接收模块,被配置为接收针对目标对象的待存储数据的数据存储请求,其中,所述数据存储请求中携带有待存储数据的属性信息以及目标对象的对象标签;

创建模块,被配置为基于待存储数据的属性信息确定所述待存储数据的创建时间戳和最新时间戳,并基于所述创建时间戳和所述最新时间戳确定数据分区策略,且根据所述数据分区策略创建数据分区;

确定模块,被配置为确定所述每个数据分区中所述目标对象的待存储数据,且确定所述待存储数据对应的索引数据;

存储模块,被配置为基于所述索引数据对应的数据分区,所述数据分区对应的目标对象以及所述目标对象的对象标签构建第一索引表,并基于所述第一索引表将每个数据分区的待存储数据进行数据存储。

根据本说明书实施例的第三方面,提供了一种计算设备,包括:

存储器和处理器;

所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令时实现所述数据处理方法的步骤。

根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现任意一项所述数据处理方法的步骤。

本说明书一个实施例,通过待存储数据的属性信息确定待存储数据的创建时间戳和最新时间戳,进而确定数据分区策略并创建数据分区,基于该数据分区构建带有目标对象以及对象标签的第一索引表,使得索引增加了时间属性,为后续可支持时间维度筛选符合查询条件的数据,并基于该第一索引表将待存储数据进行存储,实现了在海量时间线不断创建、消亡的场景下,对索引数据按照时间维度进行分区,避免了索引数据丢失,提高了数据存储的安全性,该方法通过提供了一个有效的索引策略,也进而提高对待存储数据的存储效率,后续也可以提高数据的查询效率。

附图说明

图1是本说明书一个实施例提供的一种数据处理方法的时序数据的时间序列示意图;

图2是本说明书一个实施例提供的一种数据处理方法的流程图;

图3是本说明书一个实施例提供的一种数据处理方法的数据分区示意图;

图4是本说明书一个实施例提供的一种数据处理方法的数据合并存储示意图;

图5是本说明书一个实施例提供的一种数据处理方法应用于查询数据的处理过程流程图;

图6是本说明书一个实施例提供的一种数据处理装置的结构示意图;

图7是本说明书一个实施例提供的一种计算设备的结构框图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。

在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

首先,对本说明书一个或多个实施例涉及的名词术语进行解释。

时序数据库TSDB:英文全称为Time Series Database,提供高效存取时序数据和统计分析功能的数据管理系统。

时序数据(Time Series Data):基于稳定频率持续产生的一系列指标监测数据。例如,监测某城市的空气质量时,每秒采集一个二氧化硫浓度的值而产生的一系列数据。

度量(Metric):虽然指明了要监测的指标项,但没有指明要针对什么对象的该指标项进行监测,监测数据的指标,例如风力和温度。

标签(Tag):用于表明指标项监测针对的具体对象,属于指定度量下的数据子类别。

时间戳(Timestamp):数据(度量值)产生的时间点。

时间线(Timeline):等同于时间序列的概念。

时间分区索引(Time Partitioned Index):按照时间段索引时间线记录时间线的生命周期。

预写日志(WAL):高效记录数据的方式。

Bitmap:位图,一种数据结构,代表了有限域中的稠密集,每一个元素至少出现一次,没有其他的数据和元素相关联。

Bloom filter:一种二进制向量数据结构,它具有空间和时间效率,被用来检测一个元素是不是集合中的一个成员。

一个标签(Tag)由一个标签键(TagKey)和一个对应的标签值(TagValue)组成,例如“城市(TagKey)=杭州(TagValue)”就是一个标签(Tag)。更多标签示例:机房=A、IP=172.220.110.1。

需要说明的是,当标签键和标签值都相同才算同一个标签;标签键相同,标签值不同,则不是同一个标签。在监测数据的时候,指定度量是“气温”,标签是“城市=杭州”,则监测的就是杭州市的气温。

标签键(TagKey,Tagk):为指标项(Metric)监测指定的对象类型(会有对应的标签值来定位该对象类型下的具体对象),例如国家、省份、城市、机房、IP等。

标签值(TagValue,Tagv):标签键(TagKey)对应的值。例如,当标签键(TagKey)是“国家”时,可指定标签值(TagValue)为“中国”。

值(Value):度量对应的值,例如15级(风力)和20℃(温度)。

数据点(Data Point):针对监测对象的某项指标(由度量和标签定义)按特定时间间隔(连续的时间戳)采集的每个度量值就是一个数据点。“一个度量+N个标签(N>=1)+一个时间戳+一个值”定义一个数据点。

时间序列(Time Series):针对某个监测对象的某项指标(由度量和标签定义)的描述。“一个度量+N个标签KV组合(N>=1)”定义为一个时间序列,某个时间序列上产生的数据值的增加,不会导致时间序列的增加。

参见图1,图1示出了本说明书实施例提供的一种数据处理方法的时序数据的时间序列示意图,图1中具有5个数据点,一个时间戳与一个值对应一个时间序列,以图1中度量为温度为例,标签为:楼层33层,会议室号为3302,设备标识为7649501,按照时间戳的顺序,其温度值分别为26度、25.8度、26.1度、26.3度、26.5度,比如,时间戳为1492158910,则其温度值为26。

实际应用中,通用的搜索引擎,可以提供标签检索,但并没有时间维度,标签检索是时序数据库的基础功能,典型的时序处理流程是基于核心组件TSI,TSI赋予了时序数据库对时间线的索引能力,主要包括时间线管理和级联分析,例如,根据前缀匹配等查询tag、metric名称、根据筛选条件查询时间线元数据信息,包括完整的tag、metric信息等。

数据查询可根据用户的筛选条件,查询时间线ID集合,进一步查询时间线对应的时序数据,可根据条件查询Tags的级联关系、查询元数据分布等等。

时序数据主要面向数据持续更新以及物联网应用场景下,在采集数据时出现的采集设备版本升级、系统升级、采集对象由于各种原因消失等原因,总会不断有新的时间线的创建、旧的时间线逐渐淘汰,本说明书实施例提供的数据处理方法主要用于解决在上述场景中瞬时时间的数据存储,以及后续对时序数据的查询效率的问题。

在本说明书中,提供了一种数据处理方法,本说明书同时涉及一种数据处理装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。

图2示出了根据本说明书一个实施例提供的一种数据处理方法的流程图,具体包括以下步骤。

步骤202:接收针对目标对象的待存储数据的数据存储请求,其中,所述数据存储请求中携带有待存储数据的属性信息以及目标对象的对象标签。

其中,数据存储请求可以理解为针对目标对象的待存储数据的存储请求,比如,待存储数据为温度数据,则数据存储请求可以为将获取到的温度数据进行存储的存储请求。

其中,待存储数据的属性信息可以理解为待存储数据的度量以及待存储数据的记录时间;目标对象的对象标签可以理解为待存储数据针对的目标对象所对应的对象标签,比如,待存储数据为5度,则待存储数据的属性信息为温度,待存储数据记录时间为上午10:01。

具体的,服务器接收到针对目标对象的待存储数据的数据存储请求,其中,数据存储请求中携带有待存储数据的属性信息以及目标对象的对象标签,例如,接收针对会议室的气象数据的数据存储请求,其中,数据存储请求中携带有气象数据的温度、湿度的度量信息,以及针对会议室的标识信息,比如1层会议室1。

步骤204:基于待存储数据的属性信息确定所述待存储数据的创建时间戳和最新时间戳,并基于所述创建时间戳和所述最新时间戳确定数据分区策略,且根据所述数据分区策略创建数据分区。

其中,数据分区策略可以理解为针对时间线生命周期按照一定的时间间隔进行分区的策略,数据分区可以理解为将时间线生命周期按照一定时间间隔进行的时间分区。

具体的,在接收到待存储数据的属性信息之后,基于属性信息可以确定待存储数据的创建时间戳以及最新时间戳,通过在写入存储数据的创建时间戳以及最新时间戳确定相应的数据分区策略,并根据该数据分区策略创建数据分区。

实际应用中,在进行数据写入存储时,新的时间线在内存中标记创建时间戳和最新访问时间戳,每一次时间线的写入,会更新内存时间戳,根据最新访问的时间戳减去创建时间戳,可以获得目标对象写入的总时间,根据写入数据的总时间确定时间分区的策略,并根据时间分区的策略创建数据分区。

例如,服务器记录1号楼的会议室气象数据,在写入气象数据时,会标记创建时间戳为2020年1月1日00:00,随着时序数据的每次写入,更新写入数据时的时间戳,在时序数据记录到一个月时,根据实际需求确定将一个月的时间进行分片,数据分区策略为以十天为一个分片,则记录1号楼会议室的气象数据的第一时间分片为2020年1月1日00:00-2020年1月10日24:00,第二时间分片为2020年1月11日00:00-2020年1月20日24:00,第三时间分片为2020年1月21日00:00-2020年1月30日24:00。

进一步地,所述基于待存储数据的属性信息确定所述待存储数据的创建时间戳和最新时间戳,包括:

基于所述待存储数据的属性信息获取所述待存储数据的创建时间戳和最新时间戳,并将所述创建时间戳和所述最新时间戳写入日志文件进行存储。

具体的,在接收到针对目标对象的待存储数据的属性信息之后,根据该待存储数据的属性信息记录待存储数据写入的创建时间戳和最新写入时间戳,并将标记的创建时间戳和最新时间戳写入日志文件中进行存储。

实际应用中,可以通过预写日志的方式将待存储数据进行写入的时间戳进行记录,以便于后续根据查找待存储数据的写入记录,保障数据写入的可靠性。

本说明书实施例提供的数据处理方法,通过将待存储数据的创建时间戳和最新写入时间戳写入日志文件中,不仅保障数据的安全性,还以便于后续根据时间戳数据确定数据分区策略进行数据存储。

参见图3,图3示出了根据本说明书一个实施例提供的一种数据处理方法的数据分区示意图。

图3中横轴表示时间线生命周期,竖轴表示多个时间线,图3中将时间线生命周期分为四个时间分片,分别为时间分片1、时间分片2、时间分片3、时间分片4,竖轴中分为六条时间线,分别为时间线1、时间线2、时间线3、时间线4、时间线5、时间线6,需要说明的是,一条时间线可以表示一个目标对象,比如一间会议室;图3中,每条时间线所记录的时序数据的时长不同,即记录的创建时间戳和最新时间戳不同,在每个时间分片中,均可找到相应落在该时间分片中的时间线,表示该时间分片中具有相应时间线的存储数据,例如,时间分片1中具有时间线1、时间线2以及时间线3相应的时序数据,时间分片2具有时间线2、时间线3、时间线4以及时间线5相应的时序数据等等。

实际应用中,根据存储时序数据的创建时间戳和最新访问时间戳确定出时间分片按照预设的时间间隔进行分片,符合海量时间线不断创建、消亡的应用场景,沿用上例,每一条时间线为一间会议室,那么在记录会议室气象数据时,时间分片1中则记录1层会议室1、会议室2以及会议室3的气象数据。

本说明书实施例中提供的数据处理方法,在海量时间线不断创建、消亡的场景下,对索引数据按照时间维度进行分片实现对索引数据的分区,以便于后续可以通过时间维度对索引数据进行过滤,筛选出符合需求条件的索引数据,进一步更加快速地通过索引数据查询待存储数据,提高查询数据效率。

步骤206:确定所述每个数据分区中所述目标对象的待存储数据,且确定所述待存储数据对应的索引数据。

其中,索引数据可以理解为待存储数据中带有数据标签的数据。

具体的,在进行数据写入时,确定每个数据分区中针对目标对象的待存储数据,并根据目标对象的待存储数据确定待存储数据对应的索引数据。

实际应用中,存储索引数据为了方便后续对存储数据的查找,那么本实施例提供的数据处理方法,在存储数据时,将索引数据按照时间维度进行分片,为索引增加时间属性,支持时间维度过滤,该索引数据的策略可以方便于后续对存储数据的查找。

沿用上例,在时间分片1(数据分区1)中确定记录会议室1、会议室2以及会议室3的气象数据,并确定该气象数据的索引数据可以包括目标对象的标签、气象数据的度量信息或者存储气象数据的存储位置等,本说明书对此不做任何限定。

步骤208:基于所述索引数据对应的数据分区,所述数据分区对应的目标对象以及所述目标对象的对象标签构建第一索引表,并基于所述第一索引表将每个数据分区的待存储数据进行数据存储。

其中,第一索引表可以理解为带有数据分区、目标对象、目标对象的对象标签的倒排索引表。

具体的,在确定好待存储数据的索引数据之后,基于索引数据确定对应的数据分区,在该数据分区中可以确定对应在该时间分片中的目标对象,以及目标对象对应的对象标签,进而构建第一索引表,并基于该构建的第一索引表将每个数据分区的待存储数据进行数据存储。

沿用上例,在时间分片1(数据分区1)中具有会议室1、会议室2以及会议室3的气象数据,即构建的第一索引表具有目标对象、数据分区、以及目标对象对应的对象标签,其中,目标对象为会议室1、会议室2以及会议室3,数据分区为时间分片1,目标对象对应的对象标签为1层会议室1、1层会议室2、2层会议室3。

在创建好第一索引表之后,还需创建第二索引表进一步获取待存储数据的存储偏移位,基于该存储偏移位将待存储数据进行存储;具体的,所述基于所述第一索引表将每个数据分区的待存储数据进行数据存储,包括:

基于所述第一索引表中的所述数据分区对应的目标对象、所述目标对象的对象标签以及所述目标对象的待存储数据的属性信息构建第二索引表;

基于所述第一索引表以及所述第二索引表获取每个数据分区的待存储数据的存储偏移位;

根据所述存储偏移位将所述待存储数据进行存储。

其中,第二索引表可以理解为带有第一索引表中的数据分区对应的目标对象、目标对象标签、以及待存储数据的属性信息的正排索引表。

具体的,在每一时间线的数据写入时,每一个数据分区均可确定落在该数据分区时间的时间线,确定时间线对应的目标对象、目标对象的对象标签以及目标对象的待存储数据的属性信息,构建第二索引表,并基于第一索引表以及第二索引表可以确定每个目标对象的待存储数据的存储偏移位,根据确定好的存储偏移位将每个待存储数据进行存储。

需要说明的是,第二索引表的记录是生成存储偏移位的一部分,其中,存储偏移位的确定有多种方式,比如组合方式、自增标识方式、文件块映射等等方式,以组合方式确定存储偏移位为例,由第一索引表和第二索引表进行拼接组合生成存储偏移位,本说明书实施例提供的确定存储偏移位的方式在此不做过多限定。

沿用上例,时间分片1中的第二索引表中每列包括目标对象、标签、待存储数据的属性信息的数据,其中标签包括1层、1层、2层;目标对象包括会议室1、会议室2、会议室3;属性信息包括温度、湿度、温度以及湿度;该第二索引表中,横向排列为1层-会议室1-温度,1层-会议室2-湿度,2层-会议室3-温度及湿度,需要说明的是,表中每一条时间线均具有存储相应待存储数据的存储偏移位,将待存储数据进行存储。

本说明书实施例提供的数据处理方法,基于第一索引表的信息构建第二索引表,以便于获取每个数据分区中待存储数据的存储偏移位,实现快速地将待存储数据进行存储。

进一步地,所述根据所述存储偏移位将所述待存储数据进行存储之后,还包括:

将所述第一索引表按照所述每个数据分区进行合并,获得合并后的倒排索引文件,并将所述合并后的倒排索引文件进行存储;以及

将所述第二索引表按照所述每个数据分区进行合并,获得合并后的正排索引文件,并将所述合并后的正排索引文件进行存储。

具体的,将时间维度进行分片之后,每个时间分片的索引数据可以合并为一个存储文件进行存储,将第一索引表按照每个数据分区分别进行合并,获得合并后的倒排索引文件,将合并后的索引文件进行存储;并且在创建的第二索引表中,同样按照每个数据分区进行划分分别进行合并,获得合并后的正排索引文件,将合并后的索引文件进行存储。

需要说明的是,将索引数据文件进行合并时,更新合并后的文件的时间属性,并从文件管理器中移除旧的文件,以节省存储空间,其中,文件合并之后的查询逻辑与合并前的查询逻辑相同,仅是基于时间窗口把小范围创建的时间线合并到更大时间段范围内。

本说明书实施例提供的数据处理方法,将多个索引分片进行合并存储后,以便于后续通过查询合并后的索引文件,即可实现对索引数据的查询,不仅节省了存储空间,也提升了长周期的历史查询效率。

参见图4,图4示出了根据本说明书一个实施例提供的一种数据处理方法的数据合并存储示意图。

图4中,通过日志的写入记录数据写入的过程,在数据写入之后,会将待存储数据的索引数据存储至时间线索引表中,将待存储数据存储在时间线表中,需要说明的是,时间线索引表中不存储真实的数据,仅仅只有索引数据,而时间线表中存储的为全量数据,具有大量的真实存储数据,相比较而言,时间线表中占用的存储空间比时间线索引表占据的存储空间大很多,每个时间分片对应一个时间线索引文件,合并管理器将多个时间线文件进行合并存储,其中时间线索引文件格式使用哈希索引等构建倒排,以支持高效的点查询和范围查询,同时对于时间线文件也是进行合并存储管理,其中,时间线文件使用Bitmap、BloomFilter等数据结构实现高性能查询,对时间线进行统计分析,实现自适应查询优化。

本说明书实施例提供的数据处理方法,通过合并模块将同一数据分区的索引文件进行合并,以便于后续快速地进行存储与查找。

此外,时序数据的不断更新写入,数据分区也可不断地创建,将待存储数据在新的数据分区中进行存储;具体的,所述基于所述第一索引表将每个数据分区的待存储数据进行数据存储,包括:

基于所述待存储数据的最新的时间戳以及所述数据分区策略创建新的数据分区;

根据所述新的数据分区更新所述新的数据分区对应的第一索引表,并基于所述第一索引表将所述新的数据分区的待存储数据进行存储。

具体的,在不断地数据写入过程中,可根据待存储数据的最新的时间戳以及数据分区策略继续创建新的数据分区,并根据新的数据分区中记录的目标对象的待存储数据的索引数据,对第一索引表进行更新,并对更新后的第一索引表将新的数据分区中的待存储数据进行存储。

实际应用中,时序数据的不断写入存储,在新写入数据的时间戳无法在数据分区中划分时,可根据数据分区策略创建新的数据分区,将待存储数据的索引数据在新的数据分区中的第一索引表中记录,并基于新记录的第一索引表将待存储数据进行存储。

本说明书实施例中通过创建的数据分区,以实现对新写入的待存储数据进行数据分区,存储待存储数据,以便于后续快速地通过新的数据分区中的索引数据对待存储数据进行查询。

随着时序数据的不断写入,在数据分区的时间与实时的时间维度相比,较为久远的情况下,可以将初始创建的数据分区中存储的待存储数据进行删除;具体的,所述基于所述第一索引表将每个数据分区的待存储数据进行数据存储之后,还包括:

基于预设需求将所述数据分区的待存储数据进行删除。

其中,预设需求可以理解为根据实际应用不同的用户需求,比如,在时间线周期较长的情况下,初始的数据分区的时间周期相比较实时时间周期来讲,初始数据分区的时间为1年前,在实际应用中,历史时间较长的数据分区中存储时数据实效较差,实际应用率不高,可以将该应用率不高的数据分区中的待存储数据进行删除。

本说明书实施例提供的数据处理方法,按照预设需求将数据分区的待存储数据进行删除,实现将时效较差的数据进行删除,节省存储空间。

进一步地,在时间线频繁创建老化场景下,容易引起索引膨胀,从而导致无效时间线带来的查询放大问题,严重影响数据查询效率,进而本说明书实施例提供的数据处理方法,还包括:

接收数据查询请求,其中,所述数据查询请求中携带有待查询数据的属性信息;

基于所述待查询数据的属性信息在所述第一索引表中确定所述待查询数据的数据分区,并基于所述数据分区在所述第一索引表中确定所述数据分区对应目标对象以及所述目标对象的对象标签;

基于所述目标对象以及所述目标对象的对象标签进行数据查询。

具体的,在接收到数据查询请求之后,对该数据查询请求进行解析,获得待查询数据的属性信息,基于该待查询数据的属性信息在第一索引表中确定待查询数据的数据分区,并根据该数据分区在第一索引表中确定数据分区对应的目标对象以及该目标对象对应的对象标签,然后根据目标对象以及目标对象的对象标签进行对待查询数据进行查询。

沿用上例,接收到查询t时刻的气象数据,在第一索引表中的分区中确定t时刻落在哪一数据分区中,确定t时刻在数据分区1的范围内,则可筛选出查询t时刻的气象数据的索引数据在数据分区1的文件中存储,在第一索引表中确定具有数据分区1的数据,进而确定数据分区1中具有的目标对象为会议室1、会议室2以及会议室3,以及目标对象的对象标签分别为会议室1-1层、会议室2-1层、会议室3-2层,根据确定的目标对象以及目标对象的对象标签查询t时刻的气象数据。

本说明书实施例提供的数据处理方法,通过数据查询请求中的属性信息在第一索引表中确定相应的数据分区,进而通过第一索引表确定相应的目标对象以及目标对象的对象标识,进而可以快速地通过索引表定位至查询数据中所需查询数据的存储位置,进行对查询数据进行查询,提升查询效率。

在确定好查询数据中对应的目标对象以及目标对象的对象标识之后,可以在第二索引表中确定该查询请求是否符合数据查询条件;具体的,所述基于所述目标对象以及所述目标对象的对象标签进行数据查询,包括:

基于所述目标对象以及所述目标对象的对象标签,判断所述第二索引表中是否存在与所述待查询数据的属性信息匹配的属性信息;

若是,则基于所述目标对象确定所述待查询数据的存储偏移位,并基于所述存储偏移位查询所述待查询数据。

具体的,在获取到查询数据请求对应的目标对象以及目标对象的对象标签之后,判断在第二索引表中是否存在与待查询数据的属性信息匹配的属性信息,在确定存在的情况下,基于目标对象确定待查询数据的存储偏移位,进行数据查询。

实际应用中,数据查询请求中可能存在无效的查询请求,比如,用户写入查询1层会议室1t时刻的湿度数据,若在第二索引表中确定1层会议室1并未存储湿度数据,那么该写入的数据查询请求即为实效的数据查询请求,则此次数据查询失败,并不能为用户返回任何数据信息,若用户查询1层会议室1t时刻的温度数据,则在第二索引表中确定出1层会议室1具有存储的温度数据,那么该写入的数据查询请求则为有效的数据查询请求,可基于在第二索引表中确定的目标对象,获取待查询数据的存储偏移位,进行数据查询。

本说明书实施例提供的数据处理方法,通过在第二索引表中确定写入的数据查询请求是否合理,进而根据时间范围筛选时间线,能够有效地排除过期时间线,进而实现了对索引数据的筛选,提高了数据查询效率。

综上,本说明书实施例通过待存储数据的属性信息确定待存储数据的创建时间戳和最新时间戳,进而确定数据分区策略并创建数据分区,基于该数据分区构建带有目标对象以及对象标签的第一索引表,使得索引增加了时间属性,为后续可支持时间维度筛选符合查询条件的数据,并基于该第一索引表将待存储数据进行存储,实现了在海量时间线不断创建、消亡的场景下,对索引数据按照时间维度进行分区,是一个有效的索引策略,进而提高对待存储数据的存储效率,后续也可以提高数据的查询效率。

参见图5,图5示出了本说明书实施例提供的一种数据处理方法应用于查询数据为例进行详细说明,图5是本说明书一个实施例提供的一种数据处理方法应用于查询数据的处理过程流程图。

需要说明的是,基于待存储数据的属性信息确定待存储数据的开始时间戳与最新时间戳,进而确定数据分区策略,本实施例中确定的数据分区策略可以以一个月的时间为一个数据分区的时间段,比如,确定的数据分区分别为2020年1月1日-2020年2月1日,2020年2月1日-2020年3月1日,2020年3月1日-2020年4月1日,进而确定每个数据分区中会议室的气象数据,以及待存储的气象数据对应的索引数据,基于此,对会议室气象数据的查询步骤如下:

步骤502:接收查询2020年1月10日会议室的温度数据的查询请求。

步骤504:根据查询请求中的时间确定待查询的温度数据的时间落在数据分区1中,则在数据分区1中的第一索引表中确定会议室1、会议室2以及会议室3具有2020年1月10日的气象数据。

步骤506:在第一索引表中确定会议室1对应的对象标识为1层-会议室1,会议室2对应的对象标识为1层-会议室2,会议室3对应的对象标识为2层-会议室1。

步骤508:根据获取到的目标对象以及目标对象标识在第二索引表中确定1层-会议室1具有存储温度数据的湿度标签,1层-会议室2具有存储温度数据的温度标签,2层-会议室1具有存储湿度数据的湿度标签。

步骤510:通过数据查询请求中查找温度数据的属性信息确定仅有1层-会议室2的数据符合查询条件。

步骤512:在第二索引表中获取1层-会议室2的待查询数据的存储偏移位,并基于该存储偏移位查找存储2020年1月10日的1层-会议室2的温度数据。

本说明书实施例提供的数据处理方法,利用时间分区创建的索引方案,通过第一索引表进行筛选,到第二索引表中判断查询条件,再向存储全量数据的数据表中准确地查找实际数据存储位置,进行数据查询,进而提高了数据查询效率。

与上述方法实施例相对应,本说明书还提供了数据处理装置实施例,图6示出了本说明书一个实施例提供的一种数据处理装置的结构示意图。如图6所示,该装置包括:

接收模块602,被配置为接收针对目标对象的待存储数据的数据存储请求,其中,所述数据存储请求中携带有待存储数据的属性信息以及目标对象的对象标签;

创建模块604,被配置为基于待存储数据的属性信息确定所述待存储数据的创建时间戳和最新时间戳,并基于所述创建时间戳和所述最新时间戳确定数据分区策略,且根据所述数据分区策略创建数据分区;

确定模块606,被配置为确定所述每个数据分区中所述目标对象的待存储数据,且确定所述待存储数据对应的索引数据;

存储模块608,被配置为基于所述索引数据对应的数据分区,所述数据分区对应的目标对象以及所述目标对象的对象标签构建第一索引表,并基于所述第一索引表将每个数据分区的待存储数据进行数据存储。

可选地,所述存储模块608,进一步被配置为:

基于所述第一索引表中的所述数据分区对应的目标对象、所述目标对象的对象标签以及所述目标对象的待存储数据的属性信息构建第二索引表;

基于所述第二索引表获取每个数据分区的待存储数据的存储偏移位;

根据所述存储偏移位将所述待存储数据进行存储。

可选地,所述数据处理装置,还包括:

接收数据查询请求,其中,所述数据查询请求中携带有待查询数据的属性信息;

基于所述待查询数据的属性信息在所述第一索引表中确定所述待查询数据的数据分区,并基于所述数据分区在所述第一索引表中确定所述数据分区对应目标对象以及所述目标对象的对象标签;

基于所述目标对象以及所述目标对象的对象标签进行数据查询。

可选地,所述数据处理装置,还包括:

基于所述目标对象以及所述目标对象的对象标签,判断所述第二索引表中是否存在与所述待查询数据的属性信息匹配的属性信息;

若是,则基于所述目标对象确定所述待查询数据的存储偏移位,并基于所述存储偏移位查询所述待查询数据。

可选地,所述数据处理装置,还包括:

将所述第一索引表按照所述每个数据分区进行合并,获得合并后的倒排索引文件,并将所述合并后的倒排索引文件进行存储;以及

将所述第二索引表按照所述每个数据分区进行合并,获得合并后的正排索引文件,并将所述合并后的正排索引文件进行存储。

可选地,所述创建模块604,进一步被配置为:

基于所述待存储数据的属性信息获取所述待存储数据的创建时间戳和最新时间戳,并将所述创建时间戳和所述最新时间戳写入日志文件进行存储。

可选地,所述存储模块608,进一步被配置为:

基于所述待存储数据的最新的时间戳以及所述数据分区策略创建新的数据分区;

根据所述新的数据分区更新所述新的数据分区对应的第一索引表,并基于所述第一索引表将所述新的数据分区的待存储数据进行存储。

可选地,所述数据处理装置,还包括:

基于预设需求将所述数据分区的待存储数据进行删除。

本说明书实施例提供的数据处理装置,通过待存储数据的属性信息确定待存储数据的创建时间戳和最新时间戳,进而确定数据分区策略并创建数据分区,基于该数据分区构建带有目标对象以及对象标签的第一索引表,使得索引增加了时间属性,为后续可支持时间维度筛选符合查询条件的数据,并基于该第一索引表将待存储数据进行存储,实现了在海量时间线不断创建、消亡的场景下,对索引数据按照时间维度进行分区,避免了索引数据丢失,提高了数据存储的安全性,该方法通过提供了一个有效的索引策略,也进而提高对待存储数据的存储效率,后续也可以提高数据的查询效率。

上述为本实施例的一种数据处理装置的示意性方案。需要说明的是,该数据处理装置的技术方案与上述的数据处理方法的技术方案属于同一构思,数据处理装置的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。

图7示出了根据本说明书一个实施例提供的一种计算设备700的结构框图。该计算设备700的部件包括但不限于存储器710和处理器720。处理器720与存储器710通过总线730相连接,数据库750用于保存数据。

计算设备700还包括接入设备740,接入设备740使得计算设备700能够经由一个或多个网络760通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备740可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。

在本说明书的一个实施例中,计算设备700的上述部件以及图7中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图7所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。

计算设备700可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备700还可以是移动式或静止式的服务器。

其中,处理器720用于执行所述计算机可执行指令时实现所述数据处理方法的步骤。

上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。

本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于实现如前所述数据处理方法的步骤。

上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。

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

以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。

相关技术
  • 图像数据处理方法、用于图像数据处理方法的程序、记录有用于图像数据处理方法的程序的记录介质和图像数据处理装置
  • 药箱的数据处理方法、装置、数据处理方法和装置
技术分类

06120113255864