Google bigquery BigQuery计数不同估计错误

Google bigquery BigQuery计数不同估计错误,google-bigquery,Google Bigquery,我知道BigQuery提供了对COUNT DISTINCT的估计,但是是否有关于错误有多大以及它依赖于什么样的参数的信息 感谢计数差异估计的准确性取决于差异值的实际数量。如果它很小-算法非常精确(对于较小的值,它通常返回精确的值),但是不同值的数量越大-它可能变得越不精确。请注意,COUNT(DISTINCT)采用第二个参数,该参数以内存换取准确性,即它将使用更多内存,但更精确。例如: SELECT COUNT(DISTINCT x, 100000) FROM T 如果distict值的总数小

我知道BigQuery提供了对COUNT DISTINCT的估计,但是是否有关于错误有多大以及它依赖于什么样的参数的信息


感谢

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

SELECT COUNT(DISTINCT x, 100000) FROM T
如果distict值的总数小于100000,则将返回相当准确的结果


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

估计误差实际上就是我要问的-我们想知道误差有多大,比如说,您可以多次将其与count(unique())进行比较。如果数据太大以至于count(unique())无法工作,那么这种方法可能无法工作。我想,它比理论更经验性。你也可以用精确的计数来代替。