parquet 文件结构

news/2024/5/20 4:29:32 标签: hadoop, hdfs

Apache Parquet是Apache Hadoop生态系统的一种免费的开源面向列的数据存储格式。 它类似于Hadoop中可用的其他列存储文件格式,如RCFile格式和ORC格式。本文将简单介绍一下Parquet文件的结构。

Parquet文件格式包含两部分:

data
metadata
数据首先写入文件,元数据最后写入单遍(single pass)写入。 首先让我们看一下Parquet文件的格式,然后再看一下元数据。

文件格式
在这里插入图片描述

HEADER

从整体上讲,Parquet包含一个header,一个或多个blocks 和一个footer。header和footer的最后包含了一个4-byte的魔术字(PAR1),这个魔术字表名此文件格式是Parquet格式。

所有的元数据信息保存在footer中。

DATA BLOCK

parquet文件中的块以嵌套结构的形式写入,如下所示

-Blocks

—Row Groups

—–Column Chunks

——-Page

parquet文件中的每个block以Row Group的形式存储。因此,parquet文件中的数据被划分为多个Row Group。这些Row Group由一个或多个column chunks组成,column chunks对应于数据集中的一列。每个column chunks的数据以page的形式写入。每个pages只包含特定列的值,因此pages是非常好的压缩候选对象,因为它们包含类似的值。
在这里插入图片描述

FOOTER

如上所述,文件元数据存储在footer中。

footer中的元数据包括version、schema、任何额外的键-值对,以及文件中列的元数据。列元数据包括类型、路径、编码、值的数量、压缩大小等。除了文件元数据之外,它还有一个4字节字段长度的footer length,以及一个4字节的魔术字(PAR1)。
在这里插入图片描述

由于元数据存储在footer中,在读取parquet文件时,将首先查找footer metadata的长度,然后执行向后查找以读取元数据。

元数据是在所有块都写完之后才写的。


http://www.niftyadmin.cn/n/616239.html

相关文章

软件设计模式第二篇(责任链模式)

什么是责任链模式 责任链模式的定义:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系, 将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理他为止。 业务场景 如果一个公司的…

LeetCode——1734. 解码异或后的排列(Decode XORed Permutation)——分析及代码(Java)

LeetCode——1734. 解码异或后的排列[Decode XORed Permutation]——分析及代码[Java]一、题目二、分析及代码1. 回溯(1)思路(2)代码(3)结果2. 直接求解(1)思路(2&#x…

flink 相关资料

相关链接 ververica中文网站: https://ververica.cn/ Apache Flink 视频教程: https://github.com/flink-china/flink-training-course Flink Forward Asia 2019: https://ververica.cn/developers/flink-forward-asia-2019/ Flink Forward China 2018: …

软件设计模式第三篇(代理模式)

背景 代理模式是一种常用的设计模式,而对于代理,可根据代理类创建的时间点,分为静态代理和动态代理。 概念 真实对象:被代理的对象代理对象:代理模式:代理对象代理真实对象,达到增强真实对象…

flink+kafka 实现wordcount

以下内容基于flink1.12 pom依赖 <properties><encoding>UTF-8</encoding><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>…

LeetCode——1128. 等价多米诺骨牌对的数量(Number of Equivalent Domino Pairs)——分析及代码(Java)

LeetCode——1128. 等价多米诺骨牌对的数量[Number of Equivalent Domino Pairs]——分析及代码[Java]一、题目二、分析及代码1. 记录等价对数&#xff08;1&#xff09;思路&#xff08;2&#xff09;代码&#xff08;3&#xff09;结果三、其他一、题目 给你一个由一些多米诺…

软件设计模式第四篇(简单工厂模式)

定义 简单工厂模式(Simple Factory Pattern)&#xff1a;又称为静态工厂方法(Static Factory Method)模式&#xff0c;它属于类创建型模式。在简单工厂模式中&#xff0c;可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例&#xff0c;被…

windows安装kafka

一、下载kafka http://kafka.apache.org/downloads 选择二进制版本。 二、安装kafka 下载到本地后&#xff0c;将文件解压到本地磁盘下&#xff0c;该文件夹包括了所有相关的运行文件及配置文件&#xff0c;其子文件夹bin\windows 下放的是在Windows系统启动zookeeper和ka…