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à:
- Per ogni esplorazione del progetto, SQL Validator esegue una query di esplorazione che include tutte le dimensioni dell'esplorazione.
- 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:
- Configura lo strumento di convalida SQL in modo da eseguire query solo su determinate esplorazioni.
- Configura SQL Validator per escludere determinate esplorazioni.
- Configura il validatore SQL in modo da ignorare le dimensioni di LookML definite con
hidden: yes
. - Aggiungi un commento o un tag
ci: ignore
al LookML di una dimensione per impedire a SQL Validator di includere la dimensione in nessuna delle sue query di esplorazione.
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:
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 parametrotags
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 camposql
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
- Esplorazioni da escludere
- Fail fast
- Ignora nascoste
- Contemporaneità delle query
- Convalida incrementale
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 inthelook.model.lkml
, devi inserirethelook
. - Per
explore_name
, utilizzaexplore_name
dal parametro LookMLexplore
. Ad esempio, per specificare l'esplorazione definita comeexplore: users
nel progetto LookML, devi inserireusers
. - Puoi creare un elenco separato da virgole per specificare più esplorazioni.
- Puoi utilizzare il carattere jolly
*
inmodel_name
oexplore_name
.
Ecco alcuni esempi:
Per specificare solo l'esplorazione Utenti definita con
explore: users
nel filethelook.model.lkml
, devi inserire quanto segue:thelook/users
Per specificare le esplorazioni denominate
users
eorders
nel filethelook.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.