Strumento di convalida SQL per l'integrazione continua

Lo strumento di convalida SQL di integrazione continua (CI) verifica che le dimensioni nelle esplorazioni vengano eseguite correttamente nel database. A questo scopo, lo strumento di convalida SQL esegue una serie di query sulle esplorazioni nel progetto LookML.

Per impostazione predefinita, lo strumento di convalida SQL esegue le seguenti attività:

  1. Per ogni esplorazione del progetto, SQL Validator esegue una query di esplorazione che include tutte le dimensioni dell'esplorazione.
  2. Se Looker restituisce un errore per la query di esplorazione, lo strumento di convalida SQL eseguirà una query di esplorazione separata per ogni dimensione dell'esplorazione.

Se non vuoi che SQL Validator esamini ogni dimensione in ogni esplorazione, puoi eseguire una o più delle seguenti operazioni:

Consulta la sezione Opzioni di convalida SQL di questa pagina per informazioni dettagliate sulle opzioni che puoi configurare quando crei o modifichi una suite CI. Per informazioni sull'esecuzione di SQL Validator, consulta la pagina di documentazione Eseguire suite di integrazione continua.

Nella pagina dei risultati dell'esecuzione, lo strumento di convalida SQL mostra ogni errore SQL, classificato per dimensione ed esplorazione, con un link al LookML problematico e un link Esplora da qui per il debug:

Pagina dei risultati dell'integrazione continua che mostra i risultati di SQL Validator

Consumo di risorse

Lo strumento di convalida SQL è progettato per consumare il minor numero di risorse in Looker e nel data warehouse. Tutte le query di SQL Validator includono una clausola LIMIT 0 e WHERE 1=2. Queste clausole in effetti chiedono al pianificatore delle query nel data warehouse di non elaborare i dati, ma di verificare la validità del codice SQL.

Con BigQuery, ad esempio, questo tipo di query è simile all'esecuzione di una query di simulazione in BigQuery. Per BigQuery, le query LIMIT 0 non eseguono la scansione dei dati, pertanto non ti dovrebbe essere addebitato alcun costo per le query eseguite da SQL Validator.

Escludere le dimensioni dalla convalida SQL

Potresti voler escludere determinate dimensioni dalla convalida SQL, ad esempio quelle dipendenti da un parametro, poiché il valore del parametro sarà nullo durante la convalida e causerà sempre un errore SQL.

Ti consigliamo inoltre di escludere le dimensioni che non hanno un parametro sql, ad esempio le dimensioni type: distance, type: location o type: duration.

Per escludere una dimensione dalla convalida SQL, puoi modificare il relativo codice LookML in due modi:

  • Puoi aggiungere un'istruzione ci: ignore nel parametro tags della definizione LookML della dimensione, come mostrato nell'esempio seguente:

    dimension: addresses {
      sql: ${TABLE}.addresses ;;
      tags: ["ci: ignore"]
    }
    
  • Puoi aggiungere il commento -- ci: ignore al campo sql del codice LookML della dimensione, come mostrato nell'esempio seguente:

    dimension: addresses {
      sql:
        -- ci: ignore
        ${TABLE}.addresses ;;
    }
    

Opzioni di SQL Validator

Quando crei o modifichi una suite di integrazione continua, puoi specificare diverse opzioni per configurare l'esecuzione di SQL Validator. Le opzioni sono descritte nelle seguenti sezioni di questa pagina:

Esplorazioni da sottoporre a query

Per impostazione predefinita, lo strumento di convalida SQL esegue la convalida SQL su tutti i modelli e le esplorazioni del progetto LookML.

Puoi utilizzare il campo Esplorazioni da sottoporre a query per specificare le esplorazioni e i modelli da includere nella convalida SQL.

Puoi specificare le esplorazioni nel seguente formato: model_name/explore_name

Tieni presente quanto segue:

  • Per model_name, utilizza il nome del file del modello senza l'estensione .model.lkml. Ad esempio, per specificare il modello definito in thelook.model.lkml, devi inserire thelook.
  • Per explore_name, utilizza explore_name dal parametro LookML explore. Ad esempio, per specificare l'esplorazione definita come explore: users nel progetto LookML, devi inserire users.
  • Puoi creare un elenco separato da virgole per specificare più esplorazioni.
  • Puoi utilizzare il carattere jolly * in model_name o explore_name.

Ecco alcuni esempi:

  • Per specificare solo l'esplorazione Utenti definita con explore: users nel file thelook.model.lkml, devi inserire quanto segue:

    thelook/users
    
  • Per specificare le esplorazioni denominate users e orders nel file thelook.model.lkml, devi inserire quanto segue:

    thelook/users, thelook/orders
    
  • Per specificare tutte le esplorazioni in thelook.model.lkml, inserisci quanto segue:

    thelook/*
    
  • Per specificare ogni esplorazione denominata users in tutti i modelli del progetto, devi inserire quanto segue:

    */users
    

