CN115934792A - 一种数组型时序数据压缩与跨维度查询方法 - Google Patents
一种数组型时序数据压缩与跨维度查询方法 Download PDFInfo
- Publication number
- CN115934792A CN115934792A CN202211506113.XA CN202211506113A CN115934792A CN 115934792 A CN115934792 A CN 115934792A CN 202211506113 A CN202211506113 A CN 202211506113A CN 115934792 A CN115934792 A CN 115934792A
- Authority
- CN
- China
- Prior art keywords
- data
- time sequence
- time
- compression
- storage
- 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
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000013144 data compression Methods 0.000 title claims abstract description 41
- 238000007906 compression Methods 0.000 claims abstract description 60
- 230000006835 compression Effects 0.000 claims abstract description 56
- 238000012545 processing Methods 0.000 claims description 17
- 238000013461 design Methods 0.000 claims description 13
- 238000013500 data storage Methods 0.000 claims description 12
- 238000004458 analytical method Methods 0.000 claims description 6
- 238000007667 floating Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 claims description 5
- 230000032683 aging Effects 0.000 claims description 3
- 238000009530 blood pressure measurement Methods 0.000 claims description 3
- 230000014759 maintenance of location Effects 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 claims description 3
- 238000012986 modification Methods 0.000 claims description 3
- 230000004048 modification Effects 0.000 claims description 3
- 238000012856 packing Methods 0.000 claims description 3
- 230000010076 replication Effects 0.000 claims description 3
- 238000000926 separation method Methods 0.000 claims description 3
- 238000005299 abrasion Methods 0.000 claims description 2
- 239000007787 solid Substances 0.000 claims description 2
- 238000005265 energy consumption Methods 0.000 abstract description 3
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000004519 manufacturing process Methods 0.000 abstract description 3
- 231100000279 safety data Toxicity 0.000 abstract description 3
- 230000005540 biological transmission Effects 0.000 description 8
- 238000007726 management method Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 238000012216 screening Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种数组型时序数据压缩与跨维度查询方法,所属大数据技术领域,压缩方法为寻找数据的规律,根据数据规律进行压缩:先压缩key,再对value进行压缩。查询方法包括构建出时序数据库中数组型时序数据,构建出根据时序数据物理的超表;将采集到的时序数据进行压缩,然后***到时序数据库中;基于时间和指定维度构建时序数据表的底层实现,对整体数据进行拆分,用于后续跨维度查询实现;根据底层指定查询条件构造出通过时间,指定维度实现查询方法,从而实现时序数据的跨维度查询。本发明方法适用于设备数据、环境数据、能耗数据、安防数据、消防安全数据和生产数据等,具有储存成本低、跨维度查询方便、存储量大、安全、精确等优势。
Description
技术领域
本发明属于大数据技术领域,具体涉及一种对海量数据进行压缩减少储存成本,及对时序数据进行快速查询的方法。
背景技术
伴随着大数据技术的发展,在水文监控、工厂的设备监控、国家安全的相关数据监控、通讯监控、金融行业的指标数据、传感器数据等等,这些领域上都需要记录时序数据,时序数据库面对的物联网场景每天都会产生上亿条数据。在大数据时代的今天数据的重要性是不言而喻的,但如果无法对这些时序数据进行很好的管理和压缩,无形间就增加了数据的储存成本。因此就需要对数据进行压缩,对于数据压缩算法,存在普遍的解释,针对通用场景和业务相关场景,比如视频、音频、图像数据流压缩。
另外,查询物联网平台的设备运行的历史数据和实时数据,分析数据背后的趋势和规律,为企业的设备运营提供参考和决策建议,以提高企业的运营效率,则是查询时序数据的主要目的。而精确地查询出某个设备的相关数据是必须要能实现的功能。比如从给定的时间窗口查询特定标签管理的时序数据;从给定时间窗口聚合时序数据或者对时序数据进行线性插值补齐缺失的时序数据;对时序数据按属性、数据质量、采样点个数和时间进行分组,方便后续分析;筛选特定时序数据或者筛选最近时间的数据。
目前现有的数据压缩方法采用LZ算法,以纯英文字符串为例,逐个遍历每个字符串,若当前字典表中还没有该字符,则将该字符加入字典中,键为该字符,值为生成器返回的数字;若有当前字符,则继续加入下一个字符,此时便有两个字符组成了字符串,判断该字符串是否在当前字典中,如果在,则继续添加下一个字符,组成新的字符串,如果不在,则将该字符串加入字典。最终构成的输出字符串,是用字典中的值代替字符串+末尾字符的形式。现阶段的查询方法为通过时间构建出的数据库表,需要对表的构造进行一定的分析,通过分析运用sql语句对不同维度的数据进行查询,不能直观看出表的关系以及各个维度的数据。
伴随物联网技术发展,时序数据库的使用也越来越广泛,对时序数据的要求也越来越多。时序数据库还将面临着以下的问题:
(1)储存成本大:物联网底层设备、仪器、仪表众多。一台设备在不同的场景不同的时间采集的数据各不相同,因此需要把这些数据存储起来,若是不将这些数据进行任何的压缩,数据量则会非常庞大。现有的时序数据通用的压缩算法是面向时序数据设计用于对时序数据进行处理的,现有的这种压缩数据的方法最高的压缩率也不过3。这样一来,只要不对数据进行定期清理,这些数据就会一直存在,占领绝大多数的储存空间。因此,如何更快速更安全更节省空间的对数据进行处理,节约内存减少储存成本是现在首先要解决的问题。
(2)跨维度查询不便:业务对时序数据进行查询时,一般都会带上对时间的区间进行过滤。因此在分区时通常会有一个按照时间进行分区的概念。但是如果对某台设备、某台设备属性对设备信息进行筛选,就非常不方便,耗费时间,进而增加用户的管理量,需要用户手动的对分区进行扩展。若想对设备进行按时间查询出更详细的信息,需对设备信息属性字段横向扩展。因此如何对某一时刻某台设备的某个属性的数据进行快速方便的查询,是需要解决的问题。
(3)海量数据存储问题:设备和传感器实时监控数据并且存入数据库的数据数量非常庞大每天可达TB甚至更多,如何传输、存储并对数据分析计算,以及涉及例如采集图像的传感器,数据库中至少要能够存取图像的特征值。而对于其他垂直行业也是如此,为了最大程度的诠释业务,必须要有更精准的数据类型来支撑。
(4)品质指数问题:当对当量数据进行压缩时,应考虑压缩的算法会不会影响到被压缩数据的损失,压缩后数据精确度。在高压缩率的前提下,要解决最大限度的要实现压缩的速度要快,压缩的精确度要高,防止数据压缩后对数据进行破坏的问题。
(5)数据的安全储存问题:保障数据的安全存储目前还是一个非常困难的问题,因为存储引擎实施运行时要考虑的程序会随时崩溃,服务器可以遇到电源问题或者硬件故障,磁盘可能损坏,在这些情况下都要保证数据可以安全的被压缩存储并进行查询,完善数据的备份和任意时间点回复功能同时也要支持sql。
发明内容
针对现有时序数据库存储及查询存在的技术问题,本发明提供一种数组型时序数据压缩与跨维度查询方法,能够对数组型时序数据库中数据进行高压缩率压缩,并且保证品质指数,以及对数据库中的数据进行跨维度的查询,以便查询出具体某个属性的时序数据。其具体技术方案如下:
一种数组型时序数据压缩方法,如下:
寻找数据的规律,根据数据规律进行压缩:根据数据的属性key寻找各个key之间的规律按照它们之间的规律,通过压缩器编码后形成新的key;再根据与原来的key对应的value找出压缩后的key与value的关系,以及每个value之间的联系,再对value进行压缩;
针对于浮点型时序数据进行压缩,设置失精的阈值,数据压缩不会超过这个阈值,防止当到达这个阈值后,导致数据有严重的磨损,使数据被破坏;以及防止当查询此数据时,导致数据返回不精确,影响数据的观测、分析和对数据的判断走势;当压缩数据后,用一条直线或是曲线匹配点位,拿出当前压缩后的点位与压缩前点位,计算出差值,并将点位连线成一个矩形,然后算出方差,留下方差小的,舍弃方差较大的数;当前点和上一个记录点形成的矩形无法包含中间的点时,把上一个点记录下来,然后能够看到,大部分的数据点都会被丢掉;查询的时候根据记录的点,把丢掉的点在查询的时候找回来,这样有损压缩不仅能够大幅减少存储成本,还能够减少数据的写入,降低网络带宽;数据压缩还支持使用为信号源中的每个符号设定二进制码,出现频率更大的符号将获得更短的比特,出现频率更小的符号将被分配更长的比特,以此来提高数据压缩率,提高传输效率;
针对与数据性质无关的无损数据压缩,使用变动长度的码来取代连续重复出现的原始数据,实现压缩:匹配多种算法压缩数据方式,根据添加的压缩条件,匹配一个最适合改数据的算法压缩数据方式;同时使得存储也特别安全,当数据库有丢失能够及时匹配另一种高性能的算法防止数据丢失。
上述技术方案中,其中,多种算法压缩数据方式包括:遵循IEEE754标准浮点数存储格式的数据特征设计算法、差分编码算法(又称增量编码算法)、XOR算法、RLE算法、Simple8b算法、Zig-zag算法、Delta-of-Delta算法(又称二阶差分编码算法)、Snappy压缩算法、LZO块压缩算法、DEFLATE无损数据压缩算和Bit-packing位压缩算法。
一种数组型时序数据跨维度查询方法,包括如下步骤:
S1:构建出时序数据库中数组型时序数据,通过构建出时序数据,保证实时存储当前采集到的时序数据,将数据保存在时序数据库中;
S2:构建出根据时序数据物理的超表,查询数据时直观观察出时序数据;
S3:将采集到的时序数据进行压缩,然后对时序数据进行分层处理,然后***到时序数据库中;
S4:基于时间和指定维度构建时序数据表的底层实现,对整体数据进行拆分,用于后续跨维度查询实现;
S5:根据底层指定查询条件构造出通过时间,指定维度实现查询方法,从而实现时序数据的跨维度查询。
在上述技术方案的S1步骤中,首先是,要选用一个数据池,选择数据池的原则是提供高并发数据事务连接的应用场景,并在高并发应用场景下减少资源申请和释放开销,更快的响应应用内数据库客户端请求,解决多应用与时序数据频繁会话问题。
在上述技术方案的S1步骤中,其次是,要构建一种存储模型,当时序数据库所需要存储的时序数据字段较多的时候,构建数组表的时序数据表结构,并独立记录维度和指标信息,具有相同维度和指标类型或个数的设备模型,能够复用或独立存储于同种的指标表内,并最终转化为将指标值映射到字段的视图,提供使用。
在上述技术方案的S2步骤中,对时序数据进行分层处理,满足实际时序数据跨维度业务场景对时序数据性能以及时序数据库的容量要求,同时节省基础设施采购成本,整体实施的策略分为:热数据层(tier1)、冷数据层(tier2)和历史数据层(tier3)。
所述热数据层(tier1)负责存储近期在时序数据库中频繁实时查询的原始数据指标,采用高性能存储类型,例如SSD介质;热数据层使用指定的表空间,每张超表会共享使用多个表空间,独立的chunk继承其中唯一的表空间做存储。
所述冷数据层(tier2)随着时序数据的老化,热数据层(tier1)的数据逐步迁移到冷数据层(tier2),通过TimescaleDB数据压缩后保存到存储介质上;冷数据层(tier2)使用指定的表空间,与热数据层(tier1)的表空间进行分割。
所述历史数据层(tier3)采用对象存储持续保存冷数据层(tier2)超期后的冷数据,数据会从时序数据库上进行迁移并删除,以paruqet形式进行存储。
在上述技术方案的S3步骤中,采取原始数据后,根据上述数组型时序数据压缩方法的压缩逻辑变更为时序数据直接入库,由时序数据库进行业务处理后,目前的数据写入模式能够由多进程从MQ批量获取数据,单事务多条数据批量写入,并支持利用连接池提高连接性能,从而降低数据库开销,提升写入时序数据效率。
在上述技术方案的S5步骤中,整体时序数据库按照5秒/次的采集频率,向时序数据库写操作按照11条/秒计算,结果为TPS=250*150/5=7500;依照时序数据库性能报告并参考实际压测报告,部署架构采用支持master-service(R/W)和replica-service(Readonly)读写分离模式的一主两从流式复制集群;部署架构采用TimescaleDB单机超表方案,分布式超表待功能特性完善后另行扩展;单超表流式复制方案支持连续集合、数据保留、数据分层和数据压缩业务需要的特性;单台PG数据库服务器采用32c/256G以上配置的虚拟机满足时序数据写入的高TPS需要;数据存储热数据满足10天全量采集(5秒/次)存储要求,采用SSD存储介质,容量2TB(每个节点),包括数据库实时的归档存储空间;温数据满足启用压缩机制(按站点和设备ID)不少于6个月全量采集的存储要求,容量5.4TB(每个节点);冷数据采用对象存储服务,满足不少于3年的历史数据和归档存储要求;同时,在做数据还原处理时,提供额外的挂载存储空间,以支持将对象存储的归档日志同步回数据节点上进行还原。
本发明的一种数组型时序数据压缩与跨维度查询方法,与现有技术相比,有益效果为:
一、本发明压缩方法根据数据的属性key寻找规则,先压缩key,再根据与之对应的value找出key与value的关系,以及每个value之间的联系,再对value进行压缩。本方法能够对原始数据经过压缩编码后得到压缩数据,以最少的比特数表示数据对象,减少储空间或传输带宽,通过把原始数据转换成比原始格式更紧凑的形式,来提高数据的传输、存储和处理效率。
二、本发明压缩方法当时序数据库进行时序压缩时,根据添加的压缩条件优先匹配一个最适用最适合改数据的一种压缩数据方式。以达到压缩数据时采用最快捷、最方便、减少数据存储成本的一种最优压缩方法,这样就做到了对时序数据压缩的最优解决方案,不仅能减少储存成本、节约资源,而且会使压缩后的品质指数非常高。由于匹配了多种算法,这使得存储也特别安全,当数据库有丢失能够匹配另一种高性能的算法防止数据丢失。
三、本发明查询方法设计构建时序数据表的底层实现是基于时间和某个指定维度,对整体数据进行拆分,用于后续跨维度查询实现;根据底层特定的查询条件构造出通过时间,某个指定维度实现查询方法,从而实现时序数据的跨维度查询。使用以“数组表”的时序数据表结构设计,并独立记录维度和指标信息,具有相同维度和指标类型或个数的设备模型,能够复用或独立存储于同钟的指标表内,并最终转化为将指标值映射到字段的视图提供给外部进行使用。避免了传统窄表的多个指标的join链接操作低效的问题,同时解决了传统宽表扩展复杂度高的问题。因为表指标列数有限,多指标查询性能也比传统宽表更快。对于不同指标的数据类型(integer、float等)在压缩的处理上会使用到不同的压缩算法,以达到最优化存储的目的。在实际设计数据存储的表结构上,也将不同值类型的数据做归类处理,相同的类型放置在同一类型的array内,并保持在写入时候的顺序一致性。
四、本发明对数组型时序数据进行压缩提供了新方法,同时也保证了时序数据的存储更为安全可靠,对跨维度查询提供了新的查询方法,提升了查询效率,节约了存储成本。在实际应用中在保证压缩后的品质指数前提下为用户能够节省15%~25%的储存成本。在筛选时间的前提下对某台设备、某台设备属性对设备信息进行跨维度查询,使用户更清晰更直观的的观察出查询结果。进而减少用户的管理量,不许要需要用户手动的对分区进行扩展。
综上,本发明方法适用于设备数据、环境数据、能耗数据、安防数据、消防安全数据和生产数据等;数据感知越全面,数据分析越完整,响应和处理策略就越合理;具有储存成本低、跨维度查询方便、存储量大、安全、精确等优势。选择压缩的算法具备对更普遍场景下持续产生时序数据压缩处理的能力。本发明的数组型时序数据压缩方法,能够对原始数据经过压缩编码后得到压缩数据,以最少的比特数表示数据对象,减少储空间或传输带宽,通过把原始数据转换成比原始格式更紧凑的形式,来提高数据的传输、存储和处理效率。
附图说明
图1为本发明一种数组型时序数据跨维度查询方法的步骤示意图;
图2为本发明实施例1的一种无人操作无人值守场站***管理构架图。
具体实施方式
下面结合具体实施案例和附图1-2对本发明作进一步说明,但本发明并不局限于这些实施例。
实施例1
一种数组型时序数据压缩方法,如下:
本方法能够对原始数据经过压缩编码后得到压缩数据,以最少的比特数表示数据对象,减少储空间或传输带宽,通过把原始数据转换成比原始格式更紧凑的形式,来提高数据的传输、存储和处理效率。
本方法首先寻找数据的特定规律,根据数据的特定规律进行压缩。具体为:寻找数据的规律,根据数据规律进行压缩:根据数据的属性key寻找各个key之间的规律按照它们之间的规律,通过压缩器编码后形成新的key;再根据与原来的key对应的value找出压缩后的key与value的关系,以及每个value之间的联系,再对value进行压缩。
针对于浮点型数据若进行压缩时,这时候要尽可能的减少压缩的数据所丢失的精度,就需要通过设置失精的阈值,进行数据压缩不会超过这个阈值,防止当到达这个阈值后导致数据有严重的磨损使数据被破坏;以及防止当查询此数据时,导致数据返回不精确,影响数据的观测、分析以及对数据的判断走势。浮点型时序数据压缩主要的思路是,当压缩数据后用一条直线或是曲线尽可能的匹配这些点位。例如当前记录的这些点位,然后拿出当前压缩后的点位与压缩前点,算出差值并将点位连线成一个矩形,然后算出方差,留下方差小的,舍弃方差较大的数。当前点和上一个记录点形成的矩形无法包含中间的点时,把上一个点记录下来然后能够看到,大部分的数据点都会被丢掉,查询的时候需要根据记录的点把丢掉的点在查询的时候找回来。有损压缩除了能够大幅减少存储成本。再结合设备端的能力,甚至能够减少数据的写入,降低网络带宽。除此之外,该方法的数据压缩还支持使用为信号源中的每个符号设定二进制码。出现频率更大的符号将获得更短的比特,出现频率更小的符号将被分配更长的比特,以此来提高数据压缩率,提高传输效率。
针对与数据性质无关的无损数据压缩,基于“使用变动长度的码来取代连续重复出现的原始数据”来实现压缩,举例来说,一组字符串“AAAABBBCCDEEEE”,由4个A、3个B、2个C、1个D、4个E组成,经过RLE能够将字符串压缩为4A3B2C1D4E。其优点是简单、速度快,能将连续且重复性高的数据压缩成小单位,但缺点也是很明显的,重复性低的数据压缩效果不好。支持遵循IEEE754标准浮点数存储格式的数据特征设计的特定算法,第一个值不压缩,后面的值是跟第一个值计算XOR(异或)的结果,如果结果相同,仅存储一个0,如果结果不同,存储XOR后的结果,该算法受数据波动影响较大,波动越剧烈,压缩效果越差。支持差分编码又称增量编码,编码时第一个数据不变,其他数据转换为上一个数据的delta,其原理与XOR类似,都是计算相邻两个数据的差异,该算法应用广泛,如需要查看文件的历史更改记录(版本控制、Git等),但在时序数据库中这种算法很少单独使用,一般会搭配RLE、Simple8b或者Zig-zag一起使用,压缩效果更好。支持Delta-of-Delta又名二阶差分编码,是在Delta编码的基础上再一次使用Delta编码,比较适合编码单调递增或者递减的序列数据,例如2,4,4,6,8,Delta编码后为2,2,0,2,2,再Delta编码后为2,0,-2,2,0。支持Zig-zag,将标志位后移至末尾,并去掉编码中多余的0,从而达到压缩的效果,对于比较小的数值压缩效率很高,但是对于大的数据效率不但没有提升可能还会有所下降,因此,Zig-zag通常和Delta编码搭配,Delta能够很好地将大数值数据变为较小的数值。支持Snappy压缩算法,其原理是假设我们有一个序列S=[9,1,2,3,4,5,1,2,3,4],匹配发现子序列S~2,5~=[1,2,3,4]与S~7,10~=[1,2,3,4]是相同的,于是将该序列编码为S=[9,1,2,3,4,5,6,(2,4)],2表示开始位置,4表示位数,Snappy的优点是速度快,压缩率合理。支持Simple8b是64位算法,实现将多个整形数据(在0和1<<60-1之间)压缩到一个64位的存储结构中,其中前4位表示选择器,后面60位用于存储数据,其优点是简单高效,定长编码保证了解压效率,但对于大整数或者浮动较大的值来说压缩率较低,该算法适用于范围较小的无符号整数。支持LZO块压缩算法。支持DEFLATE无损数据压缩算法,实际上DEFLATE只是一种压缩数据流的算法,当一些重要数据进行压缩时会使用该算法。支持Bit-packing(位压缩)压缩算法,基于不是所有的整型都需要32位或者64位来存储这一前提,从我们要压缩的数据中删除不必要的位,比如一个32位的整型数据,其值的范围在(0-100)之间,则可以用7位表示。当时序数据库进行时序压缩时,根据添加的压缩条件优先匹配一个最适用最适合改数据的一种压缩数据方式。以达到压缩数据时采用最快捷、最方便、减少数据存储成本的一种最优压缩方法,这样就做到了对时序数据压缩的最优解决方案,不仅能减少储存成本、节约资源,而且会使压缩后的品质指数非常高。由于匹配了多种算法,这使得存储也特别安全,当数据库有丢失能够匹配另一种高性能的算法防止数据丢失。
如图1所示,一种数组型时序数据跨维度查询方法,如下:
S1:构建出***的相关时序数据库中数组型时序数据的设计,通过构建出时序数据,保证实时存储当前***采集到的时序数据,将数据保存在时序数据库中;
S2:构建出根据时序数据物理的超表,然后对时序数据进行分层处理,查询数据时能够直观观察出时序数据;
S3:将采集到的时序数据进行压缩,然后***到时序数据库中;
S4:构建时序数据表的底层实现是基于时间和某个指定维度,对整体数据进行拆分,用于后续跨维度查询实现;
S5:根据底层特定的查询条件构造出通过时间,某个指定维度实现查询方法,从而实现时序数据的跨维度查询。
在上述方法中S1步骤,首先要选用一个数据池,选择数据池的原则是提供高并发数据事务连接的应用场景,并在高并发应用场景下减少资源申请和释放开销,更快的响应应用内数据库客户端请求,解决多应用与时序数据频繁会话问题。
在上述方法中S1步骤,第二步是要构建一种存储模型。当时序数据库所需要存储的时序数据字段较多的时候,比如一些相关的指标、维度、属性关联在一起的一张数据库表。由于把时序数据不同的内容都存储在一张时序数据库的表中,这种设计模式设计出来的表已经不符合经典三范式的模型设计规范,同时它也存在一定的缺陷随主要的不足之处就是存储的数据太多导致时序数据存在着大量冗余,但是这种设计模式所带来的好处就是查询性能的提高使得数据查询的功能更精确更完善,还给使用者在使用上感觉到便捷。这种设模式计主要应用于对物联网终端设备的时序数据存储,通过把时序数据的相关字段放在同一张表中,能够大大提高数据查询时的效率问题,这种存储的模式跨多个指标的查询更容易,因为它们不需要连接。而且,ingest更快,因为只为多个指标编写一个时间戳。一个典型的宽表模型将匹配一个典型的数据流。同时也可以构建另一种的存储模式,这种存储模式与前一种的存储模式大相径庭。本实施例使用以“数组表”的时序数据表结构设计,并独立记录维度和指标信息,具有相同维度和指标类型或个数的设备模型,能够复用或独立存储于同钟的指标表内,并最终转化为将指标值映射到字段的视图提供给外部进行使用。避免了传统窄表的多个指标的join链接操作低效的问题,同时解决了传统宽表扩展复杂度高的问题。因为表指标列数有限,多指标查询性能也比传统宽表更快。对于不同指标的数据类型(integer、float等)在压缩的处理上会使用到不同的压缩算法,以达到最优化存储的目的。在实际设计数据存储的表结构上,也将不同值类型的数据做归类处理,相同的类型放置在同一类型的array内,并保持在写入时候的顺序一致性。
针对上述跨维度技术方案应对时序数据进行分层处理。欲满足实际时序数据跨维度业务场景对时序数据性能以及时序数据库的容量要求,同时最大化节省基础设施采购成本,整体实施的策略分为热数据层(tier1)、冷数据层(tier2)、历史数据层(tier3)。具体层级如下所述:
tier1:负责存储近期在时序数据库中频繁实时查询的原始数据指标,采用高性能存储类型,例如SSD介质。该层级会使用指定的表空间,每张超表会共享使用多个表空间,独立的chunk会继承其中唯一的表空间做存储。
tier2:随着时序数据的老化,tier1的数据逐步迁移到本层,通过TimescaleDB数据压缩后保存到大容量存储介质上。该层级会使用指定的表空间,与tier1层级的表空间进行分割。
tier3:历史数据层采用对象存储持续保存tier2层超期后的冷数据。数据会从时序数据库上进行迁移并删除,以paruqet形式进行存储。
执行S3的步骤时,采取原始数据后根据以上的压缩逻辑变更为时序数据直接入库,由时序数据库进行其他业务处理后。目前的数据写入模式由多进程从MQ批量获取数据,单事务多条数据批量写入,并支持利用连接池提高连接性能,从而降低数据库开销,提升写入时序数据效率。
在上述方法中,为了提高时序数据的跨维度查询速率,稳定跨维度查询的性能。需要实现整体时序数据库***按照5秒/次的采集频率,向时序数据库写操作按照11条/秒(当前***接入的355个站点的实际平均值)计算。估算结果为TPS=250*150/5=7500。依照时序数据库性能报告并参考实际压测报告,部署架构采用支持master-service(R/W)和replica-service(Readonly)读写分离模式的一主两从流式复制集群。部署架构如在平台设计时采用TimescaleDB单机超表方案,分布式超表待功能特性完善后另行扩展。单超表流式复制方案支持连续集合、数据保留、数据分层、数据压缩等多种业务需要的特性。单台PG数据库服务器建议32c/256G以上配置的虚拟机满足时序数据写入的高TPS需要。数据存储热数据满足10天全量采集(5秒/次)存储要求,优先采用SSD存储介质,建议容量2TB(每个节点),包括数据库实时的归档存储空间;温数据满足启用压缩机制(按站点和设备ID)不少于6个月全量采集的存储要求,估算容量5.4TB(每个节点);冷数据采用对象存储服务,满足不少于3年的历史数据和归档存储要求。同时,在做数据还原处理时,要保证提供额外的挂载存储空间,以支持将对象存储的归档日志同步回数据节点上进行还原。
本实施例的方法及适用于设备数据、环境数据、能耗数据、安防数据、消防安全数据和生产数据等;数据感知越全面,数据分析越完整,响应和处理策略就越合理。
本实施例的一种无人操作无人值守场站***管理构架,如图2所示,基于上述方法,管理构架包括物理设备层、采集面、数据管理平台层和展示层;采集面包括若干个数据采集块。其中,数据存储操作时序数据库,包括对数组型时序数据的压缩以及时序数据跨维度查询。首先需要选择数据池为的是提供高并发时序数据连接,减少在高并发应用场景下资源开销,解决多应用与时序数据频繁会话。然后针对时序数据要进行构造时序数据的数据库存储方式,时序数据库所需要存储的时序数据字段较多的时候,设计***的一些相关的指标、维度、属性关联在一起的一张时序数据表。当这些前提需求设计好以后就需要对数据进行压缩。时序数据库启动数据压缩策略,减小时序数据存储成本并提高查询的速度。时序数据入库时是以未压缩行的形式并存储在tier1层,以追求读写的高性能。在数据老化超期后,会使用作业调度任务将冷数据转换为压缩列的形式的温数据。根据实际业务场景需求,对超过指定时间的chunk根据一定的数据算法最匹配的一种方法进行自动化数据压缩。压缩前会对chunk数据做备份,并在压缩成功后进行删除,以避免压缩过程中出现数据库异常状况导致的数据丢失。另外,压缩后的chunk会基于后续的定时任务将已压缩的chunk和对应索引的表空间从tier1层迁移到tier2层。同时还会匹配一些其他的压缩策略对数据进行再一次的压缩保证减少时序数据的存储空间以节约成本,然后就能够对时序数据进行跨维度查询。
本实施例对数组型时序数据进行压缩提供了新方法,同时也保证了时序数据的存储更为安全可靠,对跨维度查询提供了新的查询方法,提升了查询效率,节约了存储成本。在实际应用中在保证压缩后的品质指数前提下为用户能够节省15%~25%的储存成本。在筛选时间的前提下对某台设备、某台设备属性对设备信息进行跨维度查询,使用户更清晰更直观的的观察出查询结果。进而减少用户的管理量,不许要需要用户手动的对分区进行扩展。
Claims (10)
1.一种数组型时序数据压缩方法,其特征在于,方法的步骤如下,寻找数据的规律,根据数据规律进行压缩:根据数据的属性key寻找各个key之间的规律按照它们之间的规律,通过压缩器编码后形成新的key;再根据与原来的key对应的value找出压缩后的key与value的关系,以及每个value之间的联系,再对value进行压缩。
2.根据权利要求1所述的一种数组型时序数据压缩方法,其特征在于,所述方法针对于浮点型时序数据进行压缩时,设置失精的阈值,数据压缩不会超过这个阈值,防止当到达这个阈值后,导致数据有严重的磨损,使数据被破坏;以及防止当查询此数据时,导致数据返回不精确,影响数据的观测、分析和对数据的判断走势;当压缩数据后,用一条直线或是曲线匹配点位,拿出当前压缩后的点位与压缩前点位,计算出差值,并将点位连线成一个矩形,然后算出方差,留下方差小的,舍弃方差较大的数;当前点和上一个记录点形成的矩形无法包含中间的点时,把上一个点记录下来,然后能够看到,大部分的数据点都会被丢掉;查询的时候根据记录的点,把丢掉的点在查询的时候找回来,这样有损压缩不仅能够大幅减少存储成本,还能够减少数据的写入,降低网络带宽;数据压缩还支持使用为信号源中的每个符号设定二进制码,出现频率更大的符号将获得更短的比特,出现频率更小的符号将被分配更长的比特;
所述方法针对与数据性质无关的无损数据压缩时,使用变动长度的码来取代连续重复出现的原始数据,实现压缩:匹配多种算法压缩数据方式,根据添加的压缩条件,匹配一个最适合改数据的算法压缩数据方式;同时使得存储也特别安全,当数据库有丢失能够及时匹配另一种高性能的算法防止数据丢失。
3.根据权利要求1所述的一种数组型时序数据压缩方法,其特征在于,所述多种算法压缩数据方式包括:遵循IEEE754标准浮点数存储格式的数据特征设计算法、差分编码算法、XOR算法、RLE算法、Simple8b算法、Zig-zag算法、Delta-of-Delta算法、Snappy压缩算法、LZO块压缩算法、DEFLATE无损数据压缩算和Bit-packing位压缩算法。
4.一种数组型时序数据跨维度查询方法,采用上述一种数组型时序数据压缩方法压缩,包括如下步骤:
S1:构建出时序数据库中数组型时序数据,通过构建出时序数据,保证实时存储当前采集到的时序数据,将数据保存在时序数据库中;
S2:构建出根据时序数据物理的超表,查询数据时直观观察出时序数据;
S3:将采集到的时序数据进行压缩,然后对时序数据进行分层处理,然后***到时序数据库中;
S4:基于时间和指定维度构建时序数据表的底层实现,对整体数据进行拆分,用于后续跨维度查询实现;
S5:根据底层指定查询条件构造出通过时间,指定维度实现查询方法,从而实现时序数据的跨维度查询。
5.根据权利要求4所述的一种数组型时序数据跨维度查询方法,其特征在于,所述S1步骤中,首先是,要选用一个数据池,选择数据池的原则是提供高并发数据事务连接的应用场景,并在高并发应用场景下减少资源申请和释放开销,更快的响应应用内数据库客户端请求,解决多应用与时序数据频繁会话问题。
6.根据权利要求4所述的一种数组型时序数据跨维度查询方法,其特征在于,所述S1步骤中,其次是,要构建一种存储模型,当时序数据库所需要存储的时序数据字段较多的时候,构建数组表的时序数据表结构,并独立记录维度和指标信息,具有相同维度和指标类型或个数的设备模型,能够复用或独立存储于同种的指标表内,并最终转化为将指标值映射到字段的视图,提供使用。
7.根据权利要求4所述的一种数组型时序数据跨维度查询方法,其特征在于,所述S2步骤中,对时序数据进行分层处理,满足实际时序数据跨维度业务场景对时序数据性能以及时序数据库的容量要求,同时节省基础设施采购成本,整体实施的策略分为:热数据层、冷数据层和历史数据层。
8.根据权利要求7所述的一种数组型时序数据跨维度查询方法,其特征在于,
所述热数据层负责存储近期在时序数据库中频繁实时查询的原始数据指标,采用高性能存储类型,例如SSD介质;热数据层使用指定的表空间,每张超表会共享使用多个表空间,独立的chunk继承其中唯一的表空间做存储;
所述冷数据层随着时序数据的老化,热数据层的数据逐步迁移到冷数据层,通过TimescaleDB数据压缩后保存到存储介质上;冷数据层使用指定的表空间,与热数据层的表空间进行分割;
所述历史数据层采用对象存储持续保存冷数据层超期后的冷数据,数据会从时序数据库上进行迁移并删除,以paruqet形式进行存储。
9.根据权利要求4或7或8所述的一种数组型时序数据跨维度查询方法,其特征在于,所述S3步骤中,采取原始数据后,根据数组型时序数据压缩方法的压缩逻辑变更为时序数据直接入库,由时序数据库进行业务处理后,目前的数据写入模式能够由多进程从MQ批量获取数据,单事务多条数据批量写入,并支持利用连接池提高连接性能,从而降低数据库开销,提升写入时序数据效率。
10.根据权利要求4所述的一种数组型时序数据跨维度查询方法,其特征在于,所述S5步骤中,整体时序数据库按照5秒/次的采集频率,向时序数据库写操作按照11条/秒计算,结果为TPS=250*150/5=7500;依照时序数据库性能报告并参考实际压测报告,部署架构采用支持master-service和replica-service读写分离模式的一主两从流式复制集群;部署架构采用TimescaleDB单机超表方案,分布式超表待功能特性完善后另行扩展;单超表流式复制方案支持连续集合、数据保留、数据分层和数据压缩业务需要的特性;单台PG数据库服务器采用32c/256G以上配置的虚拟机满足时序数据写入的高TPS需要;数据存储热数据满足10天全量采集存储要求,采用SSD存储介质,容量2TB,包括数据库实时的归档存储空间;温数据满足启用压缩机制不少于6个月全量采集的存储要求,容量5.4TB;冷数据采用对象存储服务,满足不少于3年的历史数据和归档存储要求;同时,在做数据还原处理时,提供额外的挂载存储空间,以支持将对象存储的归档日志同步回数据节点上进行还原。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211506113.XA CN115934792A (zh) | 2022-11-29 | 2022-11-29 | 一种数组型时序数据压缩与跨维度查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211506113.XA CN115934792A (zh) | 2022-11-29 | 2022-11-29 | 一种数组型时序数据压缩与跨维度查询方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115934792A true CN115934792A (zh) | 2023-04-07 |
Family
ID=86648407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211506113.XA Pending CN115934792A (zh) | 2022-11-29 | 2022-11-29 | 一种数组型时序数据压缩与跨维度查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115934792A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118054976A (zh) * | 2024-04-16 | 2024-05-17 | 大连***科技有限公司 | 一种物联网数据安全管理方法及*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1013246A (ja) * | 1996-06-19 | 1998-01-16 | Hitachi Ltd | 時系列データ圧縮・復元方法および装置 |
CN111078753A (zh) * | 2019-12-17 | 2020-04-28 | 联想(北京)有限公司 | 基于HBase数据库的时序数据的存储方法及装置 |
CN111078755A (zh) * | 2019-12-19 | 2020-04-28 | 远景智能国际私人投资有限公司 | 时序数据的存储查询方法、装置、服务器及存储介质 |
CN113312313A (zh) * | 2021-01-29 | 2021-08-27 | 淘宝(中国)软件有限公司 | 数据查询方法、非易失性存储介质及电子设备 |
CN114036410A (zh) * | 2021-10-14 | 2022-02-11 | 阿里云计算有限公司 | 数据存储、查询方法、设备、***、程序及介质 |
-
2022
- 2022-11-29 CN CN202211506113.XA patent/CN115934792A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1013246A (ja) * | 1996-06-19 | 1998-01-16 | Hitachi Ltd | 時系列データ圧縮・復元方法および装置 |
CN111078753A (zh) * | 2019-12-17 | 2020-04-28 | 联想(北京)有限公司 | 基于HBase数据库的时序数据的存储方法及装置 |
CN111078755A (zh) * | 2019-12-19 | 2020-04-28 | 远景智能国际私人投资有限公司 | 时序数据的存储查询方法、装置、服务器及存储介质 |
CN113312313A (zh) * | 2021-01-29 | 2021-08-27 | 淘宝(中国)软件有限公司 | 数据查询方法、非易失性存储介质及电子设备 |
CN114036410A (zh) * | 2021-10-14 | 2022-02-11 | 阿里云计算有限公司 | 数据存储、查询方法、设备、***、程序及介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118054976A (zh) * | 2024-04-16 | 2024-05-17 | 大连***科技有限公司 | 一种物联网数据安全管理方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11500821B2 (en) | Synchronizing metadata in a data storage platform comprising multiple computer nodes | |
CN103177111B (zh) | 重复数据删除***及其删除方法 | |
US9613043B2 (en) | Object deduplication and application aware snapshots | |
CA2645354C (en) | Database adapter for compressing tabular data partitioned in blocks | |
US20100306412A1 (en) | Method and apparatus for content-aware and adaptive deduplication | |
CN111339103B (zh) | 一种基于全量分片和增量日志解析的数据交换方法及*** | |
CN110727406B (zh) | 一种数据存储调度方法及装置 | |
AU7058591A (en) | Media storage and retrieval system | |
KR20110014987A (ko) | 개별 액세스 가능한 데이터 유닛의 스토리지 관리 | |
CN105144157A (zh) | 用于压缩数据库中的数据的***和方法 | |
CN111611250A (zh) | 数据存储设备、数据查询方法、装置、服务器及存储介质 | |
Jensen et al. | Scalable model-based management of correlated dimensional time series in modelardb+ | |
CN113297208A (zh) | 数据处理方法及装置 | |
Wang et al. | Apache IoTDB: A time series database for IoT applications | |
CN115168319A (zh) | 一种数据库***、数据处理方法及电子设备 | |
CN117473021B (zh) | 一种基于cdc方式的达梦数据库增量同步实现方法 | |
CN108182198A (zh) | 存储先进控制器运行数据的控制装置和读取方法 | |
CN111061428B (zh) | 一种数据压缩的方法及装置 | |
CN115934792A (zh) | 一种数组型时序数据压缩与跨维度查询方法 | |
CN112100197A (zh) | 基于Elasticsearch的准实时日志数据分析与统计方法 | |
Zhou et al. | Adaptive subspace symbolization for content-based video detection | |
CN114138559A (zh) | 一种基于合成技术的快速备份方法及*** | |
CN117149914B (zh) | 一种基于ClickHouse的存储方法 | |
CN117056134B (zh) | 一种快速备份能耗监测***中数据库数据的方法 | |
JP2021052263A (ja) | データ圧縮装置およびデータ圧縮方法 |
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 |