otimização_aproximada_de_otimização

Uso

view: view_name {
measure: field_name {
allow_proximate_optimization: sim
}
}
Hierarquia
allow_approximate_optimization
Tipos de campo possíveis
Medir

Valor padrão
no

Aceita
Um booleano (sim ou não)

Definição

Para dialetos compatíveis com esboços do HyperLogLog, o Looker pode usar o algoritmo HyperLogLog para aproximar contagens distintas para tabelas agregadas.

A instrução allow_approximate_optimization: yes permite que o Looker armazene esboços do HyperLogLog em tabelas agregadas, o que significa que o Looker pode usar aproximações para contagens distintas de reconhecimento agregado.

Consulte a seção Disparar o suporte a contagens distintas com reconhecimento agregado nesta página para ver a lista de dialetos compatíveis com esse tipo de contagem no HyperLogLog.

Em geral, contagens diferentes não são compatíveis com o reconhecimento agregado porque não é possível ter dados precisos quando você tenta agregar essas contagens. Por exemplo, se você estiver contabilizando os diferentes usuários de um site, talvez um usuário acesse o site duas vezes, com três semanas de diferença. Se você tentar aplicar uma tabela agregada semanal para ver uma contagem mensal de usuários distintos no seu site, esse usuário será contado duas vezes na consulta de contagem distinta mensal, e os dados vão estar incorretos.

Uma solução alternativa é criar uma tabela agregada que corresponda exatamente a uma consulta "Explorar", conforme descrito na página de Reconhecimento agregado. Quando a consulta "Explorar" e uma consulta de tabela agregada são iguais, medidas diferentes de contagem fornecem dados precisos. Assim, elas podem ser usadas para o reconhecimento agregado.

A outra opção é usar aproximações para contagens distintas. Sabemos que o algoritmo HyperLogLog tem cerca de 2% de erro em potencial. O parâmetro allow_approximate_optimization exige que os desenvolvedores do Looker reconheçam que é permitido usar dados aproximados para a medida, de modo que a medida possa ser calculada aproximadamente a partir das tabelas de agregação.

Com o reconhecimento agregado, há dois casos em que as contagens distintas entram em jogo:

  • O primeiro é com medidas de type: count_distinct.
  • O segundo caso é feito com medidas de type: count que estão sendo renderizadas pelo Looker como tipos de medidas count_distinct. Como discutido na página Documentação de reconhecimento agregado, o Looker renderiza medidas de count como count_distinct para evitar erros de cálculo de fanout em "explores", que mesclam várias tabelas de banco de dados.

Em ambos os casos, se o seu dialeto for compatível com esboços do HyperLogLog, você poderá adicionar a instrução allow_approximate_optimization: yes às medidas para ativar os valores aproximados. Você pode incluir essas medidas nas tabelas de agregação.

Mesmo para medidas definidas com allow_approximate_optimization: yes, o Looker retornará dados exatos sempre que possível. Por exemplo, se as dimensões em uma consulta "Explorar" forem uma correspondência perfeita às dimensões em uma tabela agregada, o Looker poderá fornecer dados exatos para contagens distintas, sem precisar se aproximar. Nesse caso, você verá na guia "Explorar" SQL que medidas de contagem distintas estão sendo usadas para aumentar o reconhecimento sem usar o algoritmo HyperLogLog.

Exemplo

A medida apx_unique_count mostrada neste exemplo está definida para allow_approximate_optimization: yes, o que significa que ela pode ser usada em um aggregate_table.

measure: apx_unique_count {
  type: count_distinct
    allow_approximate_optimization: yes   # default value is no
  sql: ${id} ;;
}

Disparar o suporte para contagens distintas com reconhecimento agregado

O Looker pode usar contagens distintas para reconhecimento agregado com dialetos de banco de dados compatíveis com esboços do HyperLogLog. Na versão mais recente do Looker, os seguintes dialetos SQL têm suporte para contagens distintas com reconhecimento agregado:

Verifique a documentação do seu dialeto SQL para entender as vantagens e desvantagens de velocidade e precisão desse método.