hadoop—在orc/parquet文件格式的大型配置单元表中,列具有相同值的影响

h5qlskok  于 2021-05-31  发布在  Hadoop
关注(0)|答案(1)|浏览(311)

如果一个巨大的配置单元表中的所有行都有多个具有相同值的列,而该配置单元表的下划线文件格式为orc或parquet存储格式,那么对存储和性能的影响会是什么呢。
假设我有一个parquet-hive表,第5列和第8列的值总是“hello”。
在这个场景中,文件是如何存储关于orc和parquet的。
如果有重复的列数据,它是否会对该表后面使用的查询产生任何性能影响。

tjvv9vkg

tjvv9vkg1#

至少在Parquet文件中,列是独立压缩的。在一行中多次使用相同的值通常会得到很好的压缩,但复制一列也意味着复制所需的存储。
对于Parquet地板,压缩方案大致如下:
每列,分为行组(通常每个文件一个,有时更多,但通常很少)。对每个行组的值进行编码(编码通常是字典编码或运行长度编码)。将编码行大致拆分为16kib/1mib的边界,命名为“pages”。使用gzip或zstandard等通用压缩编解码器分别压缩每个页面。

相关问题