Esplorazioni da escludere

Per impostazione predefinita, lo strumento di convalida SQL esegue la convalida SQL su tutti i modelli e le esplorazioni del progetto LookML.

Puoi utilizzare il campo Esplorazioni da escludere per specificare le esplorazioni e i modelli da escludere dalla convalida SQL.

Puoi specificare le esplorazioni nel seguente formato: model_name/explore_name

Per ulteriori informazioni su come specificare le esplorazioni per lo strumento di convalida SQL, consulta la sezione Esplorazioni da sottoporre a query.

Fail fast

Per impostazione predefinita, lo strumento di convalida SQL esegue una query per esplorazione con tutte le dimensioni nella query. Se la query dell'esplorazione non va a buon fine, lo strumento di convalida SQL eseguirà una query dell'esplorazione per ogni dimensione dell'esplorazione singolarmente.

Per una convalida più rapida, puoi attivare l'opzione Fallo rapido in modo che lo strumento di convalida SQL esegua solo la query iniziale per un'esplorazione, ovvero la query che contiene tutte le dimensioni contemporaneamente. Se la query restituisce un errore, lo strumento di convalida SQL lo mostrerà nei risultati dellCI#39;esecuzione dell'analisi di istanze e passerà all'esplorazione successiva da convalidare.

Con l'opzione Fallo rapido attivata, la convalida viene in genere completata più rapidamente. Tuttavia, i risultati di SQL Validator mostreranno solo il primo errore per ogni esplorazione, anche se più dimensioni potrebbero contenere errori. Ciò significa che, dopo aver corretto il primo errore, l'esecuzione successiva del convalidatore SQL potrebbe mostrare un errore aggiuntivo.

Ignora nascoste

Attiva il campo Ignora nascoste se vuoi che lo strumento di convalida SQL ignori le dimensioni LookML definite dagli sviluppatori di Looker con hidden: yes. Lo strumento di convalida SQL escluderà queste dimensioni dalle query di esplorazione durante la convalida.

Concorrenza delle query

Per impostazione predefinita, lo strumento di convalida SQL non esegue più di 10 query alla volta per evitare di sovraccaricare l'istanza Looker. Puoi utilizzare il campo Concorrenza delle query per specificare un numero massimo diverso di query che SQL Validator può eseguire contemporaneamente.

Il valore massimo per il campo Contemporaneità delle query è limitato all'impostazione Numero massimo di query contemporanee per questa connessione nella connessione al database.

Se noti un rallentamento dell'istanza di Looker durante l'esecuzione della convalida SQL, puoi diminuire questo valore.

Convalida incrementale

La convalida incrementale è un metodo per individuare errori unici per un branch di sviluppo specifico, errori che non esistono già in produzione. La convalida incrementale aiuta gli sviluppatori a trovare e correggere gli errori di loro competenza senza essere distratti dagli errori esistenti nel progetto e può anche velocizzare la convalida, in particolare per i progetti LookML che contengono molte esplorazioni.

Per la convalida incrementale, lo strumento di convalida SQL esegue solo le query di esplorazione che sono cambiate tra una versione di sviluppo (il riferimento di base) e la versione di produzione (il riferimento di destinazione). Lo strumento di convalida SQL restituisce solo gli errori specifici della versione di sviluppo, anche se la versione di produzione stessa presenta errori.

Nei risultati del validatore, SQL Validator indica ogni esplorazione saltata perché non sono state apportate modifiche al codice SQL compilato nel ramo o nel commit sottoposto a convalida. Consulta la sezione Visualizzazione dei risultati per la convalida incrementale per un esempio di risultati della convalida incrementale.

Puoi attivare la convalida incrementale per lo strumento di convalida SQL selezionando la casella di controllo Solo errori incrementali nella sezione Strumento di convalida SQL quando crei o modifichi una suite di integrazione continua.

Tieni presente quanto segue per la convalida incrementale:

  • L'impostazione di convalida incrementale non si applica quando lo strumento di convalida SQL convalida il branch di produzione stesso, ad esempio con esecuzioni manuali nel branch di produzione. Quando convalida il branch di produzione, lo strumento di convalida SQL esegue una convalida completa.
  • La modalità Fail fast non è supportata per le esecuzioni della convalida incrementale, poiché sono necessarie query sulle singole dimensioni per esporre gli errori incrementali specifici di un branch di sviluppo del progetto.