Strumento di convalida SQL per l'integrazione continua

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

Per impostazione predefinita, SQL Validator esegue le seguenti attività:

  1. Per ogni esplorazione nel progetto, SQL Validator esegue una query di esplorazione che include ogni dimensione nell'esplorazione.
  2. Se Looker restituisce un errore per la query di esplorazione, SQL Validator eseguirà una query di esplorazione separata per ogni dimensione nell'esplorazione.

Se non vuoi che SQL Validator verifichi 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 di CI, consulta la sezione Opzioni di SQL Validator di questa pagina. Per informazioni sull'esecuzione dello strumento di convalida SQL, consulta la pagina della documentazione Esecuzione di suite di integrazione continua.

Nella pagina dei risultati dell'esecuzione, SQL Validator 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 dello strumento di convalida SQL

Consumo di risorse

Il validator SQL è progettato per consumare il minor numero di risorse all'interno di Looker e del tuo data warehouse. Tutte le query di SQL Validator includono una clausola LIMIT 0 e WHERE 1=2. Queste clausole indicano in modo efficace al piano di query del tuo data warehouse di non elaborare i dati, ma di verificare la validità dell'SQL.

Con BigQuery, ad esempio, questo tipo di query è simile all'esecuzione di una query dry run in BigQuery. Per BigQuery, le query LIMIT 0 non analizzano i dati, quindi non dovrebbero essere addebitati costi per le query eseguite da SQL Validator.

Escludi le dimensioni dalla convalida SQL

Potresti voler escludere alcune dimensioni dalla convalida SQL, ad esempio quelle 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 ;;
    }
    

Integrazione continua e connessioni al database OAuth

Se il tuo progetto LookML utilizza una connessione al database configurata per OAuth, gli utenti account di servizio CI automatizzati non possono completare il flusso OAuth interattivo richiesto per l'autenticazione nel database. In questo modo, il validator SQL non riesce e genera un errore OAuth log in required.

Per utilizzare lo strumento di convalida SQL di integrazione continua, implementa una delle seguenti soluzioni alternative:

  • Configura la connessione al database in modo che utilizzi un service account: modifica l'impostazione Autenticazione della connessione al database in modo che utilizzi un account di servizio (ad esempio Credenziali predefinite dell'applicazione) anziché OAuth.
  • Utilizza un modello non OAuth per l'integrazione continua: crea un nuovo modello LookML che utilizza una connessione al database non OAuth e importa gli altri modelli al suo interno. Assicurati che l'utente Looker CI abbia accesso a questo nuovo modello.

Opzioni di SQL Validator

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, SQL Validator esegue la convalida SQL su tutti i modelli ed Explore nel 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 del parametro LookML explore. Ad esempio, per specificare l'esplorazione definita 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 Users definita con explore: users nel file thelook.model.lkml, inserisci quanto segue:

    thelook/users
    
  • Per specificare le esplorazioni denominate users e orders nel file thelook.model.lkml, inserisci 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, inserisci quanto segue:

    */users
    

Esplorazioni da escludere

Per impostazione predefinita, SQL Validator esegue la convalida SQL su tutti i modelli ed Explore nel progetto LookML.

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

Puoi specificare le esplorazioni nel seguente formato: model_name/explore_name

Per saperne di più su come specificare le esplorazioni per SQL Validator, 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 di esplorazione non va a buon fine, SQL Validator eseguirà 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, SQL Validator lo visualizzerà nei risultati dell'esecuzione CI e passerà all'esplorazione successiva in fase di convalida.

Con l'opzione Fail fast 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 presentare errori. Ciò significa che, dopo aver corretto il primo errore, la successiva esecuzione del validator SQL potrebbe mostrare un altro errore.

Ignora nascoste

Attiva il campo Ignora nascosti se vuoi che SQL Validator ignori le dimensioni LookML definite dagli sviluppatori di Looker con hidden: yes. Lo strumento di convalida SQL escluderà queste dimensioni dalle query di Esplora 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 di 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 Concorrenza delle query è limitato all'impostazione Numero massimo di query contemporanee per questa connessione della connessione al database.

Se noti un rallentamento nell'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 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). Il Validator SQL restituisce solo gli errori unici della versione di sviluppo, anche se la versione di produzione stessa presenta errori.

Nei risultati del validator, SQL Validator indica ogni esplorazione che è stata ignorata perché non sono state apportate modifiche al relativo SQL compilato nel branch o nel commit in fase di convalida. 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 alla convalida del 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 di convalida incrementale, poiché sono necessarie query sulle singole dimensioni per esporre gli errori incrementali specifici di un branch di sviluppo del progetto.