Estimativa de valores percentuais¶
O Snowflake usa uma versão otimizada do algoritmo t-Digest, uma forma eficiente de estimar valores percentuais aproximados em conjuntos de dados.
Neste tópico:
Visão geral¶
O Snowflake fornece uma versão otimizada de uma implementação dos artigos do algoritmo t-Digest por Dunning e Ertl. Ela foi implementada através da família APPROX_PERCENTILE de funções.
Como documentado, o algoritmo tem um erro relativo constante. Observe que o algoritmo tem um suporte empírico substancial, mas nenhuma prova rigorosa de qualquer garantia de precisão.
Funções SQL¶
Os seguintes Funções de agregação são fornecidos para a utilização do t-Digest para valores percentuais aproximados:
APPROX_PERCENTILE: Retorna uma aproximação do valor do percentil desejado.
APPROX_PERCENTILE_ACCUMULATE: Pula a etapa de estimativa final e, em vez disso, retorna o estado intermediário t-Digest no final de uma agregação.
APPROX_PERCENTILE_COMBINE: Combina (ou seja, funde) vários estados de entrada em um único estado de saída.
APPROX_PERCENTILE_ESTIMATE: Computa uma estimativa percentual de um estado t-Digest produzido por APPROX_PERCENTILE_ACCUMULATE ou APPROX_PERCENTILE_COMBINE.
Detalhes de implementação¶
A estimativa utiliza uma quantidade constante de espaço, independentemente do tamanho da entrada.
O estado t-Digest é independente do valor do percentual. Isto permite calcular o estado t-Digest uma vez e depois consultar o estado para valores percentuais múltiplos.