Perché le mie misure non vengono visualizzate tramite un join?

Hai definito alcune metriche in una visualizzazione, ma quando la unisci a un'altra visualizzazione non le vedi più in un'esplorazione. Dove sono finite le misure?

Possibili cause e soluzioni

Le possibili cause sottostanti possono dipendere dall'attivazione o meno degli aggregati simmetrici. Gli aggregati simmetrici vengono attivati automaticamente, a meno che lo sviluppatore non li abbia disattivati con l'impostazione LookML symmetric_aggregates: no o se il dialetto del database non supporta gli aggregati simmetrici.

Quando sono abilitati gli aggregati simmetrici

Gli aggregati simmetrici consentono di trasferire le misure di tutti i tipi tramite i join. Tuttavia, ciò è possibile solo se sono definite chiavi primarie nelle visualizzazioni su entrambi i lati di un join. Per consentire alle misure di essere riportate nei join, devi definire una chiave primaria in tutte le visualizzazioni coinvolte.

Puoi definire una chiave primaria in ogni visualizzazione aggiungendo primary_key: yes alla definizione del campo della chiave primaria, come segue:

dimension: id {
 type: number
 primary_key: yes
}

Le chiavi primarie devono avere valori completamente unici e non NULL per i tipi di misura sum e average per eseguire i join. Se la chiave primaria non è univoca, potresti ricevere un errore simile al seguente:

Non-Unique value/primary key (or sql_distinct_key), value overflow or collision when computing sum.

Inoltre, se ti trovi in una situazione in cui non esiste un singolo campo univoco nella visualizzazione, puoi creare una chiave primaria composta concatenando due o più campi in SQL per creare una combinazione univoca di valori. Scopri di più su come risolvere questo errore nella sezione Chiave primaria non univoca della pagina Error: Non-Unique value/primary key (or sql_distinct_key), value overflow or collision when computing sum Best practice.

Quando non sono abilitate le aggregazioni simmetriche

Alcuni dialetti non supportano gli aggregati simmetrici oppure lo sviluppatore Looker ha disattivato gli aggregati simmetrici con l'impostazione LookML symmetric_aggregates: no. Quando non è possibile utilizzare gli aggregati simmetrici, Looker esegue il join per impostazione predefinita solo delle misure di tipo count (che diventano misure di conteggio distinto). Questo approccio richiede anche una chiave primaria, perché il conteggio distinto la utilizzerà. In questo modo si evitano risultati e fanout imprecisi. Dai un'occhiata al post della scheda Community sulle funzioni di aggregazione che non funzionano.

Esiste un elenco che mostra quali dialetti supportano gli aggregati simmetrici nell'ultima release di Looker.

Altre soluzioni da prendere in considerazione

  • L'utilizzo di fields (per le unioni) a livello di unione. fields ti consente di specificare quali campi (misure, dimensioni) di una visualizzazione unita vengono visualizzati in un'esplorazione.
  • Scelta del parametro relationship corretto. Il parametro relationship indica a Looker se applicare aggregazioni simmetriche quando il join viene utilizzato in una query SQL. È importante definire correttamente il tipo di relazione per consentire a Looker di calcolare valori di misura accurati.