估算百分位值

Snowflake 使用改进版的 T-Digest 算法,能以节省空间和时间的方式估算数据集中的近似百分位值。

本主题内容:

概述

对于 Dunning 和 Ertl 发表的 T-Digest 算法论文 (https://github.com/tdunning/t-digest/tree/master/docs/t-digest-paper),Snowflake 提供了改进版的实现形式。它是通过 APPROX_PERCENTILE 函数系列实现的。

根据记载,该算法具有恒定的相对误差。请注意,该算法有大量的经验支持,但未经严格证明其能够保证精度。

SQL 函数

提供以下 聚合函数,以使用 T-Digest 来估算近似百分位值:

实施细节

  • 无论输入的大小如何,估算都使用恒定的空间量。

  • T-Digest 状态与百分位值无关。这样一来,计算一次 T-Digest 状态便能查询多个百分位值的状态。

语言: 中文