Questo documento spiega come configurare impostazioni di tabelle aggiuntive in un file di definizione della tabella. Con Dataform Core, puoi definire pre_operations
e post_operations
per eseguire un'istruzione SQL prima o dopo la creazione della tabella. Puoi anche ignorare le impostazioni della tabella, ad esempio database
o schema
, e disattivare la creazione della tabella.
Prima di iniziare
Nella console Google Cloud, vai alla pagina Dataform.
Seleziona o crea un repository.
Seleziona o crea un'area di lavoro di sviluppo.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per configurare impostazioni di tabelle aggiuntive,
chiedi all'amministratore di concederti il ruolo IAM Editor di Dataform (roles/dataform.editor
) negli spazi di lavoro.
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Sostituisci le impostazioni della tabella
Puoi sostituire lo schema, il database e il nome di una tabella selezionata.
Per impostazione predefinita, una tabella segue lo schema e la configurazione del database impostati in
workflow_settings.yaml
. Il nome di una tabella corrisponde al nome del file SQLX di definizione della tabella.
Per eseguire l'override dello schema e del nome di una tabella selezionata:
Vai allo spazio di lavoro di sviluppo.
Nel riquadro File, espandi
definitions/
.Apri un file di definizione della tabella SQLX.
Nel blocco
config
, inserisci il seguente snippet di codice:{ schema: "OVERRIDDEN_SCHEMA", database: "OVERRIDDEN_DATABASE", name: "OVERRIDDEN_NAME" }
Sostituisci quanto segue:
OVERRIDDEN_SCHEMA
: il set di dati BigQuery in cui vuoi creare la tabellaOVERRIDDEN_DATABASE
: l'ID del progetto BigQuery in cui vuoi creare la tabellaOVERRIDDEN_NAME
: il nome della tabella, distinto dal nome del file della definizione della tabella SQLX
(Facoltativo) Fai clic su Formato.
Fare riferimento a una tabella con un nome tabella sostituito
- Per fare riferimento a una tabella con un nome sostituito, nella funzione
ref
, inserisci il nome della tabella sostituito impostato inname: ""
.
Il seguente esempio di codice fa riferimento a una tabella con il nome sostituito con
overridden_name
:
SELECT * FROM ${ref("overridden_name")}
Definisci un'istruzione SQL da eseguire prima della creazione della tabella
Puoi configurare Dataform in modo da eseguire una o più istruzioni SQL
prima di creare una tabella selezionata in BigQuery. Per eseguire un'istruzione SQL prima che Dataform crei una tabella selezionata, aggiungi l'istruzione al blocco pre_operations
nel file SQLX di definizione della tabella.
Per creare un'istruzione SQL personalizzata eseguita prima che Dataform crei una tabella specifica:
Vai allo spazio di lavoro di sviluppo.
Nel riquadro File, espandi
definitions/
.Apri un file di definizione della tabella SQLX.
Al di fuori del blocco
config
, inseriscipre_operations { ... }
.All'interno di
pre_operations { ... }
, aggiungi l'istruzione SQL.(Facoltativo) Per aggiungere più istruzioni, separale con
---
.(Facoltativo) Fai clic su Formato.
Il seguente esempio di codice mostra un'istruzione pre_operations
che crea una funzione temporanea che può essere utilizzata nell'istruzione SELECT:
pre_operations {
CREATE TEMP FUNCTION AddFourAndDivide(x INT64, y INT64)
RETURNS FLOAT64
AS ((x + 4) / y);
}
Definisci un'istruzione SQL da eseguire dopo la creazione della tabella
Puoi configurare Dataform in modo da eseguire una o più istruzioni SQL
dopo aver creato una tabella selezionata in BigQuery. Per eseguire un'istruzione SQL
dopo che Dataform ha creato una tabella selezionata, aggiungi l'istruzione al
blocco post_operations
nel file SQLX di definizione della tabella. Puoi aggiungere
più istruzioni SQL al blocco post_operations
.
Per creare un'istruzione SQL personalizzata eseguita dopo che Dataform ha creato una tabella specifica:
Vai allo spazio di lavoro di sviluppo.
Nel riquadro File, espandi
definitions/
.Apri un file di definizione della tabella SQLX.
Al di fuori del blocco
config
, inseriscipost_operations { ... }
.All'interno di
post_operations { ... }
, aggiungi l'istruzione SQL.(Facoltativo) Fai clic su Formato.
Il seguente esempio di codice mostra istruzioni post_operations
che concedono ai gruppi accesso alla tabella creata:
post_operations {
GRANT `roles/bigquery.dataViewer`
ON
TABLE ${self()}
TO "group:allusers@example.com", "user:otheruser@example.com"
}
Disattivare la creazione di tabelle
Per impedire a Dataform di creare una tabella selezionata in BigQuery, puoi disattivarla nel file di definizione della tabella SQLX. Dataform mantiene una tabella disattivata nel grafico delle dipendenze, ma non la compila e non la crea. Questo può essere utile, ad esempio, se una tabella non va a buon fine e non vuoi che l'intero flusso di lavoro non vada a buon fine mentre risolvi il problema.
Per disattivare una tabella:
Vai allo spazio di lavoro di sviluppo.
Nel riquadro File, espandi
definitions/
.Seleziona un file di definizione della tabella SQLX.
Nel blocco
config
del file, inseriscidisabled: true
.(Facoltativo) Fai clic su Formato.
Il seguente esempio di codice mostra una tabella disattivata:
config {
type: "table",
disabled: true
}
select * from ${ref("source_data")}
Passaggi successivi
Per scoprire come configurare le impostazioni di Dataform in
workflow_settings.yaml
, consulta Configurare le impostazioni di Dataform.Per scoprire come testare i dati della tabella con le asserzioni, consulta Testare le tabelle con le asserzioni.
Per scoprire come riutilizzare il codice con gli include, consulta Riutilizzare il codice in un singolo repository con gli include.
Per scoprire come attivare manualmente le esecuzioni, consulta Attivare l'esecuzione.