互动演示 · 为什么用 Parquet(二 / 二)

文件为什么更小:同一份数据,不同列压缩效果天差地别

结论先说:Parquet 在压缩之前,会先按每一列的特点做"编码"——重复值多的列,用一张小小的 对照表把值换成编号,同一个编号连续出现时再合并记一次"出现了几次";值越重复,这一步省下的空间越夸张, 值越是各不相同,能省的就越有限。这不是猜的,是本课真实文件里量出来的数字。

就像点名册:如果一个班全是"三年二班",登记时写一次"三年二班"、后面画正字数出现了几次就够了; 如果每个人的生日都不一样,那就只能一个一个写全,省不了多少。下面选一列真实数据,切换"编码"开关看差别。