我有一个事实表,这是10Tb (Parquet),其中包含100+列。当我从事实表中创建了另一个表,其中只有10列,大小为2TB时,
- 我期待的大小应该在一些gb,因为我存储只是几个(10)列?
- 我的问题是,当我们有更多的列,拼花格式存储在更有效的方式?
Parquet是基于列的存储。假设我有一个包含字段userId,姓名,地址,州,电话号码的表。在非拼花存储中如果我执行select * where state = "TN"它将遍历表中的每个记录(即每行的所有列)并输出与我的where条件匹配的记录。然而,在拼花格式所有的列都存储在一起,所以我不需要通过所有其他列。相同的选择查询将直接转到列'state'并输出匹配where条件的记录。拼木地板有利于更快地检索(更快地获得结果)。不管总共有多少列
Parquet使用快速压缩。由于所有的列都存储在一起,这使得压缩非常有效。