BigQuery COUNT DISTINCT 估计错误

BigQuery COUNT DISTINCT estimation error

我知道 BigQuery 正在提供 COUNT DISTINCT 的估计,但是是否有关于错误有多大以及它取决于哪种参数的信息?

谢谢

COUNT DISTINCT 估计的准确性取决于不同值的实际数量。如果它很小 - 算法非常准确(对于小值,它通常 returns 是精确值),但不同值的数量越多 - 它可能变得越不准确。请注意, COUNT(DISTINCT) 采用第二个参数,它以内存换取准确性,即它将使用更多内存,但更准确。例如:

SELECT COUNT(DISTINCT x, 100000) FROM T

如果 distict 值的总数小于 100,000,return 将得到相当准确的结果。

COUNT 个不同估计的确切算法各不相同,但不同的变体具有相似的误差估计 - 大约 1/SQRT(N),其中 N 是第二个参数。默认值为 1000,相当于大约 3% 的误差。如果达到 10000,则误差约为 1%。