Utilizzare il tracker delle query di Esplora e il riquadro Rendimento per monitorare il rendimento delle query

Il tracker delle query di esplorazione e il riquadro Rendimento dell'esplorazione forniscono dati dettagliati sul rendimento di una query di esplorazione. Questi dati possono aiutarti a identificare i punti di contatto principali per la risoluzione dei problemi di prestazioni delle query e a fornire consigli per i miglioramenti.

Tracker delle query di esplorazione

Il tracker delle query di esplorazione mostra l'avanzamento di una query di esplorazione attraverso le tre fasi della query durante l'esecuzione della query.

Se l'esecuzione di una query richiede molto tempo, il tracker delle query può indicare quale fase della query sta causando il problema di prestazioni. Questo è utile per identificare dove potrebbero verificarsi problemi di rendimento e dove le attività di ottimizzazione possono essere più efficaci.

Il tracker delle query viene visualizzato quando è in esecuzione un'esplorazione, a condizione che sia aperto il riquadro Visualizzazione dell'esplorazione o il riquadro Dati dell'esplorazione.

Esplora il riquadro Rendimento

Per visualizzare il riquadro Rendimento dell'esplorazione, fai clic sul link Visualizza dettagli sul rendimento, disponibile in qualsiasi query di esplorazione eseguita.

Il riquadro Rendimento mostra il tempo impiegato dalla query in ciascuna delle tre fasi di query e include link alla documentazione sul rendimento e alla dashboard Cronologia query Attività di sistema, che mostra i dati sul rendimento attuali e storici per la query e l'esplorazione utilizzata per crearla.

Fasi di query

Quando un'esplorazione di Looker esegue una query del database, la query viene eseguita in tre fasi, come segue:

Fase di inizializzazione della query

Durante la fase di inizializzazione della query, Looker esegue tutte le attività necessarie prima che la query venga inviata al tuo database. La fase di inizializzazione della query include le seguenti attività:

La pagina della documentazione Informazioni sulle metriche sul rendimento delle query descrive come utilizzare l'esplorazione Metriche sul rendimento delle query in Attività di sistema per visualizzare analisi dettagliate di una query. La fase di inizializzazione della query del tracker delle query include gli eventi descritti nella fase del worker asincrono, nella fase di inizializzazione e nella fase di gestione della connessione dell'esplorazione Metriche sul rendimento delle query.

Fase di esecuzione della query

Nella fase di esecuzione della query, Looker contatta il tuo database, esegue la query e ne restituisce i risultati. I problemi di prestazioni durante questa fase potrebbero indicare un problema con il database esterno, ad esempio PDT che richiedono molto tempo per la ricostruzione e potrebbero dover essere ottimizzate o tabelle di database esterne che potrebbero dover essere ottimizzate. La fase Query in esecuzione include le seguenti attività:

  • Creazione di eventuali PDT nel database necessari per la query di esplorazione
  • Esecuzione della query richiesta sul database

La pagina della documentazione Informazioni sulle metriche sul rendimento delle query descrive come utilizzare l'esplorazione Metriche sul rendimento delle query in Attività di sistema per visualizzare analisi dettagliate di una query. La fase Query in esecuzione del tracker delle query include gli eventi descritti nella fase Query principali dell'esplorazione Metriche sul rendimento delle query.

