PARQUET

一、Parquet文件格式的优势:

      1. 列式存储,只读取需要的数据,降低IO数据量,速度快。

      2. 压缩比高,占用空间少,由于PARQUET按列存储,可以使用更高效的压缩编码(例如 Run            Length Encoding 和 Delta Encoding)进一步节约存储空间。

      3. 自带Schema,parquet文件包含了元数据信息(包含schema合structure),可以通过数据              文件,解析出parquet的schema

      4. 具备filter push-down特性

二、Parquet文件结构      

4-byte magic number "PAR1"
<Column 1 Chunk 1 + Column Metadata>
<Column 2 Chunk 1 + Column Metadata>
...
<Column N Chunk 1 + Column Metadata>
<Column 1 Chunk 2 + Column Metadata>
<Column 2 Chunk 2 + Column Metadata>
...
<Column N Chunk 2 + Column Metadata>
...
<Column 1 Chunk M + Column Metadata>
<Column 2 Chunk M + Column Metadata>
...
<Column N Chunk M + Column Metadata>
File Metadata
4-byte length in bytes of file metadata
4-byte magic number "PAR1"

    上面的例子中,可以看到,parquet文件的开头和结尾都有一个magic code,均为四个字节,用来标识该文件为parquet格式。

File Layout

     Parquet文件中的数据被切分为不同的Row Group,每个Row Group中包含了一批数据,对应到HDFS的block,每个Row Group分成多个Column Chunk,每个Column Chunk存储每一列的数据,每一个column chunck按照page来进行存储,page按照内容又分为:数据页(datapage),索引页(indexpage),字典页(dictionarypage)三种类型;文件的最后是Footer,里面包含了非常重要的信息,包含文件的schema信息和Row Group元数据信息,Footer length是文件元数据的大小,通过该值和文件长度可以找到元数据Footer的偏移量和起始位置。

     Parquet文件中包含了三种元数据信息,分别为:file metadata, column (chunk) metadata 和 page header metadata

参考文档:

Apache Parquet

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值