Dataform principale consente di creare oggetti del flusso di lavoro SQL con SQLX e JavaScript. Sebbene sia facoltativo, l'utilizzo di JavaScript insieme a SQLX per creare elementi simili ripetutamente nel flusso di lavoro. Ad esempio, con JavaScript puoi creare una visualizzazione di ogni tabella nel flusso di lavoro rimuovendo determinati ID utente. Puoi anche sviluppare oggetti del flusso di lavoro SQL esclusivamente con JavaScript.
Per iniziare a sviluppare flussi di lavoro Dataform SQL mediante JavaScript, devi conoscere la sintassi di JavaScript e i seguenti concetti JavaScript:
- Variabili
- Array
- Istruzioni condizionali
- Loop For
- Maps
- Funzioni
- Oggetti
- Esportazione e importazione dei moduli
aggiungi il codice JavaScript a un file SQLX
Puoi aggiungere codice JavaScript a un file SQLX in due modi: incorporato o all'interno di un blocco JavaScript.
Puoi usare un blocco JavaScript per definire funzioni o costanti in un file SQLX. Puoi usare JavaScript incorporato per modificare dinamicamente una query SQLX o SQL.
Il seguente esempio di codice mostra la funzione JavaScript integrata di base self
Dataform aggiunta in linea al blocco post_operations
in un file SQLX:
config {type: "table"}
SELECT * FROM ...
post_operations {
GRANT `roles/bigquery.dataViewer`
ON
TABLE ${self()}
TO "group:allusers@example.com", "user:otheruser@example.com"
}
Il seguente esempio di codice mostra una costante definita in un blocco JavaScript e utilizzata in linea all'interno di una query in un file SQLX:
js {
const columnName = "foo";
}
SELECT 1 AS ${columnName} FROM "..."
Riutilizza il codice con JavaScript
Puoi riutilizzare il codice JavaScript per semplificare lo sviluppo in Dataform. Per riutilizzare le costanti e le funzioni JavaScript in un singolo file SQLX, puoi incapsularle in un blocco JavaScript. Per riutilizzare il codice JavaScript in un singolo repository Dataform, puoi creare inclusioni. Per riutilizzare il codice JavaScript in più repository Dataform, puoi creare o importare un pacchetto.
Riutilizza il codice in un singolo file SQLX con incapsulamento JavaScript
Per creare parti ripetitive di codice SQL da riutilizzare in un singolo file SQLX, puoi incapsulare funzioni e costanti in un blocco JavaScript. Puoi riutilizzare il codice definito in un blocco JavaScript solo all'interno del file SQLX in cui è definito il blocco. Per ulteriori informazioni, consulta Panoramica di Dataform core.
Il seguente esempio di codice mostra una costante e una funzione definite in un blocco JavaScript e utilizzate in linea all'interno di una query in un file SQLX:
js {
const foo = 1;
function bar(number){
return number+1;
}
}
select
${foo} as one,
${bar(foo)} as two
Riutilizza il codice in un singolo repository con le inclusioni
Sono incluse le costanti o le funzioni JavaScript globali del repository.
Devi definire le include nella directory includes
del tuo repository. Puoi quindi riutilizzarli nel repository
nei file JavaScript e SQLX.
Il seguente esempio di codice mostra la definizione della costante launch_date
nel file includes/constants.js
:
// filename is includes/constants.js
const launch_date = "11.11.2011";
module.exports = { launch_date };
Il seguente esempio di codice mostra la costante launch_date
a cui viene fatto riferimento in una query di definizione della tabella in un file SQLX:
config {type: "table"}
SELECT * FROM source_table WHERE date > ${constants.launch_date}
Riutilizza il codice in più repository con pacchetti
I pacchetti sono raccolte di codice JavaScript che puoi importare e utilizzare in più repository Dataform per semplificare lo sviluppo del flusso di lavoro SQL.
Puoi creare il tuo pacchetto personalizzato in Dataform o utilizzare uno dei pacchetti Dataform open source, disponibili nella pagina Dataform open source GitHub.
Per un esempio di utilizzo di un pacchetto open source in Dataform, consulta Utilizzare le dimensioni che cambiano lentamente in Dataform.
Per poter utilizzare i contenuti di un pacchetto in Dataform, devi installare il pacchetto nel tuo repository Dataform, quindi importarlo nel singolo file JavaScript o SQLX in cui vuoi utilizzare il pacchetto. Per saperne di più, vedi Installare un pacchetto in Dataform.
Per poter installare un pacchetto di Gestione dei partner di rete privato in un repository Dataform, devi autenticare il pacchetto.
Creare flussi di lavoro SQL in JavaScript
In alternativa allo sviluppo di flussi di lavoro SQL in SQLX, o SQLX combinato con JavaScript, puoi creare oggetti flusso di lavoro SQL nei file .js
utilizzando solo JavaScript. Puoi creare più oggetti del flusso di lavoro SQL all'interno di un file JavaScript con metodi globali Dataform e codice JavaScript ES5 arbitrario, come loop e costanti. Ciascuno dei metodi JavaScript globale Dataform contiene
proprietà che puoi usare per configurare gli oggetti creati.
Puoi creare i seguenti oggetti del flusso di lavoro SQL utilizzando solo JavaScript in Dataform:
- Dichiarazioni delle origini dati
- Dichiarazioni manuali
- Tabelle
- Dichiarazioni manuali
- Operazioni SQL personalizzate
Per ulteriori informazioni sulla creazione di oggetti del flusso di lavoro SQL utilizzando solo JavaScript, consulta Creare flussi di lavoro SQL Dataform con JavaScript.
Passaggi successivi
- Per scoprire come riutilizzare variabili e funzioni con include, consulta Riutilizzare variabili e funzioni con include in Dataform.
- Per informazioni su come creare un pacchetto, consulta Creare un pacchetto in Dataform.
- Per scoprire come installare un pacchetto, consulta Installare un pacchetto in Dataform.
- Per scoprire come autenticare un pacchetto privato, vedi Autenticare un pacchetto privato.
- Per scoprire come utilizzare un pacchetto open source in Dataform, consulta Utilizzare le dimensioni che cambiano lentamente in Dataform.
- Per scoprire come creare flussi di lavoro SQL con JavaScript, consulta Creare flussi di lavoro SQL Dataform con JavaScript.