2

这里描述了使用HLL.INIT(...)和的精度HLL.MERGE(...)

https://cloud.google.com/bigquery/docs/reference/standard-sql/hll_functions

但是,我想知道是否存在基数大小,在该点下 HLL 保证是准确的。例如,如果我有 10 个不同的值,并且我在各个区域将它们“合并”在一起,那么每次都会 100% 准确,还是会受到 HLL 错误范围的影响?换句话说,每个 HLL 级别是否有保证的上限Precision,在该上限下可以保证 100% 的准确度?如果是这样,如何确定每个精度级别?

4

1 回答 1

1

如果我有 10 个不同的值,并且我在各个区域将它们“合并”在一起,那么每次都会 100% 准确,还是会受到 HLL 错误范围的影响?

对于相同的输入,输出应该相同。实际上,对于相同的输入,BigQuery 可以使用缓存结果,因此,如果一次 100% 准确,那么每次都是如此。

HLL Precision 的每个级别是否有保证的上限,在该上限下可以保证 100% 的准确度?如果是这样,如何确定每个精度级别?

不,HLL++ 提供估计。对于任何基数大小和/或精度级别,都不能保证 100% 的准确度。如果您正在寻找 100% 的准确率,请使用 COUNT(DISTINCT ...)

于 2019-10-01T21:05:12.400 回答