Questo documento mostra come definire la relazione tra gli oggetti flusso di lavoro SQL in Dataform mediante la dichiarazione delle dipendenze.
Puoi definire una relazione di dipendenza tra gli oggetti di un flusso di lavoro SQL. In una relazione di dipendenza, l'esecuzione dell'oggetto dipendente dipende all'esecuzione dell'oggetto dipendenza. Ciò significa che Dataform esegue il dipendente dopo la dipendenza. Definisci la relazione con la dichiarazione delle dipendenze all'interno del file di definizione SQLX dell'oggetto dipendente.
Le dichiarazioni delle dipendenze costituiscono un albero delle dipendenze del flusso di lavoro SQL che determina l'ordine in cui Dataform esegue i tuoi Oggetti flusso di lavoro SQL.
Puoi definire la relazione di dipendenza tra i seguenti Oggetti flusso di lavoro SQL:
- Dichiarazioni delle origini dati
- Dichiarazioni delle origini dati BigQuery che ti consentono di fare riferimento a queste le origini dati nelle definizioni delle tabelle Dataform e nelle operazioni SQL. Puoi impostare una dichiarazione dell'origine dati come dipendenza, ma non come dipendente.
- Tabelle
- Tabelle create in Dataform in base ai dati dichiarati origini o altre tabelle nel flusso di lavoro SQL. Dataform supporta seguenti tipi di tabella: tabella, tabella incrementale, vista e vista materializzata. Puoi impostare una tabella come dipendenza e come dipendente.
- Operazioni SQL personalizzate
- Istruzioni SQL che Dataform esegue in BigQuery così come sono,
senza modifiche. Puoi impostare un'operazione SQL personalizzata definita in un
type: operations
come dipendenza e come dipendente. Per dichiarare un modello di dell'operazione SQL come dipendenza nella funzioneref
, devi imposta la proprietàhasOutput
sutrue
nel file di definizione SQLX dell'operazione SQL personalizzata. - Asserzioni
- Query di test della qualità dei dati che puoi usare per testare i dati delle tabelle.
Dataform esegue le asserzioni ogni volta che aggiorna il flusso di lavoro SQL
ti avvisa se un'asserzione ha esito negativo. Puoi impostare un'asserzione definita in un
type: assertion
come dipendenza e come dipendente con la dichiarazione nel bloccoconfig
.
Puoi definire la relazione di dipendenza nei seguenti modi:
- Dichiara una dipendenza utilizzando la funzione principale
ref
di Dataform per fare riferimento alla dipendenza in un'istruzioneSELECT
. - Dichiara un elenco di dipendenze nel blocco
config
di un file di definizione SQLX.
Prima di iniziare
- Crea e inizializza un'area di lavoro di sviluppo nel tuo repository.
- (Facoltativo) Dichiara un'origine dati.
- Crea almeno due oggetti del flusso di lavoro SQL: tabelle, asserzioni, dichiarazioni delle origini dati, o operazioni.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per dichiarare le dipendenze per tabelle, asserzioni e origini dati
dichiarazioni e operazioni SQL personalizzate,
chiedi all'amministratore di concederti
Ruolo IAM dell'editor Dataform (roles/dataform.editor
) nelle aree di lavoro.
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite la ruoli o altri ruoli predefiniti ruoli.
Dichiara una dipendenza come argomento della funzione ref
Per fare riferimento a una dipendenza e dichiararla automaticamente in un'istruzione SELECT
,
aggiungi la dipendenza come argomento della funzione ref
.
La funzione ref
è una funzione integrata di base di Dataform che ti consente
riferimento e dipendono automaticamente da qualsiasi tabella, dichiarazione dell'origine dati
operazione SQL personalizzata con la proprietà hasOutput
impostata su true
nel tuo flusso di lavoro SQL.
Per ulteriori informazioni sulla funzione ref
, consulta
Riferimento ai metodi di contesto principali di Dataform.
Per ulteriori informazioni sull'utilizzo della funzione ref
in una definizione di tabella, consulta
Informazioni sulle definizioni delle tabelle.
Il seguente esempio di codice mostra la dichiarazione dell'origine dati source_data
aggiunta
come argomento della funzione ref
nell'SQLX incremental_table.sqlx
di definizione di una tabella incrementale:
// filename is incremental_table.sqlx
config { type: "incremental" }
SELECT * FROM ${ref("source_data")}
Nell'esempio di codice precedente, source_data
viene dichiarato automaticamente
della dipendenza di incremental_table
.
Il seguente esempio di codice mostra il file SQLX di definizione della tabella some_table
aggiunto
come argomento della funzione ref
in custom_assertion.sqlx
File di definizione SQLX di un'asserzione:
// filename is custom_assertion.sqlx
config { type: "assertion" }
SELECT
*
FROM
${ref("some_table")}
WHERE
a is null
or b is null
or c is null
Nell'esempio di codice precedente, some_table
viene dichiarato automaticamente
della dipendenza di custom_assertion
. Durante l'esecuzione, Dataform esegue
some_table
, quindi esegue custom_assertion
dopo la creazione di some_table
.
Dichiara le dipendenze nel blocco config
a dichiarare le dipendenze a cui non viene fatto riferimento nella definizione dell'istruzione SQL. del dipendente, ma che deve essere eseguito prima della tabella, dell'asserzione o un'operazione SQL personalizzata, segui questi passaggi:
- Nell'area di lavoro di sviluppo, espandi il riquadro File
nella directory
definitions/
. - Seleziona la tabella, l'asserzione o il file SQLX di un'operazione SQL personalizzata che che vuoi modificare.
Nel blocco
config
del file, inserisci il seguente snippet di codice:dependencies: [ "DEPENDENCY", ]
Sostituisci DEPENDENCY con il nome file della tabella, dell'asserzione la dichiarazione dell'origine dati o un'operazione SQL personalizzata che vuoi aggiungere come dipendenza. Puoi inserire più nomi di file, separati da virgole.
(Facoltativo) Fai clic su Formato.
Il seguente esempio di codice mostra la tabella some_table
e some_assertion
asserzione aggiunta come dipendenze al blocco config
di un file di definizione di tabella:
config { dependencies: [ "some_table", "some_assertion" ] }
Passaggi successivi
- Per scoprire come impostare le asserzioni come dipendenze, consulta Testare tabelle con asserzioni.
- Per scoprire come dichiarare un'origine dati, consulta: Dichiarare un'origine dati.
- Per scoprire come definire operazioni SQL personalizzate, consulta Aggiungi operazioni SQL personalizzate.
- Per scoprire come riutilizzare il codice nel flusso di lavoro SQL con le inclusioni, consulta Riutilizzare variabili e funzioni con include.