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.