Google bigquery 在BigQuery?;中,使用什么算法来实现近似的TOP计数;

Google bigquery 在BigQuery?;中,使用什么算法来实现近似的TOP计数;,google-bigquery,approximation,Google Bigquery,Approximation,BigQuery表示,近似聚合函数在内存使用和时间方面是可伸缩的,但会产生近似结果,而不是精确结果 我在钻孔机或蜂箱中找不到任何类似的功能。 使用集群计算,我们可以很容易地得到准确的结果,为什么以及何时应该使用这个近似函数? 我还希望有人能告诉我近似函数使用的算法是什么?近似函数有用的一个例子是分析Firebase事件日志(关于StackOverflow上的BigQuery/Firebase有很多问题)。例如,如果您只想知道访问量最大的前10个页面,您可以使用APPROX\u top\u COU

BigQuery表示,近似聚合函数在内存使用和时间方面是可伸缩的,但会产生近似结果,而不是精确结果

我在钻孔机或蜂箱中找不到任何类似的功能。 使用集群计算,我们可以很容易地得到准确的结果,为什么以及何时应该使用这个近似函数?
我还希望有人能告诉我近似函数使用的算法是什么?

近似函数有用的一个例子是分析Firebase事件日志(关于StackOverflow上的BigQuery/Firebase有很多问题)。例如,如果您只想知道访问量最大的前10个页面,您可以使用
APPROX\u top\u COUNT
来执行分析,这通常比
COUNT(*)和
groupby
ORDER BY的
。。。限制…

从实现的角度来看,您可以想象,如果您只对访问量最大的前10个页面感兴趣,那么可能没有必要在内存中为不经常访问的页面的长尾保留状态,因为它稍后将被丢弃

您可以在以下论文中阅读近似算法:


Thx对于您的答案,我已经使用bigquery测试了bigquery的publicdata(1108779463行)上的近似TOP计数。结果是近似TOP计数和计数(*),带有GROUP BY和ORDER BY。。。限制两个2秒的时间。你能告诉我一些关于这两个查询性能的例子吗?