关于hadoop:具有ORC / Parquet文件格式的巨大配置单元表中的列具有相同值的影响

 2021-04-26 

Impact of having same value for a column in huge hive table with ORC/Parquet file format

如果一个巨大的配置单元表中的所有行都有多个具有相同值的列,并且具有下划线的文件格式为ORC或Parquet存储格式,那么对存储和性能的影响是什么。

让我们说我有第5列和第8列的镶木配置单元表,始终以" HELLO"作为值。

  • 在这种情况下,如何存储有关ORC和Parquet的文件。
  • 具有重复的列数据,这是否会对此表稍后使用的查询有任何性能影响。

  • 至少对于Parquet文件而言,列是独立压缩的。连续多次具有相同的值通常会得到很好的压缩,但是重复复制一列也意味着需要存储的重复。

    对于木地板,压缩方案大致为:

    每列,分为行组(通常每个文件一个,有时更多,但通常很小)。对于每个RowGroup,对值进行编码(编码通常是字典编码或游程长度编码)。大致在名为" pages "的16KiB / 1MiB边界上分割编码的行。使用通用压缩编解码器(例如GZIP或ZStandard)分别压缩每个页面。