2016-03-08 73 views
3

我知道BigQuery提供了COUNT DISTINCT的估計,但是有沒有關於錯誤有多大以及它依賴於哪種參數的信息?BigQuery COUNT DISTINCT估計錯誤

謝謝

+0

也許你可以比較它以計數(唯一())多次。如果數據太大以致count(unique())甚至不能工作,那麼這種方法可能不起作用。我認爲更多的是經驗理論。 – andrewm4894

+0

您也可以使用EXACT_COUNT_DISTINCT。 https://cloud.google.com/bigquery/query-reference#exact_count_distinct – YABADABADOU

回答

4

COUNT DISTINCT估計的準確性取決於實際值的實際數量。如果它很小 - 算法非常精確(對於小值,它通常會返回確切值),但是更大數量的不同值 - 它可能變得不太準確。請注意,該COUNT(DISTINCT)採用第二個參數,它交易內存的準確性,即它將使用更多的內存,但更準確。例如:

SELECT COUNT(DISTINCT x, 100000) FROM T 

如果整數值小於100,000,將返回相當準確的結果。

COUNT不同估計的精確算法會有所不同,但不同的變化會有類似的誤差估計 - 約1/SQRT(N),其中N是第二個參數。默認值是1000,相當於大約3%的錯誤。如果碰到10000,則會有大約1%的錯誤。

+0

估計錯誤實際上就是我所要求的 - 我們想要了解錯誤會有多大,比如<= 1%? – Fardream

+0

我更新了答案以給出估計 –