BigQuery COUNT DISTINCT估计错误

时间:2016-03-08 16:58:17

标签: google-bigquery

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

由于

1 个答案:

答案 0 :(得分:4)

COUNT DISTINCT估算的准确性取决于干扰值的实际数量。如果它很小 - 算法非常准确(对于较小的值,它通常会返回精确的值),但是不同值的数量越大 - 它就越不准确。注意,COUNT(DISTINCT)采用第二个参数,它将内存换成准确性,即它将使用更多内存,但更准确。例如:

SELECT COUNT(DISTINCT x, 100000) FROM T
如果distict值的总数小于100,000,

将返回相当准确的结果。

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