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

Il tracker delle query di Esplora e il riquadro Prestazioni di Esplora forniscono dati sul rendimento passo passo per una query di Esplora. Questi dati possono aiutare a identificare i punti di ingresso chiave per la risoluzione dei problemi e dei problemi di prestazioni con le query e fornire consigli per i miglioramenti.

Esplora il tracker delle query

Il tracker delle query di Esplora mostra l'avanzamento di una query di Esplora attraverso le tre fasi della query mentre la query è in esecuzione.

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 prestazioni e dove gli sforzi di ottimizzazione possono essere più efficaci.

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

Esplora il riquadro Prestazioni

Per visualizzare il riquadro Prestazioni di Esplora, fai clic sul link Visualizza i dettagli sulle prestazioni, disponibile per qualsiasi query di Esplora eseguita.

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

Fasi della query

Quando un'esplorazione di Looker esegue una query sul 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 i dettagli 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.

Se riscontri problemi di prestazioni o query che richiedono molto tempo durante la fase di inizializzazione delle query, segui questi passaggi:

  • Scagliona le consegne pianificate: quando molti Look o dashboard pianificati vengono attivati contemporaneamente (soprattutto all'inizio dell'ora), l'improvviso picco di richieste di query simultanee può sovraccaricare le risorse dell'istanza e saturare i pool di connessioni. Questo collo di bottiglia della concorrenza fa sì che le query attendano o girino indefinitamente durante l'inizializzazione. Scagliona i contenuti pianificati a intervalli di 15 o 30 minuti (ad esempio, alle ore :15, :30 o :45) anziché pianificarli tutti alle ore :00. Per maggiori dettagli, consulta Ottimizza le prestazioni del server Looker.
  • Utilizza i gruppi di dati per le pianificazioni: quando possibile, attiva le pubblicazioni pianificate utilizzando gruppi di dati in linea con il ciclo ETL anziché trigger basati sul tempo. L'utilizzo dei gruppi di dati distribuisce l'esecuzione delle query e impedisce l'esecuzione di query ridondanti su dati non aggiornati.
  • Raggruppa e limita le chiamate API: se script automatici o strumenti esterni attivano query o report tramite l'API Looker, raggruppa le richieste batch o introduci ritardi per evitare di sovraccaricare le code di inizializzazione delle query.
  • Cancella i processi bloccati: se un picco improvviso di concorrenza causa il blocco delle query e l'istanza non risponde, riavvia l'istanza per cancellare le attività in corso e reimpostare le code interne.

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 che potrebbero dover essere ottimizzate o tabelle del database esterno che potrebbero richiedere l'ottimizzazione. La fase Esecuzione della query include le seguenti attività:

  • Creazione nel database di tutte le PDT necessarie per la query di Explore
  • 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 i dettagli 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.

Se riscontri problemi di prestazioni durante questa fase, puoi procedere nel seguente modo:

  • Crea esplorazioni utilizzando i join many_to_one ogni volta che è possibile. L'unione delle visualizzazioni dal livello più granulare al livello di dettaglio più elevato (many_to_one) in genere offre le migliori prestazioni delle query.
  • Massimizza la memorizzazione nella cache per sincronizzarla con i criteri ETL, ove possibile, per ridurre il traffico delle query del database. Per impostazione predefinita, Looker memorizza le query nella cache per un'ora. Puoi controllare la policy di memorizzazione nella cache e sincronizzare gli aggiornamenti dei dati di Looker con il processo ETL applicando i gruppi di dati all'interno di Explore 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 obsoleti. 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 aggregate awareness di Looker per creare tabelle di aggregazione o 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 l'awareness aggregata per migliorare drasticamente le prestazioni di intere dashboard. Per ulteriori informazioni, consulta il tutorial sull'awareness aggregata.
  • Utilizza le PDT per query più rapide. Converti in PDT le esplorazioni con molti join complessi o con prestazioni scadenti oppure le dimensioni con subquery o subselect, in modo che le visualizzazioni siano pre-unite e pronte prima del runtime.
  • Se il dialetto del database supporta le PDT incrementali, configura le PDT incrementali per ridurre il tempo impiegato da Looker per ricreare le tabelle PDT.
  • Evita di unire le visualizzazioni in Esplora su 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 vista come PDT con la chiave primaria concatenata predefinita nella definizione SQL della tabella, anziché nel LookML di una vista.
  • Utilizza lo strumento Spiega in SQL Runner per il benchmarking. EXPLAIN genera una panoramica del piano di esecuzione delle query del tuo database per una determinata query SQL, consentendoti di rilevare i componenti della query che possono essere ottimizzati. Scopri di più nel post per la community How to optimize SQL with 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 migliorerà le prestazioni di quasi tutte le query. Questo vale anche per le 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 i dettagli di una query. La fase Elaborazione dei risultati del tracker delle query include gli eventi descritti nella fase post-query dell'esplorazione Metriche sulle prestazioni delle query.

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

  • Utilizza con parsimonia funzionalità come Unisci risultati, campi personalizzati e calcoli tabulari. Queste funzionalità sono destinate a essere utilizzate come proof of concept per aiutarti a progettare il tuo modello. La best practice consiste nell'impostare come hardcoded i calcoli e le funzioni di uso frequente in LookML, che genererà l'SQL da elaborare nel database. I calcoli eccessivi possono competere per la memoria Java nell'istanza di Looker, rallentando la risposta dell'istanza.
  • Limita il numero di visualizzazioni che includi in un modello quando è presente un numero elevato di file di visualizzazione. L'inclusione di tutte le visualizzazioni in un unico modello può rallentare le prestazioni. Quando in un progetto è presente un numero elevato di visualizzazioni, valuta la possibilità di includere solo i file di visualizzazione necessari all'interno di ogni modello. Valuta la possibilità di utilizzare convenzioni di denominazione strategiche per i nomi dei file di visualizzazione 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 all'interno dei riquadri della dashboard e dei Look. Le query che restituiscono migliaia di punti dati consumano più memoria. Assicurati che i dati siano limitati, ove possibile, applicando filtri di 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 le query utilizzando l'opzione Tutti i risultati con parsimonia, poiché alcune query possono essere molto grandi e sovraccaricare il server Looker durante l'elaborazione.