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的类型适配一个合适的编码