Panoramica di Dataform

Questo documento introduce i concetti e le procedure di Dataform.

Dataform è un servizio che consente agli analisti di dati di sviluppare, testare, controllare la versione e pianificare flussi di lavoro SQL complessi per la trasformazione dei dati in BigQuery.

Dataform ti consente di gestire la trasformazione dei dati nel processo di estrazione, caricamento e trasformazione (ELT) per l'integrazione dei dati. Dopo che i dati non elaborati sono stati estratti dai sistemi di origine e caricati in BigQuery, Dataform ti aiuta a trasformarli in una suite di tabelle di dati ben definita, testata e documentata.

Dataform ti consente di eseguire le seguenti azioni di trasformazione dei dati:

  • Sviluppare ed eseguire flussi di lavoro SQL per la trasformazione dei dati.
  • Collabora con i membri del team allo sviluppo del flusso di lavoro SQL tramite Git.
  • Gestisci un numero elevato di tabelle e le relative dipendenze.
  • Dichiara i dati di origine e gestisci le dipendenze delle tabelle.
  • Visualizza una visualizzazione dell'albero delle dipendenze del flusso di lavoro SQL.
  • Gestisci i dati con il codice SQL in un repository centrale.
  • Riutilizzare il codice con JavaScript.
  • Verifica la correttezza dei dati con test di qualità sulle tabelle di origine e di output.
  • Controllo della versione del codice SQL.
  • Documenta le tabelle di dati all'interno del codice SQL.

Processi di trasformazione dei dati in Dataform

Il flusso di lavoro di trasformazione dei dati per Dataform è il seguente:

  1. Dataform ti consente di creare repository per gestire il tuo codice.
  2. Dataform ti consente di creare aree di lavoro per lo sviluppo.
  3. Dataform ti consente di sviluppare flussi di lavoro SQL in uno spazio di lavoro di sviluppo.
  4. Dataform compila il proprio core in SQL.
  5. Dataform esegue l'albero delle dipendenze.

Dataform ti consente di creare repository per gestire il tuo codice

In un repository Dataform, utilizzi Dataform Core, un'estensione di SQL, per scrivere file SQLX in cui definire il flusso di lavoro. I repository Dataform supportano il controllo delle versioni. Puoi collegare un repository Dataform a un provider Git di terze parti.

Dataform ti consente di creare aree di lavoro per lo sviluppo

Puoi creare aree di lavoro di sviluppo all'interno di un repository Dataform per lo sviluppo di Dataform core. In un workspace di sviluppo, puoi apportare modifiche al repository, compilarlo, testarlo e spingerlo nel repository principale tramite Git.

Dataform ti consente di sviluppare il nucleo di Dataform in uno spazio di lavoro di sviluppo

In un'area di lavoro di sviluppo, puoi definire e documentare le tabelle, le relative dipendenze e la logica di trasformazione per creare il tuo flusso di lavoro SQL. Puoi anche configurare le azioni in JavaScript.

Dataform compila il nucleo di Dataform

Durante la compilazione, Dataform esegue le seguenti attività:

  • Compila il nucleo di Dataform in un flusso di lavoro SQL di SQL standard.
  • Aggiunge istruzioni SQL standard, come CREATE TABLE o INSERT, al codice in linea con la configurazione della query.
  • Traspila (compila da sorgente a sorgente) JavaScript in SQL.
  • Risolve le dipendenze e controlla la presenza di errori, tra cui dipendenze mancanti o circolari.
  • Consente di creare l'albero delle dipendenze di tutte le azioni da eseguire in BigQuery.

La compilazione di Dataform è ermetica per garantire la coerenza della compilazione, in quanto lo stesso codice viene compilato sempre nello stesso risultato di compilazione SQL. Dataform compila il codice in un ambiente sandbox senza accesso a internet. Durante la compilazione non sono disponibili azioni aggiuntive, come le chiamate alle API esterne.

Per eseguire il debug in tempo reale, puoi esaminare il flusso di lavoro SQL compilato del tuo progetto in un grafico interattivo nella tua area di lavoro di sviluppo.

Dataform esegue l'albero delle dipendenze

In BigQuery, Dataform esegue le seguenti attività:

  • Esegue i comandi SQL, seguendo l'ordine dell'albero delle dipendenze.
  • Esegue query di asserzione sulle tabelle e sulle visualizzazioni per verificare la correttezza dei dati.
  • Esegue altre operazioni SQL che hai definito.

Dopo l'esecuzione, puoi utilizzare le tabelle e le viste per tutte le finalità di analisi.

Puoi visualizzare i log per vedere quali tabelle sono state create, se le verifiche sono state superate o meno, il tempo necessario per completare ogni azione e altre informazioni. Puoi anche visualizzare il codice SQL esatto eseguito in BigQuery.

Framework di modellazione di Dataform

Dataform fornisce un framework di definizione dei modelli di dati open source, costituito da Dataform Core e Dataform CLI, che puoi utilizzare al di fuori di Google Cloud.

Limitazioni

Dataform presenta le seguenti limitazioni note:

  • Dataform in Google Cloud viene eseguito su un runtime V8 semplice e non supporta funzionalità e moduli aggiuntivi forniti da Node.js. Se il codebase esistente richiede moduli Node.js, devi rimuovere queste dipendenze.

    I progetti senza un campo name in package.json generano differenze su package-lock.json ogni volta che vengono installati i pacchetti. Per evitare questo risultato, devi aggiungere una proprietà name in package.json.

  • Gli URL git+https:// per le dipendenze in package.json non sono supportati.

    Converti questi URL in URL di archivi https:// semplici. Ad esempio, converti git+https://github.com/dataform-co/dataform-segment.git#1.5 in https://github.com/dataform-co/dataform-segment/archive/1.5.tar.gz.

  • L'esecuzione manuale dei test di unità non è disponibile.

  • La ricerca dei contenuti dei file negli spazi di lavoro di sviluppo non è disponibile.

  • A partire da Dataform Core 3.0.0., Dataform non distribuisce un'immagine Docker. Puoi creare la tua immagine Docker di Dataform, che puoi utilizzare per eseguire l'equivalente dei comandi della CLI di Dataform. Per creare la tua immagine Docker, consulta Eseguire il containerizzazione di un'applicazione nella documentazione di Docker.

  • I seguenti metodi dell'API Dataform non rispettano le linee guida AIP.134 trattando la voce jolly * come una richiesta non valida e aggiornando tutti i campi anziché impostare i campi quando field_mask viene omesso:

Passaggi successivi