【问题标题】:BigQuery COUNT DISTINCT estimation errorBigQuery COUNT DISTINCT 估计错误
【发布时间】:2016-03-08 16:58:17
【问题描述】:

我了解 BigQuery 提供了 COUNT DISTINCT 的估计值,但是否有任何信息说明错误有多大以及它取决于什么样的参数?

谢谢

【问题讨论】:

  • 也许您可以多次将其与 count(unique()) 进行比较。如果数据太大以至于 count(unique()) 甚至不起作用,那么这种方法可能不起作用。我认为是经验性的而不是理论性的。
  • 您也可以改用 EXACT_COUNT_DISTINCT。 cloud.google.com/bigquery/query-reference#exact_count_distinct

标签: google-bigquery


【解决方案1】:

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

SELECT COUNT(DISTINCT x, 100000) FROM T

如果 distict 值的总数小于 100,000,将返回相当准确的结果。

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

【讨论】:

  • 估计误差实际上就是我要问的——我们想知道误差有多大,比如
猜你喜欢
  • 2013-05-12
  • 1970-01-01
  • 2013-09-28
  • 2021-10-15
  • 2012-06-16
  • 2019-09-08
  • 2014-07-04
  • 2015-07-29
  • 1970-01-01
相关资源
最近更新 更多