consenti_ottimizzazione_approssimativa

Utilizzo

view: view_name {
measure: field_name {
allow_approximate_optimize:

}
}
Gerarchia
allow_approximate_optimization
Tipi di campi possibili
Misura

Valore predefinito
no

Accetta
Una voce booleana (sì o no)

Definizione

Per i dialetti che supportano gli schizzi di HyperLogLog, Looker può utilizzare l'algoritmo HyperLogLog per approssimare i conteggi distinti per le tabelle aggregate.

L'istruzione allow_approximate_optimization: yes consente a Looker di archiviare schizzi HyperLogLog in tabelle aggregate, il che significa che Looker può utilizzare approssimazioni per conteggi distinti per l'aggregazione.

Per un elenco dei dialetti che supportano i conteggi distinti per le tabelle aggregate con schizzi di HyperLogLog, consulta la sezione Supporto di Dialetti per conteggi distinti con awareness aggregata.

In generale, i conteggi distinti non possono essere supportati con l'awareness aggregata, perché non puoi ottenere dati precisi se provi ad aggregare i conteggi distinti. Ad esempio, se stai conteggiando gli utenti distinti su un sito web, potrebbe esserci un utente che visita il sito due volte, a tre settimane di distanza. Se provassi ad applicare una tabella aggregata settimanale per ottenere il conteggio mensile di utenti distinti sul sito web, l'utente verrà conteggiato due volte nella query di conteggio mensile specifico e i dati non saranno corretti.

Come soluzione alternativa, puoi creare una tabella aggregata che corrisponda esattamente a una query di esplorazione, come descritto nella pagina della documentazione relativa all'awareness aggregata. Quando la query di esplorazione e la query di una tabella aggregata sono uguali, le misurazioni di conteggio distinto forniscono dati precisi e quindi possono essere utilizzate per generare awareness aggregata.

L'altra opzione è usare le approssimazioni per conteggi distinti. È noto che l'algoritmo HyperLogLog presenta un potenziale errore di circa il 2%. Il parametro allow_approximate_optimization richiede agli sviluppatori di Looker di autorizzare l'utilizzo di dati approssimativi per la misura, in modo che quest'ultima possa essere calcolata approssimativamente dalle tabelle aggregate.

Con il riconoscimento degli aggregati, ci sono due casi in cui entrano in gioco i conteggi distinti:

  • Il primo caso riguarda le misure di type: count_distinct.
  • Il secondo caso riguarda le misure di type: count che vengono effettivamente visualizzate da Looker come tipi di misurazioni di count_distinct. Come discusso nella pagina della documentazione Notorietà aggregata, Looker visualizza le misure di count come count_distinct per evitare calcoli fanout in Explore che uniscono più tabelle di database.

In entrambi i casi, se il tuo dialetto supporta gli schizzi HyperLogLog, puoi aggiungere l'istruzione allow_approximate_optimization: yes alle misure per attivare i valori approssimativi. Puoi quindi includere queste misure nelle tabelle aggregate.

Anche per le misure definite con allow_approximate_optimization: yes, Looker restituirà dati esatti, quando possibile. Ad esempio, se le dimensioni in una query di esplorazione corrispondono perfettamente alle dimensioni in una tabella aggregata, Looker può fornire dati esatti per conteggi distinti, senza che sia necessario approssimare. In questo caso, nella scheda SQL Explore (Esplora), noterai che vengono utilizzate misure di conteggio distinte per l'awareness aggregata senza utilizzare l'algoritmo HyperLogLog.

Esempio

La misura apx_unique_count mostrata in questo esempio è impostata su allow_approximate_optimization: yes, il che significa che può essere utilizzata in una aggregate_table.

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

Supporto del dialetto per conteggi distinti con consapevolezza aggregata

Looker può utilizzare conteggi distinti per la consapevolezza aggregata con i dialetti del database che supportano gli schizzi di HyperLogLog. Nell'ultima release di Looker sono supportati i seguenti dialetti SQL per il conteggio distinto con la consapevolezza aggregata:

Consulta la documentazione del dialetto SQL per comprendere i compromessi in termini di velocità e precisione di questo metodo.