Perché sono presenti valori null nella mia query dei risultati uniti secondari?

Risultati uniti è una funzionalità utile per combinare rapidamente i dati di diverse esplorazioni senza svilupparli in LookML. I risultati uniti eseguono in modo efficace un left join tra la query principale e le query secondarie, il che significa che i nomi dei campi, i valori corrispondenti e la tabella dei risultati finali dipendono dal modo in cui i dati delle query secondarie corrispondono a quelli principali.

Ciò potrebbe causare risultati imprevisti quando esegui unioni tra esplorazioni. La documentazione dei risultati uniti riguarda alcune di queste condizioni,ad esempio:

Tuttavia, cosa devi fare quando prevedi che un valore di una query secondaria corrisponda a un valore nella query principale, ma il risultato finale mostra valori nulli?

In questa pagina viene spiegato come risolvere i problemi relativi a questo risultato imprevisto.

Esempio di caso d'uso

Il seguente caso d'uso di esempio si basa su un set di dati di esempio e-commerce contenente informazioni sugli utenti e sugli ordini. Per questo esempio, vuoi unire una query (un conteggio degli utenti per città (Conteggio utenti raggruppato per Città utenti)) a una query secondaria, ovvero un conteggio degli ordini (Conteggio ordini) raggruppati per Città utenti e Stato utenti:

Query principale

La query principale è Conteggio utenti raggruppata per Città degli utenti:

Esplora la tabella di dati dei risultati uniti che mostra i risultati della query principale.

Query secondaria

La query secondaria è Conteggio ordini raggruppato per Città degli utenti e Stato utenti:

Esplora la tabella di dati dei risultati uniti che mostra i risultati della query secondaria.

La regola di unione è impostata in modo da unire entrambe le query in base a Città degli utenti, il campo che entrambe le query hanno in comune. Data la familiarità con il set di dati e il comportamento previsto dei risultati uniti spiegato dalla documentazione collegata in precedenza, sai che in ogni riga, ogni città deve essere abbinata a uno stato e a un numero di utenti. Prevedi che i risultati uniti corrisponderanno a tutti i valori e non mostreranno valori nulli.

Tuttavia, sono nulli i risultati. Oltre metà delle città non corrisponde a uno stato o a un numero di ordini:

Tabella di dati dei risultati uniti che mostra valori null per i campi della query secondaria.

Soluzioni

Non farti prendere dal panico. Se hai la certezza che nei tuoi dati siano presenti valori corrispondenti (prova a eseguire una query separata per confermare che è così), esistono diverse soluzioni possibili per rimediare a questo risultato, tra cui:

  • Ordinare ogni query di origine nello stesso modo.
  • Aumenta il limite di righe di query di origine.

Ordinare ogni query di origine nello stesso modo

Poiché i risultati uniti si basano sulle esplorazioni, che sono limitate a 500 righe per impostazione predefinita, a volte i risultati delle query che stai unendo non vengono inclusi nel risultato finale.

Per risolvere il problema, puoi modificare e ordinare le singole query di origine in modo che corrispondano meglio tra loro. 

Nel caso d'uso di esempio, la query principale è ordinata in base a Città degli utenti, crescente. La query secondaria non lo è. Per trovare una corrispondenza migliore con i risultati delle due query, puoi ordinare la query secondaria nello stesso modo della query principale, in questo caso per Città degli utenti in ordine crescente.

L'ordinamento della query secondaria in modo simile alla query principale corrisponde ai risultati in modo più preciso nell'unione finale:

Tabella di dati dei risultati uniti che mostra valori non null per i campi delle query primarie e secondarie.

Aumentare il limite di righe di query di origine

Come per la prima soluzione descritta in precedenza, i valori null imprevisti possono essere causati dai limiti di righe impostati nelle query di origine. Nello specifico, in questo caso, la query secondaria (limitata dal valore predefinito di 500 righe) non ha un numero sufficiente di righe per corrispondere a tutte le righe generate dalla query principale, causando la visualizzazione di risultati nulli nell'unione finale.

Per aumentare il numero di righe della query secondaria in modo che corrisponda alla query principale, puoi aumentare il limite di righe della query secondaria. In questo modo, ci saranno più righe possibili da abbinare alla query principale e meno valori null nelle colonne delle query secondarie: 

Tabella di dati dei risultati uniti che mostra valori non null per i campi delle query primarie e secondarie.

Riepilogo

Di fronte a risultati uniti imprevisti, puoi procedere nel seguente modo per risolvere il problema:

  1. Seleziona l'opzione Svuota cache e aggiorna dal menu a forma di ingranaggio di Esplora per assicurarti che la query restituisca i risultati più aggiornati.
  2. Conferma che esistano valori corrispondenti tra le query di origine in cui sono visualizzati valori nulli, come descritto nella sezione Cosa succede se una query non ha un valore dei dati corrispondente? della documentazione dei risultati uniti.
  3. Ordina le query di origine in modo che corrispondano meglio tra loro.
  4. Aumenta il limite di righe delle query di origine oltre il valore predefinito per esporre più righe che possono essere abbinate e unite.
  5. Se nessuna delle soluzioni illustrate qui risolve il comportamento, imposta come hardcoded la logica di join in LookML per ottenere un risultato più preciso, se possibile.