Dichiarazione di dipendenze

Questo documento mostra come definire la relazione tra gli oggetti nel tuo flusso di lavoro SQL in Dataform dichiarando le 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 dall'esecuzione dell'oggetto di dipendenza. Ciò significa che Dataform esegue il dipendente dopo la dipendenza. Puoi definire la relazione dichiarando le 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 gli oggetti del flusso di lavoro SQL.

Puoi definire la relazione di dipendenza tra i seguenti oggetti del flusso di lavoro SQL:

Dichiarazioni delle origini dati
Dichiarazioni di origini dati BigQuery che consentono di fare riferimento a queste origini dati nelle definizioni delle tabelle Dataform e nelle operazioni SQL. Puoi impostare una dichiarazione dell'origine dati come dipendenza, ma non come dipendente.
Tables
Tabelle create in Dataform in base alle origini dati dichiarate o ad altre tabelle nel flusso di lavoro SQL. Dataform supporta i seguenti tipi di tabelle: 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 file type: operations come dipendenza e come dipendente. Per dichiarare un'operazione SQL personalizzata come dipendenza nella funzione ref, devi impostare la proprietà hasOutput su true 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 e ti avvisa in caso di esito negativo. Puoi impostare un'asserzione definita in un file type: assertion come dipendenza e come dipendente dichiarando le dipendenze nel blocco config.

Puoi definire la relazione di dipendenza nei seguenti modi:

Prima di iniziare

  1. Crea e inizializza un'area di lavoro di sviluppo nel tuo repository.
  2. (Facoltativo) Dichiara un'origine dati.
  3. Crea almeno due oggetti del flusso di lavoro SQL: tabelle, asserzioni, dichiarazioni dell'origine dati o operations.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per dichiarare le dipendenze per tabelle, asserzioni, dichiarazioni dell'origine dati e operazioni SQL personalizzate, chiedi all'amministratore di concederti il ruolo IAM 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 i ruoli personalizzati o altri ruoli predefiniti.

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 principale di Dataform che consente di fare riferimento e di dipendere automaticamente da qualsiasi tabella, dichiarazione dell'origine dati o operazione SQL personalizzata con la proprietà hasOutput impostata su true nel flusso di lavoro SQL.

Per saperne di più sulla funzione ref, consulta Riferimento ai metodi di contesto principali di Dataform.

Per saperne di più sull'utilizzo della funzione ref in una definizione di tabella, consulta Informazioni sulle definizioni di tabella.

Il seguente esempio di codice mostra la dichiarazione dell'origine dati source_data aggiunta come argomento della funzione ref nel file di definizione SQLX incremental_table.sqlx 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 dichiarata automaticamente come 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 nel file di definizione SQLX custom_assertion.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 dichiarata automaticamente come dipendenza di custom_assertion. Durante l'esecuzione, Dataform esegue prima some_table, poi esegue custom_assertion dopo la creazione di some_table.

Dichiara le dipendenze nel blocco config

Per dichiarare le dipendenze a cui non viene fatto riferimento nella definizione dell'istruzione SQL del dipendente, ma che devono essere eseguite prima della tabella, dell'asserzione o dell'operazione SQL personalizzata, segui questi passaggi:

  1. Nell'area di lavoro di sviluppo, espandi la directory definitions/ nel riquadro File.
  2. Seleziona la tabella, l'asserzione o il file SQLX personalizzato dell'operazione SQL che vuoi modificare.
  3. Nel blocco config del file, inserisci il seguente snippet di codice:

    dependencies: [ "DEPENDENCY", ]
    

    Sostituisci DEPENDENCY con il nome file della tabella, dell'asserzione, della dichiarazione dell'origine dati o dell'operazione SQL personalizzata che vuoi aggiungere come dipendenza. Puoi inserire più nomi di file, separati da virgole.

  4. (Facoltativo) Fai clic su Formato.

Il seguente esempio di codice mostra la tabella some_table e l'asserzione some_assertion aggiunte come dipendenze al blocco config di un file di definizione di tabella:

config { dependencies: [ "some_table", "some_assertion" ] }

Passaggi successivi