parquet是一个列式存储格式,对于大型查询、指定列查询都是高效的,内部由一个header,四个block,一个footer组成。

  • header中只包含一个4个字节的数字PAR1用来识别整个Parquet文件格式

  • 文件中所有的metadata都存在于footer中

  • footer中的metadata包含了格式的版本信息,schema信息、key-value paris以及所有block中的metadata信息

  • footer中最后两个字段为一个以4个字节长度的footer的metadata,以及同header中包含的一样的PAR1

  • 每一个block都具有一组Row group,她们是由一组Column chunk组成的列数据

  • 每一个column chunk中又包含了它具有的pages

  • 每个page就包含了来自于相同列的值.Parquet同时使用更紧凑形式的编码,当写入Parquet文件时,它会自动基于column的类型适配一个合适的编码

  • Hive parquet数据格式内部结构

相关文章: