我从文档中获得了有关 Hive 列统计信息的信息。对于大多数列都归档了位向量,它的含义是什么,以及计算它的规则?
我创建了一些表并使用分析语句来计算统计数据。我显示列统计信息,发现大多数列都有这个字段(bitVectors),值为null/HL,我不知道这是什么意思。
此功能是由 HIVE-16997 - 扩展对象存储以存储和使用位向量在 Hive 3.0.0 中引入的,但仍然没有完整记录。统计元数据中的位向量可用于使用草图算法(FM-sketch、HLL)计算不同值的数量 (NDV)。
还添加了相应的参数以允许使用统计位向量进行 NDV 计算:
hive.stats.fetch.bitvector
Default Value: false
Added In: Hive 3.0.0 with HIVE-16997
Hive 在计算不同值的数量(ndv)时是否获取位向量。如果您想使用不带位向量的旧模式,请将其设置为 false。
参见这里:hive.stats.fetch.bitvector
您还可以通过 google 搜索并找到一些有关草图算法的信息:FM 和 HLL。例如这个 Flajolet–Martin 算法