CN115982436A - 一种流数据的高效检索、压缩系统及压缩方法 - Google Patents
一种流数据的高效检索、压缩系统及压缩方法 Download PDFInfo
- Publication number
- CN115982436A CN115982436A CN202211549429.7A CN202211549429A CN115982436A CN 115982436 A CN115982436 A CN 115982436A CN 202211549429 A CN202211549429 A CN 202211549429A CN 115982436 A CN115982436 A CN 115982436A
- Authority
- CN
- China
- Prior art keywords
- data
- compression
- module
- stream
- reading
- 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
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)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种流数据的高效检索、压缩系统及方法,属于物联网数据技术领域,包括:流数据读取模块,用于读取流数据;数据解构模块,对流数据进行解构;数据压缩模块,将数据解构模块传来的数据根据数据类型进行压缩,并将压缩后的数据存储到数据存储模块;数据存储模块,用于存储压缩后的数据。本发明的有益效果是,根据ChunkSize选择的数值不同,节省流数据存储空间50%‑95%;提高大规模数据分析速度50%以上。
Description
技术领域
本发明涉及物联网数据技术领域,具体为一种流数据的高效检索、压缩系统及压缩方法。
背景技术
随着科技的发展,特别是物联网行业的蓬勃发展,世界上涌现出越来越多的物联网设备,大到一辆汽车,一台生产设备,小到一个手机,一个手环,这些数以亿记的物联网设备每时每刻都产生大量的实时流数据,这些数据通过4G,5G网络上传到云端后,会产生海量的存储需求,同时对这些数据的访问以及分析也会产生大量的数据查询需求。面对海量的数据存储与数据查询需求,流数据(一组顺序、大量、快速、连续到达的数据序列。例如车联网数据,网络监控数据,传感器网络数据,气象测控数据等等,一条典型的流数据通常包含数据产生的时间戳,产生数据的设备id,以及设备上的传感器数据)需要在压缩存储空间与提高查询速度之间作出一个平衡。
面向行的数据存储是结构化数据存储最常见的形式。如关系型数据库,CSV格式,电子表格等都默认采用面向行的数据存储,它具有如下特点:一、对于一条数据,它的各个字段连续存储;二、数据多条数据,他们之间也是连续存储;面向列的数据存储是结构化数据存储另一种形式,它具有如下特点:不同数据的同一列连续存储。
现有面向行的流数据存储,每一行在存储流数据之外还要花费一定的存储空间做数据对齐以及存储头部信息。现有技术的缺点:
一、占用额外存储空间:除了存储数据本身之外,每一行都会占用额外的数据空间,这些空间一个固定大小的头信息,以及一个与数据类型相关的数据对齐空间。由于面向行的存储形式每一行都会有这些额外的存储空间。这花费了大量的额外存储空间,且该空间无法压缩;
二、数据压缩率低:一行数据不同字段间的数据类型通常不同,这导致在对面向行的数据进行压缩时无法针对某一数据类型选择最优压缩算法,只能选择压缩率相对较低的通用压缩算法。并且每一行数据都需要单独执行算法。以上都将导致面向行的数据存储在使用压缩算法后部分查询速度慢:在对流数据进行浅层,大规模数据查询或者聚合运算的时候(常见与数据分析与数据可视化应用中),面向行的数据存储需要检索每一行,获取不连续的对应列的数据,然后再进行计算。例如在2.2.0中的数据,要获得传感器温度的平均值就需要扫描所有的数据然后计算,对这类查询面向行的数据存储查询较慢。
发明内容
针对上述技术问题,本发明的目的是提供一种流数据的高效检索、压缩系统及压缩方法。该方法一方面重构流数据提高存储空间使用效率;另一方面提高流数据部分查询的速度。
为实现上述目的,本发明采用如下技术方案:
一种流数据的高效检索、压缩系统,包括:
流数据读取模块,用于读取流数据;
数据解构模块,对流数据进行解构;
数据压缩模块,将数据解构模块传来的数据根据数据类型进行压缩,并将压缩后的数据存储到数据存储模块;
数据存储模块,用于存储压缩后的数据。
优选地,数据解构模块包括:
配置模块:配置执行数据解构与数据压缩的数据量,确定多少行数据执行一次数据解构以及数据压缩,该数据量成为ChunkSize;
数据收集模块:读取流数据,并将流数据放入到队列中;
数据解构模块:从队列读取流数据解构为字段名与字段值构成的键值对,为后续基于列数据类型的数据压缩以及面向列的流数据存储作准备。
优选地,数据压缩模块判断字段的数据类型,并根据数据类型分别采用Gorilla算法或LZ算法压缩该字段数据。
本发明同时提供一种流数据的高效检索、压缩系统的压缩方法,包括以下步骤:
S1:读取流数据;
S2:对流数据进行解构;
S3:对解构后的数据进行压缩;
S4:对压缩后的数据进行存储。
优选地,步骤S2对流数据解构具体为:
S21:配置chunksize:
S211:输入一个0到10000之间的整数;
S212:点击确定;
S22:数据解构:
S221:从配置模块读取chunksize;
S222:读取流数据,并追加到数据队列;
S223:若队列中的数据量等于chunksize,执行步骤S224,否则执行步骤S222;
S224:将数据重构为面向列的形式,将不同数据行的相同字段中的值提取出来,并放到一个数据中;
S225:将解构后的数据发送给数据压缩模块。
优选地,步骤S3中对解构后的数据进行压缩具体为:
S31:读取解构后的数据;
S32:循环读取每一个字段,判断字段的数据类型,如果是浮点型,整形,或者时间戳则执行S33,其他类型则执行S34;
S33:使用Gorilla算法压缩该字段数据;
S34:使用LZ算法压缩该字段数据;
S35:将压缩后的数据插入到存储模块中。
优选地,步骤S4具体为:存储面向列的压缩过的流数据。
与现有技术相比:本发明具有以下有益效果:
1.根据ChunkSize选择的数值不同,节省流数据存储空间50%-95%;
2.提高大规模数据分析速度50%以上。
附图说明
图1为现有面向行的流数据存储示意图;
图2为本发明系统架构示意图;
图3为本发明方法流程示意图;
图4为本发明示例流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
如图1所示,现有面向行的流数据存储每一行在存储流数据之外还要花费一定的存储空间做数据对齐以及存储头部信息。
现有基于面向行的流数据存储的LZ数据压缩算法:LZ压缩算法是字典压缩类算法的一个常见算法,原理是构建一个字典,用索引来代替重复出现的字符或字符串,当结构化数据采用面向行的存储结构时,常用LZ算法对数据进行压缩。
如图2所示,本发明提供的一种流数据的高效检索、压缩系统,包括:
流数据读取模块,用于读取流数据;
数据解构模块,对流数据进行解构;
数据压缩模块,将数据解构模块传来的数据根据数据类型进行压缩,并将压缩后的数据存储到数据存储模块;
数据存储模块,用于存储压缩后的数据。
其中,数据解构模块包括:
配置模块:配置执行数据解构与数据压缩的数据量,确定多少行数据执行一次数据解构以及数据压缩,该数据量成为ChunkSize;
数据收集模块:读取流数据,并将流数据放入到队列中;
数据解构模块:从队列读取流数据解构为字段名与字段值构成的键值对,为后续基于列数据类型的数据压缩以及面向列的流数据存储作准备。
此外,数据压缩模块判断字段的数据类型,并根据数据类型分别采用Gorilla算法或LZ算法压缩该字段数据。
需要说明的是,Gorilla与KZ压缩算法是常见的高效压缩算法,其具体原理不在本发明范围之内,在此不再赘述。
如图3所示,本发明同时提供一种流数据的高效检索、压缩系统的压缩方法,包括以下步骤:
S1:读取流数据;
S2:对流数据进行解构;
S3:对解构后的数据进行压缩;
S4:对压缩后的数据进行存储。
其中,步骤S2对流数据解构具体为:
S21:配置chunksize:
S211:输入一个0到10000之间的整数;
S212:点击确定;
S22:数据解构:
S221:从配置模块读取chunksize;
S222:读取流数据,并追加到数据队列;
S223:若队列中的数据量等于chunksize,执行步骤S224,否则执行步骤S222;
S224:将数据重构为面向列的形式,将不同数据行的相同字段中的值提取出来,并放到一个数据中;
S225:将解构后的数据发送给数据压缩模块。
此外,步骤S3中对解构后的数据进行压缩具体为:
S31:读取解构后的数据;
S32:循环读取每一个字段,判断字段的数据类型,如果是浮点型,整形,或者时间戳则执行S33,其他类型则执行S34;
S33:使用Gorilla算法压缩该字段数据;
S34:使用LZ算法压缩该字段数据;
S35:将压缩后的数据插入到存储模块中。
举例说明,示例设定如下:
A、ChunkSize为10,
B、每一行数据包含两个字段:
时间戳(时间戳类型),
设备ID(字符串类型),
示例流程如图4所示。
虽然在上文中已经参考实施方式对本发明进行了描述,然而在不脱离本发明的范围的情况下,可以对其进行各种改进并且可以用等效物替换其中的部件。尤其是,只要不存在结构冲突,本发明所披露的实施方式中的各项特征均可通过任意方式相互结合起来使用,在本说明书中未对这些组合的情况进行穷举性的描述仅仅是出于省略篇幅和节约资源的考虑。因此,本发明并不局限于文中公开的特定实施方式,而是包括落入权利要求的范围内的所有技术方案。
Claims (7)
1.一种流数据的高效检索、压缩系统,其特征在于,包括:
流数据读取模块,用于读取流数据;
数据解构模块,对流数据进行解构;
数据压缩模块,将数据解构模块传来的数据根据数据类型进行压缩,并将压缩后的数据存储到数据存储模块;
数据存储模块,用于存储压缩后的数据。
2.根据权利要求1所述的一种流数据的高效检索、压缩系统,其特征在于,数据解构模块包括:
配置模块:配置执行数据解构与数据压缩的数据量,确定多少行数据执行一次数据解构以及数据压缩,该数据量成为ChunkSize;
数据收集模块:读取流数据,并将流数据放入到队列中;
数据解构模块:从队列读取流数据解构为字段名与字段值构成的键值对,为后续基于列数据类型的数据压缩以及面向列的流数据存储作准备。
3.根据权利要求1所述的一种流数据的高效检索、压缩系统,其特征在于,数据压缩模块判断字段的数据类型,并根据数据类型分别采用Gorilla算法或LZ算法压缩该字段数据。
4.根据权利要求1所述的一种流数据的高效检索、压缩系统的压缩方法,其特征在于:包括以下步骤:
S1:读取流数据;
S2:对流数据进行解构;
S3:对解构后的数据进行压缩;
S4:对压缩后的数据进行存储。
5.根据权利要求4所述的一种流数据的高效检索、压缩系统的压缩方法,其特征在于,步骤S2对流数据解构具体为:
S21:配置chunksize:
S211:输入一个0到10000之间的整数;
S212:点击确定;
S22:数据解构:
S221:从配置模块读取chunksize;
S222:读取流数据,并追加到数据队列;
S223:若队列中的数据量等于chunksize,执行步骤S224,否则执行步骤S222;
S224:将数据重构为面向列的形式,将不同数据行的相同字段中的值提取出来,并放到一个数据中;
S225:将解构后的数据发送给数据压缩模块。
6.根据权利要求4所述的一种流数据的高效检索、压缩系统的压缩方法,其特征在于,步骤S3中对解构后的数据进行压缩具体为:
S31:读取解构后的数据;
S32:循环读取每一个字段,判断字段的数据类型,如果是浮点型,整形,或者时间戳则执行S33,其他类型则执行S34;
S33:使用Gorilla算法压缩该字段数据;
S34:使用LZ算法压缩该字段数据;
S35:将压缩后的数据插入到存储模块中。
7.根据权利要求4所述的一种流数据的高效检索、压缩系统的压缩方法,其特征在于,步骤S4具体为:存储面向列的压缩过的流数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211444459 | 2022-11-18 | ||
CN2022114444591 | 2022-11-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115982436A true CN115982436A (zh) | 2023-04-18 |
Family
ID=85961505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211549429.7A Pending CN115982436A (zh) | 2022-11-18 | 2022-12-05 | 一种流数据的高效检索、压缩系统及压缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115982436A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117786169A (zh) * | 2024-02-26 | 2024-03-29 | 北京数变科技有限公司 | 一种数据自适应存储方法、装置、电子设备及存储介质 |
-
2022
- 2022-12-05 CN CN202211549429.7A patent/CN115982436A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117786169A (zh) * | 2024-02-26 | 2024-03-29 | 北京数变科技有限公司 | 一种数据自适应存储方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20160196277A1 (en) | Data record compression with progressive and/or selective decompression | |
CN101241508B (zh) | 结构化数据序列的压缩方法 | |
CN101630323B (zh) | 确定自动机的空间压缩方法 | |
Fusco et al. | Indexing million of packets per second using GPUs | |
CN106778079A (zh) | 一种基于MapReduce的DNA序列k‑mer频次统计方法 | |
CN115982436A (zh) | 一种流数据的高效检索、压缩系统及压缩方法 | |
US20200294629A1 (en) | Gene sequencing data compression method and decompression method, system and computer-readable medium | |
CN100476824C (zh) | 存储元素的方法与系统及查找元素的方法与系统 | |
CN111930751A (zh) | 一种时序数据的存储方法及装置 | |
CN103139567A (zh) | 一种图像压缩和解压缩的方法和装置 | |
CN113297208A (zh) | 数据处理方法及装置 | |
CN112597345A (zh) | 一种实验室数据自动采集与匹配方法 | |
CN114268323B (zh) | 支持行存的数据压缩编码方法、装置及时序数据库 | |
CN108932738B (zh) | 一种基于字典的位片索引压缩方法 | |
CN106940708A (zh) | 一种基于二分查找法实现ip范围定位的方法及系统 | |
CN111553442B (zh) | 一种分类器链标签序列的优化方法及系统 | |
CN112434085A (zh) | 基于Roaring Bitmap的用户数据统计方法 | |
CN116150209A (zh) | 报表计算系统、方法、电子设备及存储介质 | |
CN112306421B (zh) | 一种用于存储分析测量数据格式mdf文件的方法和系统 | |
CN114185884A (zh) | 基于列存数据的流式数据处理方法及系统 | |
CN111079935B (zh) | 一种spark下的机器学习快速大规模样本签名方法 | |
CN109698703A (zh) | 基因测序数据解压方法、系统及计算机可读介质 | |
CN113468866A (zh) | 非标准json串的解析方法及装置 | |
CN113282568A (zh) | 一种iot大数据实时时序流分析应用技术方法 | |
CN110111851B (zh) | 基因测序数据压缩方法、系统及计算机可读介质 |
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 |