【问题标题】:Impact of having same value for a column in huge hive table with ORC/Parquet file format使用 ORC/Parquet 文件格式的大型 hive 表中的列具有相同值的影响
【发布时间】:2020-07-05 09:47:57
【问题描述】:

如果我们在具有 ORC 或 Parquet 存储格式的下划线文件格式的大型 hive 表中的所有行有多个具有相同值的列,将对存储和性能产生什么影响。

假设我有第 5 列和第 8 列始终以“HELLO”作为值的镶木地板蜂巢表。

  1. 在这种情况下,如何根据 ORC 和 Parquet 存储文件。
  2. 如果有重复的列数据,是否会对稍后在此表上使用的查询产生任何性能影响。

【问题讨论】:

    标签: hadoop hive parquet orc


    【解决方案1】:

    至少在 Parquet 文件的情况下,列是独立压缩的。连续多次具有相同的值通常会得到很好的压缩,但重复列也意味着所需存储的重复。

    对于 Parquet,压缩方案大致为:

    每列,分成 RowGroups(通常每个文件一个,有时更多但通常很少)。每个 RowGroup 对值进行编码(编码通常是字典编码或游程编码)。在名为“pages”的 16KiB/1MiB 边界上大致拆分编码行。使用 GZIP 或 ZStandard 等通用压缩编解码器单独压缩每个页面。

    【讨论】:

      猜你喜欢
      • 2020-10-03
      • 2023-03-31
      • 1970-01-01
      • 2020-11-28
      • 2021-04-19
      • 1970-01-01
      • 2018-11-18
      • 2019-01-31
      • 1970-01-01
      相关资源
      最近更新 更多