I possibili passaggi da seguire se si verificano problemi di prestazioni durante questa fase includono quanto segue:

  • Crea esplorazioni utilizzando le unioni many_to_one, se possibile. L'unione delle visualizzazioni dal livello più granulare al livello più alto di dettaglio (many_to_one) in genere offre le migliori prestazioni di query.
  • Massimizza la memorizzazione nella cache per sincronizzarti con i tuoi criteri ETL, ove possibile, per ridurre il traffico delle query del database. Per impostazione predefinita, Looker memorizza nella cache le query per un'ora. Puoi controllare il criterio di memorizzazione nella cache e sincronizzare gli aggiornamenti dei dati di Looker con il processo ETL applicando datagroup nelle esplorazioni utilizzando il parametro persist_with. La massimizzazione della memorizzazione nella cache consente a Looker di integrarsi più strettamente con la pipeline di dati di backend, in modo che l'utilizzo della cache possa essere massimizzato senza il rischio di analizzare dati non aggiornati. I criteri di memorizzazione nella cache denominati possono essere applicati a un intero modello o a singole esplorazioni e tabelle derivate permanenti (PDT).
  • Utilizza la funzionalità di consapevolezza aggregata di Looker per creare aggregazioni o tabelle di riepilogo che Looker può utilizzare per le query, se possibile, in particolare per le query comuni di database di grandi dimensioni. Puoi anche utilizzare il riconoscimento degli aggregati per migliorare drasticamente il rendimento di intere dashboard. Per ulteriori informazioni, consulta il tutorial sull'awareness aggregata.
  • Utilizza i PDT per query più rapide. Converti le esplorazioni con molti join complessi o con scarso rendimento o con dimensioni con sottoquery o sottoselezioni in PDT in modo che le visualizzazioni siano pre-aggregate e pronte prima del runtime.
  • Se il dialetto del database supporta le tabelle PDT incrementali, configura le tabelle PDT incrementali per ridurre il tempo impiegato da Looker per ricostruire le tabelle PDT.
  • Evita di unire le visualizzazioni alle esplorazioni in base a chiavi primarie concatenate definite in Looker. Esegui invece il join sui campi di base che compongono la chiave primaria concatenata dalla vista. In alternativa, ricrea la visualizzazione come PDT con la chiave primaria concatenata predefinita nella definizione SQL della tabella anziché nel codice LookML di una visualizzazione.
  • Utilizza lo strumento Spiega in SQL Runner per il benchmarking. EXPLAIN genera una panoramica del piano di esecuzione delle query del database per una determinata query SQL, consentendo di rilevare i componenti delle query che possono essere ottimizzati. Scopri di più nel post della scheda Community Come ottimizzare SQL con EXPLAIN.
  • Dichiara gli indici. Puoi esaminare gli indici di ogni tabella direttamente in Looker da SQL Runner facendo clic sull'icona a forma di ingranaggio in una tabella e selezionando Mostra indici.

    Le colonne più comuni che possono trarre vantaggio dagli indici sono le date importanti e le chiavi esterne. L'aggiunta di indici a queste colonne aumenterà le prestazioni per quasi tutte le query. Lo stesso vale per i PDT. I parametri LookML, come indexes, sort keys e distribution, possono essere applicati in modo appropriato.

Fase di elaborazione dei risultati

Durante la fase di elaborazione dei risultati, Looker elabora i risultati della query e ne esegue il rendering. La fase Elaborazione dei risultati include le seguenti attività:

La pagina della documentazione Informazioni sulle metriche sul rendimento delle query descrive come utilizzare l'esplorazione Metriche sul rendimento delle query in Attività di sistema per visualizzare analisi dettagliate di una query. La fase di elaborazione dei risultati del tracker delle query include gli eventi descritti nella fase post-query dell'esplorazione Metriche sul rendimento delle query.

I possibili passaggi da seguire se si verificano problemi di prestazioni durante questa fase includono:

  • Utilizza con parsimonia funzionalità come unione dei risultati, campi personalizzati e calcoli tabulari. Queste funzionalità sono pensate per essere utilizzate come prove del concetto per aiutarti a progettare il tuo modello. È buona prassi codificare i calcoli e le funzioni di uso frequente in LookML, in modo da generare SQL da elaborare nel database. Calcoli eccessivi possono competere per la memoria Java nell'istanza di Looker, causando una risposta più lenta dell'istanza.
  • Limita il numero di visualizzazioni da includere in un modello quando è presente un numero elevato di file di visualizzazione. L'inclusione di tutte le visualizzazioni in un unico modello può rallentare il rendimento. Quando in un progetto è presente un numero elevato di visualizzazioni, ti consigliamo di includere solo i file delle visualizzazioni necessari in ogni modello. Valuta la possibilità di utilizzare convenzioni di denominazione strategiche per i nomi dei file delle visualizzazioni per consentire l'inclusione di gruppi di visualizzazioni all'interno di un modello. Un esempio è descritto nella documentazione del parametro includes.
  • Evita di restituire un numero elevato di punti dati per impostazione predefinita nei riquadri della dashboard e nei look. Le query che restituiscono migliaia di punti dati consumeranno più memoria. Assicurati che i dati siano limitati, ove possibile, applicando filtri frontend a dashboard, look ed esplorazioni e a livello di LookML con i parametri required filters, conditionally_filter e sql_always_where.
  • Scarica o invia query utilizzando l'opzione Tutti i risultati con parsimonia, poiché alcune query possono essere molto grandi e sopraffare il server Looker durante l'elaborazione.