Jas*_*n S 5 parquet apache-arrow
我看到 parquet 支持每列的字典编码,并且GitHub 文档中描述了字典编码:
\n\n\n字典编码(PLAIN_DICTIONARY = 2 和 RLE_DICTIONARY = 8)
\n字典编码构建给定列中遇到的值的字典。字典将存储在每个列块的字典页中。使用 RLE/Bit-Packing 混合编码将值存储为整数。如果字典变得太大,无论是大小还是不同值的数量,编码将回退到纯编码。首先写入字典页,然后写入列块的数据页。
\n字典页面格式:字典中的条目 - 按字典顺序 - 使用纯编码。
\n数据页格式:用于对存储为 1 字节的条目 id 进行编码的位宽度(最大位宽度 = 32),后跟使用上述 RLE/位打包编码的值(具有给定的位宽度)。
\nParquet 2.0 规范中不推荐使用 PLAIN_DICTIONARY 枚举值。对于 Parquet 2.0+ 文件,首选在数据页中使用 RLE_DICTIONARY 并在字典页中使用 PLAIN。
\n
好吧......那么我怎么知道何时使用字典编码?
\n有什么经验法则可以提供帮助吗?例如,如果列中 90% 的值预计位于某个特定集合中,我应该使用它们吗?
\n我有一个用例,我期望不同的列有三种不同的场景:
\n是否有任何文档解释在各种条件下哪种策略是合适的?
\n| 归档时间: |
|
| 查看次数: |
4174 次 |
| 最近记录: |