首页 > 其他分享 >Parquet存储概述及读写时效对比

Parquet存储概述及读写时效对比

时间:2024-12-20 15:10:36浏览次数:2  
标签:存储 读取 时效 读写 Parquet 数据处理 格式 数据

1. Parquet简介

Parquet是一种开放的列式存储格式,旨在提高大数据处理和分析的效率。

Parquet由Twitter和Cloudera合作开发,并于2015年5月从Apache的孵化器项目毕业,成为Apache的顶级项目。

Parquet旨在高效存储和处理大规模数据集,广泛应用于Hadoop、Spark等大数据生态系统。

2. Parquet的基本原理

2.1. 列式存储

与传统的行式存储不同,Parquet将数据按列存储。这意味着在查询时,只需读取所需的列,而无需读取整行数据,从而大大减少了I/O操作,提高了查询效率。

2.2. 数据压缩

Parquet支持多种压缩算法,如Snappy、Gzip和Zstd等。这些算法可以显著减少存储空间,同时保持较高的读取速度。

2.3. 复杂数据类型

Parquet能够处理嵌套数据结构,如数组、映射等,这使得它非常适合存储和处理复杂的JSON和Avro数据。

2.4. 广泛的兼容性

Parquet能够与Hadoop、Spark、Hive等大数据处理框架无缝集成。

3. Parquet的应用场景

在数据仓库方面,Parquet可以用于存储事实表和维度表,提高查询性能和数据压缩率。

在日志分析方面,Parquet可以高效存储和查询大规模日志数据,快速发现和解决问题。

在实时数据分析方面,Parquet结合Spark Streaming等实时处理框架,支持低延迟的数据处理需求

在机器学习方面,Parquet广泛用于存储训练数据和模型参数,大大提高了数据处理效率和模型训练速度。

4. 百万级数据处理简单对比

本次对比使用数据量为百万行、十几列,读取和写入都使用pandas的dataframe,分别使用Excel格式、SQLite数据库、Parquet格式来读写数据。Excel使用xlsx格式;读取SQLite时,已经导入数据,存储时新建库表;Parquet的压缩使用gzip。

4.1. 读取时效比较

 

 

从上图中可以看出,使用Excel格式来读取数据大概需要681秒;通过SQLite来读取数据大概需要27秒;通过Parquet读取数据只需要1秒,哇哦,速度好快啊。

4.2. 写入时效比较

 

 

从上图可以看出,写入成Excel格式大概需要709秒;写入SQLite库大概需要33秒;写入成为Parquet格式,大概需要5秒,哇哦,也挺快的。

下次临时存取数据跑模型的时候,我果断选择Parquet格式,真是太快了。

5. 畅想

Parquet作为一种高效的列式存储格式,在大数据处理和分析领域发挥着重要作用。其独特的存储特性和优势使得它成为处理大规模数据集时的理想选择。随着大数据技术的不断发展,Parquet的应用前景将更加广阔。

标签:存储,读取,时效,读写,Parquet,数据处理,格式,数据
From: https://www.cnblogs.com/DidierFeng/p/18619315

相关文章

  • golang的互斥锁和读写锁
    golangmutex(互斥锁)1.锁最本质的作用保证原子性2.mutex使用原则适用于并发编程,尽量减少加锁区域的逻辑3.mutex的局限性仅限于单个进程内操作sema(信号量,semaphore的简称)是一种用于并发控制的机制资源计数:信号量维护一个资源计数。这个计数表示当前可用的资源数量获......
  • stm32读写外部flash失败怎么回事
    STM32读写外部Flash失败可能由多种原因引起,以下是一些常见的问题及其解决方案:一、硬件连接问题SPI接口连接错误:确保STM32的SPI接口与外部Flash的连接正确,包括时钟线(SCK)、数据线(MOSI、MISO)以及片选线(CS)。检查连接是否松动或存在断路。电源和地连接:确保外部Flash......
  • H7-TOOL自制Flash读写保护算法系列,为凌欧LKS32MC45x/MC05x/MC08x制作使能和解除算法,支
    说明:很多IC厂家仅发布了内部Flash算法文件,并没有提供读写保护算法文件,也就是选项字节算法文件,需要我们制作。实际上当前已经发布的TOOL版本,已经自制很多了,比如已经支持的兆易创新大部分型号,新唐的大部分型号等。但是依然有些厂家还没自制,所以陆续开始为这些厂家提供读写保护支......
  • 文件的读写
    所涉及到的函数如下:<stdio.h>函数介绍网站:cplusplus.com-TheC++ResourcesNetwork读写文件之前要先打开文件,使用完要关闭文件归返空间:fopen  打开fclose  关闭返回的是FILE*型,第一个参数是文件的名字,第二个参数是以什么形式打开。一、写入一个字符第一个......
  • 如何在 MySQL 中实现读写分离?
    如何在MySQL中实现读写分离?在MySQL中实现读写分离主要目的是为了提升数据库的性能和扩展性,将读请求和写请求分配到不同的服务器上,减轻主数据库的压力。通常,写请求会发送到主库,而读请求会发送到从库。这样可以通过负载均衡和读写分离技术来提升系统的吞吐量。1.主从复制架构......
  • 性能测试-对当前环境磁盘读写能力的检查
    1.1检查当前磁盘的使用情况[root@master~]#df文件系统1K-块已用可用已用%挂载点devtmpfs2001044020010440%/devtmpfs2013080020130800%/dev/shmtmpfs......
  • 对象输入输出流,进行文件的读写
     packagecn.edu.sdut.acm;importjava.io.*;importjava.util.*;classStudentimplementsSerializable{//让Student对象可序列化Stringid;Stringname;StringstuClass;intage;publicStudent(Stringid,Stringname,StringstuClass,......
  • STM32 进阶 SPI外设读写Flash 寄存器代码书写
    目录SPI外设SPI外设框图需求描述硬件电路设计相关寄存器文字说明:spi.hspi.c W25Q32.hSPI外设与I2C外设一样,STM32芯片也集成了专门用于SPI协议通讯的外设。STM32的SPI外设可用作通讯的主机及从机,支持最高的SCK时钟频率为fpclk/2(STM32F103型号的芯片默认f......
  • python中文件的基本操作、文件读写
    python中文件的基本操作、文件读写1.基础操作1.1文件概念文件就是存储在某种长期储存设备上的一段数据。1.2基础操作打开文件读、写文件关闭文件可以只打开和关闭文件,不进行任何读写操作。1.3文件对象的方法1.3.1open()创建一个file对象,默认是以只读模式打开......
  • Parquet文件格式
    随着大模型AI的进一步发展,我们需要存储和处理的数据量呈指数级增长,寻找存储各种数据风格的最佳方式依然是最大的挑战之一。相信现在几乎已经没有人还会认为关系数据库是依然是唯一数据存储处理方式。比如说抖音的视频和直播等信息,其原始数据通常是无法实现以传统(关系)数据库方式......