In Dataform, una tabella è uno dei tipi di oggetti che compongono un workflow. Puoi creare tabelle che fanno riferimento ai dati delle origini dati dichiarate per il tuo flusso di lavoro o di altre tabelle nel flusso di lavoro. Dataform compila le definizioni delle tabelle in SQL in tempo reale. Quando attivi l'esecuzione, Dataform esegue il codice SQL e crea le tabelle definite in BigQuery.
Puoi creare i seguenti tipi di tabelle in un file SQLX type: "table":
table: una tabella normale.incremental: una tabella incrementale.view: una visualizzazione tabella. Per saperne di più, consulta Introduzione alle visualizzazioni.materialized: una vista materializzata della tabella. Per saperne di più, consulta Introduzione alle viste materializzate.
Puoi anche definire le partizioni e i cluster della tabella.
Per tenere traccia dello scopo di una tabella o della sua relazione con altre tabelle nel tuo flusso di lavoro, puoi aggiungere la documentazione alla tabella o alle colonne selezionate.
Per testare i dati in una tabella in base a condizioni specifiche, puoi creare query di test della qualità dei dati chiamate asserzioni. Dataform esegue asserzioni ogni volta che aggiorna il workflow e ti avvisa se una qualsiasi asserzione non va a buon fine.
Per eseguire l'override dello schema, del database e del nome predefiniti di una tabella selezionata, puoi eseguire l'override delle impostazioni della tabella.
Per disattivare la creazione di tabelle o eseguire un'istruzione SQL prima o dopo la creazione di tabelle, puoi configurare azioni aggiuntive.
Per organizzare le tabelle in BigQuery dopo averle eseguite, puoi aggiungere etichette BigQuery. Per saperne di più, vedi Introduzione alle etichette.
Per limitare l'accesso ai dati a livello di colonna della tabella, puoi aggiungere tag di criteri BigQuery. Per saperne di più, consulta Introduzione al controllo dell'accesso a livello di colonna.
Oltre a definire le tabelle in un file SQLX type: "table", puoi creare tabelle vuote definendo una query SQL personalizzata in un file SQLX type: "operations".
Potresti voler creare una tabella vuota in modo che un altro servizio
possa compilarla con i dati.
Prima di iniziare
Nella console Google Cloud , vai alla pagina Dataform.
(Facoltativo) Dichiara un'origine dati.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per completare le attività descritte in questo documento, chiedi all'amministratore di concederti il ruolo IAM Editor Dataform (roles/dataform.editor) sugli spazi di lavoro.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Creare una tabella
Questa sezione mostra come creare tabelle con Dataform Core in Dataform.
Informazioni sulle definizioni delle tabelle
Per definire una tabella, devi definire il tipo di tabella e scrivere un'istruzione SELECT in un file SQLX type: "table". Dataform compila quindi il codice
Dataform Core in SQL, esegue il codice SQL e crea le tabelle
definite in BigQuery.
In un'istruzione SELECT di Dataform Core, definisci la struttura della tabella e fai riferimento ad altri oggetti del flusso di lavoro.
Oltre a definire le tabelle in un file SQLX type: "table", puoi creare tabelle vuote definendo una query SQL personalizzata in un file SQLX type: "operations".
Per saperne di più, vedi
Creare una tabella vuota.
Fare riferimento alle dipendenze con ref
Per fare riferimento a un'azione del workflow in un'istruzione SELECT e aggiungerla automaticamente come dipendenza, utilizza la funzione ref. Dataform esegue
le dipendenze prima delle tabelle che dipendono da loro per verificare l'ordine corretto della pipeline.
La funzione ref è una funzione core integrata di Dataform
fondamentale per la gestione delle dipendenze in Dataform. La funzione ref ti consente di fare riferimento e dipendere automaticamente dai seguenti oggetti definiti nel flusso di lavoro Dataform, anziché codificare in modo rigido i nomi di schema e tabella:
- Tabelle di tutti i tipi di tabella supportati.
- Dichiarazioni delle origini dati.
- Operazioni SQL personalizzate con la proprietà
hasOutputimpostata sutrue.
Dataform utilizza la funzione ref per creare un albero delle dipendenze di tutte le tabelle da creare o aggiornare.
Dopo la compilazione, Dataform aggiunge istruzioni boilerplate all'istruzione SQL, ad esempio CREATE, REPLACE, INSERT o MERGE.
Il seguente esempio di codice mostra una definizione di tabella con l'utilizzo della funzione ref:
config { type: "table" }
SELECT
order_date AS date,
order_id AS order_id,
order_status AS order_status,
SUM(item_count) AS item_count,
SUM(amount) AS revenue
FROM ${ref("store_clean")}
GROUP BY 1, 2
Nella funzione ref, fornisci il nome della tabella o della dichiarazione dell'origine dati da cui vuoi dipendere. In genere si tratta del nome del file
SQLX in cui è definita la dichiarazione della tabella o dell'origine dati.
Se il nome di una tabella viene sostituito, utilizza il nome sostituito nella funzione ref.
Ad esempio, fai riferimento a una tabella con config { name: "overridden_name" }
come ref("overridden_name"). Per saperne di più, consulta Ignorare le impostazioni della tabella e Fare riferimento a una tabella con un nome di tabella ignorato.
Quando hai più tabelle con lo stesso nome in schemi diversi, puoi fare riferimento a una tabella specifica fornendo due argomenti alla funzione ref: il nome dello schema e il nome della tabella.
Il seguente esempio di codice mostra la funzione ref con due argomenti per specificare una tabella all'interno di uno schema specifico:
config { type: "table" }
SELECT * FROM ${ref("schema", "store_clean")}
Puoi anche aggiungere manualmente le dipendenze delle tabelle al blocco config per tabelle,
asserzioni, dichiarazioni di origini dati o operazioni SQL personalizzate che non sono
riferite in una funzione ref nell'istruzione SELECT. Dataform
esegue queste dipendenze prima delle tabelle dipendenti.
Il seguente esempio di codice mostra una dipendenza dalla tabella nel blocco config:
config { dependencies: [ "unreferenced_table" ] }
SELECT * FROM ...
Per saperne di più sulla gestione delle dipendenze nel flusso di lavoro, consulta Impostare le dipendenze.
Fare riferimento ad altre tabelle con resolve
La funzione resolve
consente di fare riferimento a una dichiarazione di tabella o origine dati in un'istruzione SELECT
come la funzione ref, ma non aggiunge il riferimento come dipendenza. Ciò
significa che l'oggetto a cui viene fatto riferimento utilizzando la funzione resolve non influisce
sull'esecuzione della tabella che utilizza la funzione resolve.
Per saperne di più sulle funzioni Dataform core integrate, consulta la documentazione di riferimento di Dataform core.
Crea un file SQLX per una definizione di tabella
Archivia i file SQLX di definizione delle tabelle nella directory definitions/. Per creare un nuovo file SQLX nella directory definitions/, segui questi passaggi:
Nella console Google Cloud , vai alla pagina Dataform.
Per aprire un repository, fai clic sul relativo nome.
Per aprire un'area di lavoro di sviluppo, fai clic sul nome dell'area.
Nel riquadro File, accanto a
definitions/, fai clic su Altro.Fai clic su Crea file.
Nel campo Aggiungi un percorso del file, inserisci il nome del file seguito da
.sqlxdopodefinitions/. Ad esempio:definitions/my-table.sqlx.I nomi dei file possono includere solo numeri, lettere, trattini e trattini bassi.
Fai clic su Crea file.
Definisci il tipo di tabella
Per creare una nuova definizione del tipo di tabella:
- Nell'area di lavoro di sviluppo, nel riquadro File, espandi la directory
definitions/. - Seleziona il file SQLX di definizione della tabella che vuoi modificare.
Nel file, inserisci il seguente snippet di codice:
config { type: "TABLE_TYPE" }Sostituisci TABLE_TYPE con uno dei seguenti tipi di tabella:
tableincrementalview