BigQuery 表示,近似聚合函数在内存使用和时间方面具有可扩展性,但会生成近似结果而不是精确结果。
我在 Drill 或 Hive 中找不到类似的函数。通过集群计算,我们可以轻松获得精确结果,那么为什么以及何时应该使用这个 APPROX_FUNC 呢?我也希望有人能告诉我 APPROX_TOP_COUNT 中使用了哪种算法。
BigQuery 表示,近似聚合函数在内存使用和时间方面具有可扩展性,但会生成近似结果而不是精确结果。
我在 Drill 或 Hive 中找不到类似的函数。通过集群计算,我们可以轻松获得精确结果,那么为什么以及何时应该使用这个 APPROX_FUNC 呢?我也希望有人能告诉我 APPROX_TOP_COUNT 中使用了哪种算法。
APPROX_TOP_COUNT
进行分析,这通常比使用 COUNT(*)
、GROUP BY
和 ORDER BY ... LIMIT ...
更快。
从实现的角度来看,你可以想象,如果你只对前 10 个最受欢迎的页面感兴趣,那么可能没有必要为不经常访问的页面保留状态,因为它后面肯定会被丢弃。
您可以阅读以下论文了解近似算法: