Strumento di convalida SQL per l'integrazione continua

Lo strumento di convalida SQL per l'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, SQL Validator esegue le seguenti attività:

  1. Per ogni esplorazione nel tuo progetto, SQL Validator esegue una query di esplorazione che include ogni dimensione dell'esplorazione.
  2. Se Looker restituisce un errore per la query di esplorazione, lo strumento di convalida SQL esegue una query di esplorazione separata per ogni dimensione dell'esplorazione.

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

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

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

Pagina dei risultati dell'integrazione continua che mostra i risultati dello strumento di convalida SQL

Consumo di risorse

Il validatore SQL è progettato per utilizzare 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 indicano in modo efficace al pianificatore di query nel data warehouse di non elaborare i dati, ma di controllare la validità dell'SQL.

Con BigQuery, ad esempio, questo tipo di query è simile all'esecuzione di una query di prova generale in BigQuery. Per BigQuery, le query LIMIT 0 non analizzano i dati, quindi non dovresti pagare per le query eseguite dal validatore SQL.

Escludere le dimensioni dalla convalida SQL

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

Potresti anche voler escludere le dimensioni che non hanno un parametro sql, ad esempio le dimensioni di type: distance, type: location o type: duration.

Per escludere una dimensione dalla convalida SQL, puoi modificare il LookML della dimensione in uno dei due modi seguenti:

  • 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 LookML della dimensione, come mostrato nell'esempio seguente:

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

Opzioni dello strumento di convalida SQL

Puoi specificare diverse opzioni quando crei o modifichi una suite di integrazione continua per configurare l'esecuzione di SQL Validator. Le opzioni sono descritte nelle sezioni seguenti 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 nel progetto LookML.

Puoi utilizzare il campo Esplorazioni da interrogare per specificare le esplorazioni e i modelli che vuoi 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'Explore definito come explore: users nel tuo 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 nel 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 gli Explore per il validatore SQL, consulta la sezione Explore da interrogare.

Fail fast

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

Per una convalida più rapida, puoi attivare l'opzione Fail fast in modo che SQL Validator 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 visualizzerà nei risultati dell'esecuzione di CI e passerà all'Explore successivo da convalidare.

Se l'opzione Fail fast è attivata, la convalida viene in genere completata più rapidamente. Tuttavia, i risultati del validatore SQL mostreranno solo il primo errore per ogni esplorazione, anche se più dimensioni potrebbero presentare errori. Ciò significa che, dopo aver corretto il primo errore, la successiva esecuzione del validatore SQL potrebbe mostrare un errore aggiuntivo.

Ignora nascoste

Attiva il campo Ignora nascosti se vuoi che SQL Validator ignori le dimensioni LookML che gli sviluppatori Looker hanno definito 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 esegue non 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 lo strumento SQL Validator può eseguire contemporaneamente.

Il valore massimo per il campo Query concurrency (Contemporaneità delle query) è limitato all'impostazione Max concurrent queries for this connection (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 cui sono responsabili senza essere distratti da errori esistenti nel progetto e può anche rendere la convalida più rapida, soprattutto 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 unici per la versione di sviluppo, anche se la versione di produzione stessa presenta errori.

Nei risultati del validatore, SQL Validator indica ogni esplorazione ignorata perché non sono state apportate modifiche al relativo SQL compilato nel ramo o nel commit convalidato. Consulta Visualizzazione dei risultati della 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 mostrare gli errori incrementali specifici di un branch di sviluppo del progetto.