CN113297208A - 数据处理方法及装置 - Google Patents
数据处理方法及装置 Download PDFInfo
- Publication number
- CN113297208A CN113297208A CN202011191568.8A CN202011191568A CN113297208A CN 113297208 A CN113297208 A CN 113297208A CN 202011191568 A CN202011191568 A CN 202011191568A CN 113297208 A CN113297208 A CN 113297208A
- Authority
- CN
- China
- Prior art keywords
- data
- time
- time sequence
- sequence data
- encoding
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 64
- 230000006835 compression Effects 0.000 claims abstract description 65
- 238000007906 compression Methods 0.000 claims abstract description 65
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 62
- 238000000034 method Methods 0.000 claims abstract description 32
- 238000012545 processing Methods 0.000 claims abstract description 23
- 230000008569 process Effects 0.000 claims description 14
- 238000010586 diagram Methods 0.000 description 20
- RAHZWNYVWXNFOC-UHFFFAOYSA-N Sulphur dioxide Chemical compound O=S=O RAHZWNYVWXNFOC-UHFFFAOYSA-N 0.000 description 6
- 238000013500 data storage Methods 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 239000002699 waste material Substances 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/21—Design, administration or maintenance of databases
- G06F16/217—Database tuning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本说明书实施例提供数据处理方法及装置,其中,所述数据处理方法包括获取待处理的时序数据,并将所述时序数据划分为第一时序数据和第二时序数据;基于字典编码算法对所述第一时序数据进行编码,以生成第一编码值;基于列式压缩算法对所述第二时序数据进行编码,以生成第二编码值;根据所述第一编码值和所述第二编码值生成处理后的时序数据。所述数据处理方法通过将时序数据按照数据类型分为两部分,采用每部分时序数据对应的压缩编码方法对其进行压缩编码,极大的缩小了时序数据的大小,降低了时序数据对数据库存储空间占用,提升时序数据写入数据库的数据量。
Description
技术领域
本说明书实施例涉及数据处理技术领域,特别涉及一种数据处理方法。本说明书一个或者多个实施例同时涉及一种数据处理装置,一种计算设备,以及一种计算机可读存储介质。
背景技术
时序数据(英文全称:Time Series Data)从定义上来说就是一串按时间维度索引的数据,也可以理解为基于稳定频率持续产生的一系列指标的检测数据,例如,检测某城市的空气质量时,每秒采集一个二氧化硫浓度的值而产生的一系列的数据;在各种应用中,需要将这样的时序数据持久地存储在数据库中以便查询,现有技术中存储时序数据的方式,通常将采集的原始时序数据存储在数据库中,这种存储方式会使得时序数据需要占用的存储空间较大,在持久存储海量的时序数据时,直接将原始时序数据进行存储,也会造成存储空间的浪费。
因此,急需提供一种可以节省时序数据的存储空间的数据处理方法。
发明内容
有鉴于此,本说明书施例提供了一种数据处理方法。本说明书一个或者多个实施例同时涉及一种数据处理装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种数据处理方法,包括:
获取待处理的时序数据,并将所述时序数据划分为第一时序数据和第二时序数据;
基于字典编码算法对所述第一时序数据进行编码,以生成第一编码值;
基于列式压缩算法对所述第二时序数据进行编码,以生成第二编码值;
根据所述第一编码值和所述第二编码值生成处理后的时序数据。
可选的,所述基于字典编码算法对所述第一时序数据进行编码,以生成第一编码值包括:
基于预设的表结构创建局部字典表;
将所述第一时序数据添加到所述局部字典表中,并为所述第一时序数据设置对应的数字标识;
基于所述局部字典表对所述第一时序数据进行编码,以生成第一编码值,其中,所述局部字典表中存储所述第一时序数据以及所述第一时序数据对应的数字标识。
可选的,所述将所述第一时序数据添加到所述局部字典表中,并为所述第一时序数据设置对应的数字标识包括:
获取第i个第一时序数据,其中,i∈【1,n】,且n为正整数;
判断第i个第一时序数据是否在所述局部字典表中,
若是,则获取所述局部字典表中与所述第i个第一时序数据对应的数字标识,
若否,则将所述第i个第一时序数据添加到所述局部字典表中,并为所述第i个第一时序数据设置对应的数字标识;
判断i是否大于等于n;
若是,则结束,
若否,则将i自增1,继续获取第i个第一时序数据。
可选的,所述基于所述局部字典表对所述第一时序数据进行编码,以生成第一编码值包括:
将所述局部字典表中所述第一时序数据对应的数字标识代替所述第一时序数据,以生成所述第一时序数据的第一编码值。
可选的,所述将所述第i个第一时序数据添加到所述局部字典表中,并为所述第i个第一时序数据设置对应的数字标识包括:
将所述第i个第一时序数据添加到所述局部字典表中,且获取第i-1个第一时序数据对应的数字标识;
按照预设间隔在所述第i-1个第一时序数据对应的数字标识上进行递增,以生成所述第i个第一时序数据对应的数字标识。
可选的,所述基于列式压缩算法对所述第二时序数据进行编码,以生成第二编码值包括:
获取所述第二时序数据中的时间戳数据和非时间戳数据;
基于delta-of-delta算法对同一列的所述时间戳数据进行编码,以及基于预设算法对同一列的所述非时间戳数据进行编码,以生成第二编码值。
可选的,所述基于预设算法对同一列的所述非时间戳数据进行编码之前,还包括:
在同一列的所述非时间戳数据的类型不一致的情况下,对所述非时间戳数据的类型进行格式统一。
可选的,所述获取待处理的时序数据之前,还包括:
接收针对所述时序数据的写请求,并基于所述写请求将所述时序数据写入时序数据日志;
相应的,所述获取待处理的时序数据包括:
从所述时序数据日志中获取待处理的时序数据。
可选的,所述第一时序数据包括键时序数据,所述第二时序数据包括值时序数据;
相应的,所述将所述时序数据划分为第一时序数据和第二时序数据包括:
将所述时序数据按照数据类型划分为键时序数据和值时序数据。
可选的,所述处理后的时序数据包括第一编码值、第二编码值以及局部字典表。
根据本说明书实施例的第二方面,提供了一种数据处理装置,包括:
数据获取模块,被配置为获取待处理的时序数据,并将所述时序数据划分为第一时序数据和第二时序数据;
第一编码模块,被配置为基于字典编码算法对所述第一时序数据进行编码,以生成第一编码值;
第二编码模块,被配置为基于列式压缩算法对所述第二时序数据进行编码,以生成第二编码值;
数据处理模块,被配置为根据所述第一编码值和所述第二编码值生成处理后的时序数据。
可选的,所述第一编码模块,进一步被配置为:
基于预设的表结构创建局部字典表;
将所述第一时序数据添加到所述局部字典表中,并为所述第一时序数据设置对应的数字标识;
基于所述局部字典表对所述第一时序数据进行编码,以生成第一编码值,其中,所述局部字典表中存储所述第一时序数据以及所述第一时序数据对应的数字标识。
可选的,所述第一编码模块,进一步被配置为:
获取第i个第一时序数据,其中,i∈【1,n】,且n为正整数;
判断第i个第一时序数据是否在所述局部字典表中,
若是,则获取所述局部字典表中与所述第i个第一时序数据对应的数字标识,
若否,则将所述第i个第一时序数据添加到所述局部字典表中,并为所述第i个第一时序数据设置对应的数字标识;
判断i是否大于等于n;
若是,则结束,
若否,则将i自增1,继续获取第i个第一时序数据。
可选的,所述第一编码模块,进一步被配置为:
将所述局部字典表中所述第一时序数据对应的数字标识代替所述第一时序数据,以生成所述第一时序数据的第一编码值。
可选的,所述第一编码模块,进一步被配置为:
将所述第i个第一时序数据添加到所述局部字典表中,且获取第i-1个第一时序数据对应的数字标识;
按照预设间隔在所述第i-1个第一时序数据对应的数字标识上进行递增,以生成所述第i个第一时序数据对应的数字标识。
可选的,所述第二编码模块,进一步被配置为:
获取所述第二时序数据中的时间戳数据和非时间戳数据;
基于delta-of-delta算法对同一列的所述时间戳数据进行编码,以及基于预设算法对同一列的所述非时间戳数据进行编码,以生成第二编码值。
可选的,所述装置,还包括:
格式转换模块,被配置为在同一列的所述非时间戳数据的类型不一致的情况下,对所述非时间戳数据的类型进行格式统一。
可选的,所述装置,还包括:
数据写入模块,被配置为接收针对所述时序数据的写请求,并基于所述写请求将所述时序数据写入时序数据日志;
相应的,所述数据获取模块,进一步被配置为:
从所述时序数据日志中获取待处理的时序数据。
可选的,所述第一时序数据包括键时序数据,所述第二时序数据包括值时序数据;
相应的,所述数据获取模块,进一步被配置为:
将所述时序数据按照数据类型划分为键时序数据和值时序数据。
可选的,所述处理后的时序数据包括第一编码值、第二编码值以及局部字典表。
根据本说明书实施例的第三方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该指令被处理器执行时实现所述数据处理方法的步骤。
根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现所述数据处理方法的步骤。
本说明书一个实施例实现了一种数据处理方法及装置,其中,所述数据处理方法包括获取待处理的时序数据,并将所述时序数据划分为第一时序数据和第二时序数据;基于字典编码算法对所述第一时序数据进行编码,以生成第一编码值;基于列式压缩算法对所述第二时序数据进行编码,以生成第二编码值;根据所述第一编码值和所述第二编码值生成处理后的时序数据。所述数据处理方法通过将时序数据按照数据类型分为两部分,采用每部分时序数据对应的压缩编码方法对其进行压缩编码,极大的缩小了时序数据的大小,降低了时序数据对数据库存储空间占用,提升时序数据写入数据库的数据量。
附图说明
图1是本说明书一个实施例提供的一种应用本说明书实施例提供的所述数据处理方法的日志结构合并树存储引擎的示意图;
图2是本说明书一个实施例提供的一种数据处理方法的流程图;
图3是本说明书一个实施例提供的一种数据处理方法中的时序数据的示意图;
图4是本说明书一个实施例提供的一种数据处理方法中按照数据类型划分后的时序数据的示意图;
图5是本说明书一个实施例提供的一种数据处理方法中基于局部字典表对第一时序数据进行编码压缩的示意图;
图6是本说明书一个实施例提供的一种数据处理方法中第二时序数据的示意图;
图7是本说明书一个实施例提供的一种数据处理方法中编码压缩后的时序数据的日志结构示意图;
图8是本说明书一个实施例提供的一种数据处理装置的结构示意图;
图9是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
时序数据库(Time Series Database,TSDB):提供高效存取时序数据和统计分析功能的数据管理系统。
时序数据(Time Series Data):从定义上来说就是一串按时间维度索引的数据,也可以理解为基于稳定频率持续产生的一系列指标的检测数据,例如,检测某城市的空气质量时,每秒采集一个二氧化硫浓度的值而产生的一系列的数据。
度量(Metric):监测数据的指标,例如风力和温度。
标签(Tag):用于表明指标项监测针对的具体对象,属于指定度量下的数据子类别。一个标签(Tag)由一个标签键(TagKey)和一个对应的标签值(TagValue)组成,例如“城市(TagKey)=杭州(TagValue)”就是一个标签(Tag)或者“机房(TagKey)=A、IP=172.220.110.1(TagValue)”也是一个标签(Tag)。具体的,在监测数据的时候,若指定度量是“气温”,标签是“城市=杭州”,则确定该监测数据表示的就是杭州市的气温。
标签键(TagKey,Tagk):为指标项(Metric)监测指定的对象类型(会有对应的标签值来定位该对象类型下的具体对象),例如国家、省份、城市、机房、IP等。
标签值(TagValue,Tagv):标签键(TagKey)对应的值。例如,当标签键(TagKey)是“国家”时,可指定标签值(TagValue)为“中国”。
值(Value):度量对应的值,例如15级(风力)和20℃(温度)。
时间戳(Timestamp):数据产生的时间点。
域(field):在指定度量下数据的子类别。即一个metric支持多个field,如metric为wind(风力),该metric可以有两个field:direction和speed(方向和速度)。
数值(value):度量对应的数值,如56℃、1000r/s等(实际中不带单位)。如果有多个field,每个field都有相应的value。
LSM:英文全称:Log Structured Merge Tree,中文全称:日志结构合并树,LSM引擎的工作原理是对数据的修改增量保持在内存中,达到指定的大小限制后,将这些修改操作批量写入磁盘中。
在本说明书中,提供了一种数据处理方法,本说明书同时涉及一种数据处理装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
时序数据的写入特点是持续高并发、高吞吐写入,且写入操作多,读取操作少,因此比较适合使用LSM引擎进行时序数据写入,即可以将本说明书实施例提供的所述数据处理方法应用于LSM引擎中,而实际应用中,本说明书实施例提供的所述数据处理方法不仅可以应用于LSM引擎中,也可以应用于任何一种需要对时序数据进行写入的数据存储引擎中,例如InfluxDB TSM存储引擎等,本说明书对此不做任何限定。为了便于理解,本说明书实施例中,均以通过LSM引擎进行时序数据写入为例,对本说明书实施例提供的所述数据处理方法进行详细介绍。
参见图1,图1示出了一种应用本说明书实施例提供的所述数据处理方法的日志结构合并树存储引擎的示意图。
图1是一个LSM引擎的主要组成部分,包括时序日志文件集合、内存、写入磁盘的时序数据文件集合、数据整理等四个部分,具体的,LSM引擎的工作原理如下:
步骤一:写日志,即将时序数据写入时序日志文件集合中的日志文件中。
具体的,将时序数据写入时序日志文件集合中的日志文件中,并基于本说明书实施例的数据处理方法对其日志文件中的时序数据进行压缩编码。
步骤二:写完日志之后,将日志Log中的时序数据写入内存表Memtable,当内存表中的时序数据达到指定大小限制后,将当前处于内存表表中有效的时序数据转换为内存表快照。
步骤三:将内存表快照中的时序数据批量的写入对应的磁盘文件(即数据库)中。
具体的,将内存表快照中的时序数据批量的写入第二时序数据文件集合中对应的文件中。
步骤四:对写入对应的磁盘文件的时序数据去重或者根据配置采用块压缩算法对时序数据进一步压缩,以实现时序数据压缩。
实际应用中,在对写入对应的一个或者多个时序数据文件中的时序数据进行整理(例如对时序数据排序去重或者压缩)时,会将整理后的时序数据写入新的磁盘文件中,并将原来的一个或者多个旧的时序数据文件删除,以节省磁盘空间。
由此可以看出,日志Log是LSM引擎写入时序数据的第一步,日志Log的写入吞吐在很大程度上决定了LSM引擎的写入吞吐,因此本说明书实施例提供了一种数据处理方法,旨在通过对日志Log的时序数据进行压缩编码,以缩小日志Log的大小,降低日志Log写入磁盘的数据IO(输入/输出,Input/Output)开销,提升日志Log的写入吞吐。
以下均以所述数据处理方法实现对日志Log中的时序数据进行压缩编码为目的,对本说明书一个或多个实施例提供的所述数据处理方法进行详细介绍。
参见图2,图2示出了根据本说明书一个实施例提供的一种数据处理方法的流程图,具体包括以下步骤。
步骤202:获取待处理的时序数据,并将所述时序数据划分为第一时序数据和第二时序数据。
其中,时序数据为基于稳定频率持续产生的一系列指标的检测数据,例如,检测某城市的空气质量时,每秒采集一个二氧化硫浓度的值而产生的一系列的数据;又或者检测某城市的风力和温度时,每秒采集一个风力或温度的值而产生的一系列的数据等。
本说明书实施例中,在“处理”可以理解为编码压缩的情况下,获取待处理的时序数据可以理解为获取待编码压缩的包含时间戳的时序数据。
而数据类型包括但不限于字符型以及数值型,其中,数值型又包括但不限于整型、浮点型以及布尔型等。
具体的,在数据类型包括字符型和数值型的情况下,所述第一时序数据可以是键时序数据,所述第二时序数据可以是值时序数据,那么所述将所述时序数据划分为第一时序数据和第二时序数据包括:
将所述时序数据按照数据类型划分为键时序数据和值时序数据。
本说明书实施例中,在获取待编码压缩的时序数据之后,可以按照数据类型将该时序数据划分为键时序数据和值时序数据两部分,后续可以对这两种数据类型的时序数据分别进行编码压缩,通过两路编码压缩链路实现对时序数据的压缩,可以极大的提高对时序数据进行编码压缩的压缩效率。
本说明书另一实施例中,所述获取待处理的时序数据之前,还包括:
接收针对所述时序数据的写请求,并基于所述写请求将所述时序数据写入时序数据日志;
相应的,所述获取待处理的时序数据包括:
从所述时序数据日志中获取待处理的时序数据。
仍以上述为例,本说明书实施例提供的所述数据处理方法应用于LSM引擎中,而为了提升LSM引擎中日志Log的写入吞吐,可以对时序数据日志中的时序数据进行获取,然后进行后续的压缩编码。因此,本说明书实施例中,以LSM引擎为执行主体,在接收针对时序数据的写请求后,首先将该时序数据写入时序数据日志中,然后从该时序数据日志中获取待处理的时序数据,对该时序数据进行压缩编码,以缩小日志Log的大小,降低日志Log写入磁盘的数据IO开销,提升日志Log的写入吞吐。
步骤204:基于字典编码算法对所述第一时序数据进行编码,以生成第一编码值。
其中,第一时序数据为键时序数据,第一编码值为通过字典编码算法对键时序数据进行压缩后的编码值。
具体实施时,所述基于字典编码算法对所述第一时序数据进行编码,以生成第一编码值包括:
基于预设的表结构创建局部字典表;
将所述第一时序数据添加到所述局部字典表中,并为所述第一时序数据设置对应的数字标识;
基于所述局部字典表对所述第一时序数据进行编码,以生成第一编码值,其中,所述局部字典表中存储所述第一时序数据以及所述第一时序数据对应的数字标识。
其中,局部字典可以理解为针对时序数据的一部分键时序数据进行编码压缩所创建的字典,通过该局部字典表可以实现对键时序数据的编码压缩。
而局部字典表的预设的表结构即为一个结点的map<string,int>结构,其中string对应一个字符串,int对应一个整型的数字标识,在进行局部字典表的创建过程中,首先对键时序数据中的每个字符串进行遍历,先检查map(映射表,即局部字典表)里面有没有这个字符串,如果有,则将map里面该字符串对应的id作为该字符串的id,如果没有则为该字符串生成一个不重复的id(比如id的最大值+1),然后将该字符串和对应的id插入到局部字典表中,以实现针对键时序数据的局部字典表的创建。
本说明书实施例中,通过局部字典表的方式对键时序数据进行编码压缩,以占用比特位较少的数字标识代替键时序数据的方式实现对时序数据的编码压缩,可以缩小键时序数据的大小,节省数据存储空间。
具体实施时,所述基于所述局部字典表对所述第一时序数据进行编码,以生成第一编码值包括:
将所述局部字典表中所述第一时序数据对应的数字标识代替所述第一时序数据,以生成所述第一时序数据的第一编码值。
本说明书实施例中,以占用比特位较少的数字标识代替键时序数据的方式实现对时序数据的编码压缩,可以缩小键时序数据的大小,节省数据存储空间。
本说明书另一实施例中,所述将所述第一时序数据添加到所述局部字典表中,并为所述第一时序数据设置对应的数字标识包括:
获取第i个第一时序数据,其中,i∈【1,n】,且n为正整数;
判断第i个第一时序数据是否在所述局部字典表中,
若是,则获取所述局部字典表中与所述第i个第一时序数据对应的数字标识,
若否,则将所述第i个第一时序数据添加到所述局部字典表中,并为所述第i个第一时序数据设置对应的数字标识;
判断i是否大于等于n;
若是,则结束,
若否,则将i自增1,继续获取第i个第一时序数据。
实际应用中,i的取值一般从1开始,即先判断第一个键时序数据是否在局部字典表中,若是,则将局部字典表中与该键时序数据对应的数字标识作为该第一个键时序数据的数字标识,若否,则为该键时序数据映射一个唯一的数字标识,然后将该键时序数据和对应的数字标识插入到局部字典表中。再判断i是否大于等于n,即是否将键时序数据遍历完成,若是,则结束该局部字典表的创建流程,若否,则将i自增1,即获取第二个键时序数据,继续重复上述流程,直至所有的键时序数据均被遍历一遍,完成该局部字典表的创建。
参见图3和图4,图3是本说明书一个实施例提供的一种数据处理方法中的时序数据的示意图,图4是本说明书一个实施例提供的一种数据处理方法中按照数据类型划分后的时序数据的示意图。
图3中包括多条时序数据,且每条时序数据为多值时序数据,实际应用中,还会存在单值时序数据,由于单值时序数据仅是多值时序数据的一个特例,因此针对多值时序数据的编码压缩方式,也适用于单值时序数据,本说明书中不再对单值时序数据的编码压缩方式过多的赘述,其中,单值表示一个值,多值表示两个或两个以上的值。
具体的,图3中的metric表示监测数据的指标,tags表示标签,而每个标签由一个标签键(TagKey)和一个对应的标签值(TagValue)组成,例如图3中的“ems_power_building="A"”为一个标签,“ems_power_room="B2-1.NA62"”为一个标签,“ems_power_cabinet="C14"”为一个标签等;timestamp表示时间戳,F1和F2分别表示Value值。
图4是在图3的基础上,按照数据类型对图3中的时序数据划分之后的键时序数据和值时序数据的示意图。
图4中,按照数据类型将图3中的时序数据进行划分后,可以将图3中的时序数据划分为两部分,具体参见图4,第一部分为键时序数据,即每行的metric和tags,也称为时序数据键SeriesKey,第二部分为值时序数据,即每行的timestamp、F1以及F2,其中,timestamp为时间戳数据,F1以及F2为域值,而第一部分可以使用局部字典表对metric和tags进行编码压缩,对于第二部分可以使用delta-of-delta等压缩算法对timestamp、F1、F2等域值进行列式压缩。
首先,基于图4对基于字典编码算法对键时序数据进行编码,以生成第一编码值的处理过程进行详细介绍。
首先基于预设的表结构创建局部字典表,例如以map<String,int>的结构创建局部字典表,然后开始遍历图4中的键时序数据,首先判断图4中的第一个键时序数据“ems_power_pose”是否在该局部字典表中,本说明书实施例中,由于局部字典表为新创建的局部字典表,因此该局部字典表为空,不存在任何时序数据,那么则为该键时序数据“ems_power_pose”映射一个数字标识id为1,将该键时序数据“ems_power_pose”和对应的id“1”插入到该局部字典表中,然后将键时序数据表中的该键时序数据“ems_power_pose”用标识“1”替代,实现编码压缩;再遍历第二个键时序数据“ems_power_building”;继续上述判断,为该键时序数据“ems_power_building”基于前一个数字标识递增一个数字标识id为2,将该键时序数据“ems_power_building”和对应的id“2”插入到该局部字典表中,将键时序数据表中的该键时序数据“ems_power_building”用标识“2”替代,实现编码压缩;一直重复上述步骤,对所有的键时序数据进行编码压缩,而在遍历的键时序数据在局部字典表中出现过的情况下,则直接使用对应的id就可以,而无需在局部字典表中重新插入数据,通过上述编码方法可以对图4中的metric和tags时序数据完成最终的编码压缩,其具体编码压缩结果参见图5,图5是本说明书一个实施例提供的一种数据处理方法中基于局部字典表对第一时序数据进行编码压缩的示意图。
本说明书实施例中,通过局部字典表的编码压缩方法实现对键时序数据的编码压缩可以极大的缩小第一时序数据在日志中的存储空间,且由于局部字典表和编码压缩后的时序数据均需要存储在日志文件中,那么本说明书实施例中,对于重复的字符串在局部字典表中仅使用一个唯一的数字标识,避免局部字典表中对相同的字符串重复建立映射关系,通过此种方式可以缩小局部字典表的大小,进一步的节省了时序数据存储时的存储空间占用。
本说明书另一实施例中,所述将所述第i个第一时序数据添加到所述局部字典表中,并为所述第i个第一时序数据设置对应的数字标识包括:
将所述第i个第一时序数据添加到所述局部字典表中,且获取第i-1个第一时序数据对应的数字标识;
按照预设间隔在所述第i-1个第一时序数据对应的数字标识上进行递增,以生成所述第i个第一时序数据对应的数字标识。
本说明书实施例中,在将第i个第一时序数据添加到局部字典表中时,会先获取第i-1个第一时序数据对应的数字标识,即紧邻的上一个第一时序数据对应的数据标识是什么,然后该紧邻的上一个第一时序数据对应的数据标识的基础,按照预设间隔对数字标识进行递增,产生新的唯一的数字标识作为第i个第一时序数据对应的数字标识,其中,预设间隔可以根据实际应用进行设置,例如设置为1、2或3等。
举例说明,第i-1个第一时序数据对应的数字标识为2,预设间隔为1,那么第i个第一时序数据对应的数字标识即可设置为3。
本说明书实施例中,通过简单的数字递增的方式即可实现局部字典表的创建,无需复杂的计算过程,极大的提高了本说明书实施例的数据处理方法的处理效率。
步骤206:基于列式压缩算法对所述第二时序数据进行编码,以生成第二编码值。
其中,列式压缩算法包括但不限于delta-of-delta算法、xor算法(exclusive OR,异或算法)、zigzag算法等;其中,delta-of-delta算法,可以极大地降低数据存储的成本和提高数据写入、查询的性能;xor算法的原理依据的是异或门,即同为0,异为1;zigzag算法的原理就是压缩多余的因补位造成数据变大的问题。
具体的,所述基于列式压缩算法对所述第二时序数据进行编码,以生成第二编码值包括:
获取所述第二时序数据中的时间戳数据和非时间戳数据;
基于delta-of-delta算法对同一列的所述时间戳数据进行编码,以及基于预设算法对同一列的所述非时间戳数据进行编码,以生成第二编码值。
具体实施时,第二时序数据为值时序数据,而该值时序数据又包括时间戳数据和非时间戳数据,其中,非时间戳数据包括但不限于字符型数据、整型数据、浮点型数据或者布尔型数据等。实际应用中,非时间戳数据可以称为域值,而域值的类型也可以是字符串,而域值的字符串与键值的字符串因特征不同,所使用的压缩编码的方式也不同,例如域值的字符串可能变化较大,一般会采用上述通用的列式压缩算法进行压缩编码,而键值的字符串由于重复率较高,一般采用上述的局部字典表的方法进行压缩编码。
参见图4,图4中最右侧一列展示出了基于delta-of-delta算法对同一列的timestamp时间戳数据进行编码压缩后的结果示例。从图4中可以看出,基于delta-of-delta算法对同一列的timestamp时间戳数据进行编码压缩,可以将10位的整数编码压缩为0或1,而0在计算机中采用一个比特位就可以表示,可以极大的节约时序数据的存储空间。
实际应用中,生成时序数据的时序数据模型通常是没有schema(schema是元数据的一个抽象集合,主要是元素与属性的声明、复杂与简单数据类型的定义),这导致在对非时间戳数据的value值时序数据进行列式压缩编码时,可能会存在同一列数据类型不一致的问题和部分行在这列没有值的问题,这个给非时间戳数据的value值时序数据按列压缩时带来了两个技术挑战:1.如何对不同数据的类型列进行列式压缩且还能解压;2.如何在部分行在这列不存在值的情况下进行编码;参见图6,图6是本说明书一个实施例提供的一种数据处理方法中第二时序数据的示意图,图6中示例出同一列数据类型不一致和部分行在这列没有值的两个问题,即F1这列存在无值的情况,F2这列存在数据类型不一致和无值的情况。
本说明书实施例中,针对上述两个问题,在对非时间戳数据进行编码压缩时,首先通过日志中记录每条时间线包含的域(field)、每个field相应的value值及其数据类型,根据数据类型进行迭代同一列所有值进行编码,在解码时先解码出数据类型,然后根据数据类型解码实际的值。
参见图7,图7是本说明书一个实施例提供的一种数据处理方法中编码压缩后的时序数据的日志结构示意图。
具体的,上述通过图7序列键编码结果中的schema部分记录的每行的field值实现的,对于每一行数据,均会记录其包含的field个数以及这些field对应的名字name和数据类型type,每行的schema信息的识别和记录,是在逐行编码压缩每列的数据时候识别的;如果某行在某列没有值,在记录schema的时候不会包含这列的field信息的。
参见图6,假设整批数据只有F1和F2两列,第三行的F1这里列没有值,记录的第三行的schema信息只记录F2的field信息,即第三行只包含F2的field,没有F1的field;因此在解码的时候,解码到第三行的时候,会先解码出第三行包含的field信息,即只有F2这列,没有F1这列,那么就不需要从F1这列解码第三行的F1的值,只需要从F2这列对应的解码器中根据第三行对应的数据类型解码出第三行在F2这列对应的值即可。
而在对value值进行列式压缩时,针对不同数据类型使用的压缩算法如下:
时间戳数据可以使用delta-of-delta算法压缩;非时间戳数据中的浮点型数据可以使用xor算法压缩;非时间戳数据中的整型可以使用zigzag算法压缩;非时间戳数据中的布尔型可以使用0或1进行压缩。
本说明书实施例中,将第二时序数据分为时间戳数据和非时间戳数据进行分别压缩,通过不同的压缩算法实现对时间戳数据和非时间戳数据的合理压缩,并且将第二时序数据的压缩又分为两步链路进行压缩,进一步的提升了所述数据处理方法的处理效率。
本说明书实施例中,所述基于预设算法对同一列的所述非时间戳数据进行编码之前,还包括:
在同一列的所述非时间戳数据的类型不一致的情况下,对所述非时间戳数据的类型进行格式统一。
具体实施时,为了解决上述的非时间戳数据中同一列的时序数据,数据类型不统一的问题,避免对非时间戳数据编码压缩的过程中出现乱码或者无法压缩的情况发生,会同一列的非时间戳数据的类型进行格式转换,以保证同一列的所述非时间戳数据的数据类型的统一。
步骤208:根据所述第一编码值和所述第二编码值生成处理后的时序数据。
具体的,根据局部字典表实现对第一时序数据的编码压缩,获得第一编码值,根据列式压缩算法实现对第二时序数据的编码压缩,获得第二编码值,然后将第一编码值形成的数据块和第二编码值形成的数据块拷贝到一个大的数据块中,形成一个日志中时序数据的最终的编码压缩结果,即处理后的时序数据。
其中,处理后的时序数据至少包括第一编码值、第二编码值以及局部字典表。
参见图7,图7是本说明书一个实施例提供的一种数据处理方法中编码压缩后的时序数据的日志结构示意图。
图7中编码压缩后的时序数据的日志结构示意图主要包括以下四个部分:
日志块索引:包含field offset和dict offset两个整数,分别指向日志中的field values和局部字典dictionary的偏移;
字典编码块:为局部字典表,只存储局部字典表按照id从小到大排序后的对应的字符串;
域值编码块:为field按列多种数据类型混合压缩后的多个数据块;
序列键编码块:为metric和tags使用局部字典编码后的id和每条时间线包含field及其数据类型等内容的schema。
其中,图7中的vint表示,使用zigzag压缩算法对无符号整数编码后的变长整型;字典编码块的字典编码结果只存储了字典的字符串,没有存储对应的字典数值标识,因为在编码局部字典到日志中,是将字典中的每个pair<String,id>按照id从小到大排序,然后只编码排序后的所有pair中的string;由于字典中的id是以固定规则(比如自增)生成的,因此最小id是确定的(比如固定为1),如果使用的是自增规则生成id,那么在解码字典块的时候,只需要按顺序解码出对应的string后,按照这个顺序(编码时是按照id的大小排序)就还原对应的id。
此外,本说明书实施例的数据处理方法中对时序数据进行压缩编码是以一批数据为基础的,时序数据存储在日志中,每个日志作为一个日志块。参见图3,每一行数据都是一条时序数据记录,例如在对时序数据压缩编码的时候,可以500条或者1000条这样的一批存放在日志块中的时序数据进行编码,在编码压缩这500条或者1000条数据时,其创建的局部字典是针对这批数据的,编码过程中使用到的参数,都记录在了在这500条或者1000条数据编码后的数据块中;在解码的时候,直接从这个数据块中还原出局部字典表和参数后,可以直接还原对应的metric、tags以及对应的field域值即可;这个过程不需要获取外部参数或者变量,因此可以认为每个日志块为最小的自治编码单元。
本说明书实施例中,针对时序数据中大量重复的字符串,采用引入局部字典表编码字符串的方式,有效的减少了日志的时序数据中的字符串的重复率,且每个日志是最小自治编解码单元,无需维护外部参数和变量,针对时序数据中同一列值变化不大的特征,引入了delta-of-delta、zigzag、xor等压缩算法等压缩算法对时间戳和域值进行了列式压缩,并且通过记录每条时间线的schema,有效解决了同一列存在不同数据类型以及无值的情况下对时序数据的编码压缩问题。
本说明书实施例中,所述数据处理方法包括获取待处理的时序数据,并将所述时序数据划分为第一时序数据和第二时序数据;基于字典编码算法对所述第一时序数据进行编码,以生成第一编码值;基于列式压缩算法对所述第二时序数据进行编码,以生成第二编码值;根据所述第一编码值和所述第二编码值生成处理后的时序数据。所述数据处理方法通过将时序数据按照数据类型分为两部分,采用每部分时序数据对应的压缩编码方法对其进行压缩编码,极大的缩小了时序数据的大小,降低了时序数据对数据库存储空间占用,提升时序数据写入数据库的数据量。
与上述方法实施例相对应,本说明书还提供了数据处理装置实施例,图8示出了本说明书一个实施例提供的一种数据处理装置的结构示意图。如图8所示,该装置包括:
数据获取模块802,被配置为获取待处理的时序数据,并将所述时序数据划分为第一时序数据和第二时序数据;
第一编码模块804,被配置为基于字典编码算法对所述第一时序数据进行编码,以生成第一编码值;
第二编码模块806,被配置为基于列式压缩算法对所述第二时序数据进行编码,以生成第二编码值;
数据处理模块808,被配置为根据所述第一编码值和所述第二编码值生成处理后的时序数据。
可选的,所述第一编码模块804,进一步被配置为:
基于预设的表结构创建局部字典表;
将所述第一时序数据添加到所述局部字典表中,并为所述第一时序数据设置对应的数字标识;
基于所述局部字典表对所述第一时序数据进行编码,以生成第一编码值,其中,所述局部字典表中存储所述第一时序数据以及所述第一时序数据对应的数字标识。
可选的,所述第一编码模块804,进一步被配置为:
获取第i个第一时序数据,其中,i∈【1,n】,且n为正整数;
判断第i个第一时序数据是否在所述局部字典表中,
若是,则获取所述局部字典表中与所述第i个第一时序数据对应的数字标识,
若否,则将所述第i个第一时序数据添加到所述局部字典表中,并为所述第i个第一时序数据设置对应的数字标识;
判断i是否大于等于n;
若是,则结束,
若否,则将i自增1,继续获取第i个第一时序数据。
可选的,所述第一编码模块804,进一步被配置为:
将所述局部字典表中所述第一时序数据对应的数字标识代替所述第一时序数据,以生成所述第一时序数据的第一编码值。
可选的,所述第一编码模块804,进一步被配置为:
将所述第i个第一时序数据添加到所述局部字典表中,且获取第i-1个第一时序数据对应的数字标识;
按照预设间隔在所述第i-1个第一时序数据对应的数字标识上进行递增,以生成所述第i个第一时序数据对应的数字标识。
可选的,所述第二编码模块806,进一步被配置为:
获取所述第二时序数据中的时间戳数据和非时间戳数据;
基于delta-of-delta算法对同一列的所述时间戳数据进行编码,以及基于预设算法对同一列的所述非时间戳数据进行编码,以生成第二编码值。
可选的,所述装置,还包括:
格式转换模块,被配置为在同一列的所述非时间戳数据的类型不一致的情况下,对所述非时间戳数据的类型进行格式统一。
可选的,所述装置,还包括:
数据写入模块,被配置为接收针对所述时序数据的写请求,并基于所述写请求将所述时序数据写入时序数据日志;
相应的,所述数据获取模块802,进一步被配置为:
从所述时序数据日志中获取待处理的时序数据。
可选的,所述第一时序数据包括键时序数据,所述第二时序数据包括值时序数据;
相应的,所述数据获取模块802,进一步被配置为:
将所述时序数据按照数据类型划分为键时序数据和值时序数据。
可选的,所述处理后的时序数据包括第一编码值、第二编码值以及局部字典表。
本说明书实施例中,所述数据处理装置包括获取待处理的时序数据,并将所述时序数据划分为第一时序数据和第二时序数据;基于字典编码算法对所述第一时序数据进行编码,以生成第一编码值;基于列式压缩算法对所述第二时序数据进行编码,以生成第二编码值;根据所述第一编码值和所述第二编码值生成处理后的时序数据。所述数据处理方法通过将时序数据按照数据类型分为两部分,采用每部分时序数据对应的压缩编码方法对其进行压缩编码,极大的缩小了时序数据的大小,降低了时序数据对数据库存储空间占用,提升时序数据写入数据库的数据量。
上述为本实施例的一种数据处理装置的示意性方案。需要说明的是,该数据处理装置的技术方案与上述的数据处理方法的技术方案属于同一构思,数据处理装置的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
图9示出了根据本说明书一个实施例提供的一种计算设备900的结构框图。该计算设备900的部件包括但不限于存储器910和处理器920。处理器920与存储器910通过总线930相连接,数据库950用于保存数据。
计算设备900还包括接入设备940,接入设备940使得计算设备900能够经由一个或多个网络960通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备940可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备900的上述部件以及图9中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图9所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备900可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备900还可以是移动式或静止式的服务器。
其中,处理器920用于执行如下计算机可执行指令,该指令被处理器执行时实现所述数据处理方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述数据处理方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
Claims (13)
1.一种数据处理方法,包括:
获取待处理的时序数据,并将所述时序数据划分为第一时序数据和第二时序数据;
基于字典编码算法对所述第一时序数据进行编码,以生成第一编码值;
基于列式压缩算法对所述第二时序数据进行编码,以生成第二编码值;
根据所述第一编码值和所述第二编码值生成处理后的时序数据。
2.根据权利要求1所述的数据处理方法,所述基于字典编码算法对所述第一时序数据进行编码,以生成第一编码值包括:
基于预设的表结构创建局部字典表;
将所述第一时序数据添加到所述局部字典表中,并为所述第一时序数据设置对应的数字标识;
基于所述局部字典表对所述第一时序数据进行编码,以生成第一编码值,其中,所述局部字典表中存储所述第一时序数据以及所述第一时序数据对应的数字标识。
3.根据权利要求2所述的数据处理方法,所述将所述第一时序数据添加到所述局部字典表中,并为所述第一时序数据设置对应的数字标识包括:
获取第i个第一时序数据,其中,i∈【1,n】,且n为正整数;
判断第i个第一时序数据是否在所述局部字典表中,
若是,则获取所述局部字典表中与所述第i个第一时序数据对应的数字标识,
若否,则将所述第i个第一时序数据添加到所述局部字典表中,并为所述第i个第一时序数据设置对应的数字标识;
判断i是否大于等于n;
若是,则结束,
若否,则将i自增1,继续获取第i个第一时序数据。
4.根据权利要求2所述的数据处理方法,所述基于所述局部字典表对所述第一时序数据进行编码,以生成第一编码值包括:
将所述局部字典表中所述第一时序数据对应的数字标识代替所述第一时序数据,以生成所述第一时序数据的第一编码值。
5.根据权利要求3所述的数据处理方法,所述将所述第i个第一时序数据添加到所述局部字典表中,并为所述第i个第一时序数据设置对应的数字标识包括:
将所述第i个第一时序数据添加到所述局部字典表中,且获取第i-1个第一时序数据对应的数字标识;
按照预设间隔在所述第i-1个第一时序数据对应的数字标识上进行递增,以生成所述第i个第一时序数据对应的数字标识。
6.根据权利要求1所述的数据处理方法,所述基于列式压缩算法对所述第二时序数据进行编码,以生成第二编码值包括:
获取所述第二时序数据中的时间戳数据和非时间戳数据;
基于delta-of-delta算法对同一列的所述时间戳数据进行编码,以及基于预设算法对同一列的所述非时间戳数据进行编码,以生成第二编码值。
7.根据权利要求6所述的数据处理方法,所述基于预设算法对同一列的所述非时间戳数据进行编码之前,还包括:
在同一列的所述非时间戳数据的类型不一致的情况下,对所述非时间戳数据的类型进行格式统一。
8.根据权利要求1所述的数据处理方法,所述获取待处理的时序数据之前,还包括:
接收针对所述时序数据的写请求,并基于所述写请求将所述时序数据写入时序数据日志;
相应的,所述获取待处理的时序数据包括:
从所述时序数据日志中获取待处理的时序数据。
9.根据权利要求1-8任意一项所述的数据处理方法,所述第一时序数据包括键时序数据,所述第二时序数据包括值时序数据;
相应的,所述将所述时序数据划分为第一时序数据和第二时序数据包括:
将所述时序数据按照数据类型划分为键时序数据和值时序数据。
10.根据权利要求2所述的数据处理方法,所述处理后的时序数据包括第一编码值、第二编码值以及局部字典表。
11.一种数据处理装置,包括:
数据获取模块,被配置为获取待处理的时序数据,并将所述时序数据划分为第一时序数据和第二时序数据;
第一编码模块,被配置为基于字典编码算法对所述第一时序数据进行编码,以生成第一编码值;
第二编码模块,被配置为基于列式压缩算法对所述第二时序数据进行编码,以生成第二编码值;
数据处理模块,被配置为根据所述第一编码值和所述第二编码值生成处理后的时序数据。
12.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该指令被处理器执行时实现权利要求1至10任意一项所述数据处理方法的步骤。
13.一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现权利要求1至10任意一项所述数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011191568.8A CN113297208A (zh) | 2020-10-30 | 2020-10-30 | 数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011191568.8A CN113297208A (zh) | 2020-10-30 | 2020-10-30 | 数据处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113297208A true CN113297208A (zh) | 2021-08-24 |
Family
ID=77318415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011191568.8A Pending CN113297208A (zh) | 2020-10-30 | 2020-10-30 | 数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113297208A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114665885A (zh) * | 2022-03-29 | 2022-06-24 | 北京诺司时空科技有限公司 | 一种时序数据库自适应数据压缩方法 |
CN114721601A (zh) * | 2022-05-26 | 2022-07-08 | 昆仑智汇数据科技(北京)有限公司 | 一种工业设备数据的存储方法及装置 |
CN115208413A (zh) * | 2022-09-14 | 2022-10-18 | 北京四维纵横数据技术有限公司 | 链式编码压缩方法、装置、计算机设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5177622A (en) * | 1989-07-27 | 1993-01-05 | Fujitsu Limited | Method and apparatus for detecting run length of two successive pixels and subjecting run length to universal coding |
JP2007274568A (ja) * | 2006-03-31 | 2007-10-18 | Oki Electric Ind Co Ltd | パケットロス補償方法、パケット送信装置及びパケット受信装置 |
US20140040276A1 (en) * | 2012-07-31 | 2014-02-06 | International Business Machines Corporation | Method and apparatus for processing time series data |
JP2017211844A (ja) * | 2016-05-25 | 2017-11-30 | 株式会社リコー | 情報処理装置、圧縮処理方法、及びプログラム |
CN111181569A (zh) * | 2019-12-31 | 2020-05-19 | 山东信通电子股份有限公司 | 一种时序数据的压缩方法、装置以及设备 |
CN111427871A (zh) * | 2019-01-09 | 2020-07-17 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、设备 |
-
2020
- 2020-10-30 CN CN202011191568.8A patent/CN113297208A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5177622A (en) * | 1989-07-27 | 1993-01-05 | Fujitsu Limited | Method and apparatus for detecting run length of two successive pixels and subjecting run length to universal coding |
JP2007274568A (ja) * | 2006-03-31 | 2007-10-18 | Oki Electric Ind Co Ltd | パケットロス補償方法、パケット送信装置及びパケット受信装置 |
US20140040276A1 (en) * | 2012-07-31 | 2014-02-06 | International Business Machines Corporation | Method and apparatus for processing time series data |
JP2017211844A (ja) * | 2016-05-25 | 2017-11-30 | 株式会社リコー | 情報処理装置、圧縮処理方法、及びプログラム |
CN111427871A (zh) * | 2019-01-09 | 2020-07-17 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、设备 |
CN111181569A (zh) * | 2019-12-31 | 2020-05-19 | 山东信通电子股份有限公司 | 一种时序数据的压缩方法、装置以及设备 |
Non-Patent Citations (1)
Title |
---|
夏小玲;李海燕;王梅;: "列存储数据仓库中基于概率的保序字符串压缩方法", 计算机研究与发展, no. 08, 15 August 2013 (2013-08-15), pages 104 - 112 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114665885A (zh) * | 2022-03-29 | 2022-06-24 | 北京诺司时空科技有限公司 | 一种时序数据库自适应数据压缩方法 |
CN114721601A (zh) * | 2022-05-26 | 2022-07-08 | 昆仑智汇数据科技(北京)有限公司 | 一种工业设备数据的存储方法及装置 |
CN115208413A (zh) * | 2022-09-14 | 2022-10-18 | 北京四维纵横数据技术有限公司 | 链式编码压缩方法、装置、计算机设备及存储介质 |
CN115208413B (zh) * | 2022-09-14 | 2023-01-17 | 北京四维纵横数据技术有限公司 | 链式编码压缩方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113297208A (zh) | 数据处理方法及装置 | |
CN105893337B (zh) | 用于文本压缩和解压缩的方法和设备 | |
CN106682077B (zh) | 一种基于Hadoop技术的海量时序数据存储实现方法 | |
CN113297135A (zh) | 数据处理方法以及装置 | |
CN109994131B (zh) | 一种基于索引的工频录波文件压缩存储方法及系统 | |
CN107328968B (zh) | 用于电能表的冻结和事件记录数据存储方法 | |
CN110995273A (zh) | 电力数据库的数据压缩方法、装置、设备及介质 | |
CN105144157A (zh) | 用于压缩数据库中的数据的系统和方法 | |
CN116361256B (zh) | 基于日志解析的数据同步方法及系统 | |
Yong et al. | Efficient graph summarization using weighted lsh at billion-scale | |
Yao et al. | Improving state-of-the-art compression techniques for log management tools | |
CN111930751A (zh) | 一种时序数据的存储方法及装置 | |
CN116244313B (zh) | Json数据存储和访问方法、装置、计算机设备及介质 | |
Wei et al. | On the feasibility of parser-based log compression in {Large-Scale} cloud systems | |
CN115408350A (zh) | 日志压缩、日志还原方法、装置、计算机设备和存储介质 | |
CN114579570A (zh) | 数据处理方法及装置 | |
CN111984625B (zh) | 数据库负载特征处理方法、装置、介质和电子设备 | |
CN113687773A (zh) | 数据压缩模型训练方法及装置、存储介质 | |
CN111190896B (zh) | 数据处理方法、装置、存储介质和计算机设备 | |
CN113179265A (zh) | 一种日志压缩加密方法、装置、设备及存储介质 | |
CN110825744B (zh) | 一种基于集群环境的空气质量监测大数据分区存储方法 | |
CN114726380B (zh) | 一种监测数据无损压缩方法、装置、设备及可读存储介质 | |
CN108647243B (zh) | 基于时间序列的工业大数据存储方法 | |
CN114466082B (zh) | 数据压缩、数据解压方法、系统及人工智能ai芯片 | |
US11934354B2 (en) | Method of compressing and decompressing a file via cellular automata pre-processing |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40059167 Country of ref document: HK |