Core Dataform consente di creare oggetti flusso di lavoro SQL con SQLX e JavaScript. Sebbene facoltativo, l'utilizzo di JavaScript insieme a SQLX per creare elementi simili ripetutamente nel flusso di lavoro. Ad esempio, con JavaScript puoi creare visualizzazione di ogni tabella nel flusso di lavoro con determinati ID utente rimossi. Puoi anche sviluppare oggetti del flusso di lavoro SQL esclusivamente con JavaScript.
Per iniziare a sviluppare flussi di lavoro Dataform SQL utilizzando JavaScript, devi avere familiarità Sintassi 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 il codice JavaScript a un file SQLX in due modi: in linea 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 il core self
Dataform integrato
La funzione JavaScript è stata 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 usato inline 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 incapsularli 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 che puoi riutilizzare all'interno un singolo file SQLX, puoi incapsulare funzioni e costanti un blocco JavaScript. Puoi riutilizzare il codice definito solo in un blocco JavaScript all'interno del file SQLX in cui è definito il blocco. Per ulteriori informazioni, consulta Panoramica del core Dataform.
Il seguente esempio di codice mostra una costante e una funzione definite in un Blocco JavaScript e utilizzato 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.
Tu definisci le include nell'elemento includes
del tuo repository. Puoi quindi riutilizzarli in tutto il 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 tabella
di definizione 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 più repository Dataform per semplificare lo sviluppo del flusso di lavoro SQL.
Puoi creare il tuo pacchetto personalizzato in o usa uno dei pacchetti Dataform open source, disponibile nella Pagina Dataform open source GitHub.
Per un esempio di utilizzo di un pacchetto open source in Dataform, vedi Utilizza le dimensioni che cambiano lentamente in Dataform.
Per poter utilizzare i contenuti di un pacchetto in Dataform, devi: installare il pacchetto nel repository Dataform e quindi importarlo il 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 del 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 file JavaScript globali Dataform
contengono proprietà che puoi utilizzare per configurare gli oggetti creati.
Puoi creare i seguenti oggetti del flusso di lavoro SQL utilizzando solo JavaScript in Dataform:
- Dichiarazioni delle origini dati
- Tabelle
- Dichiarazioni manuali
- Operazioni SQL personalizzate
Per ulteriori informazioni sulla creazione di oggetti del flusso di lavoro SQL utilizzando solo JavaScript, consulta Crea flussi di lavoro SQL Dataform con JavaScript.
Passaggi successivi
- Per scoprire come riutilizzare variabili e funzioni con le inclusioni, consulta Riutilizza variabili e funzioni con include in Dataform.
- Per informazioni su come creare un pacchetto, consulta: Crea un pacchetto in Dataform.
- Per scoprire come installare un pacchetto, vedi Installa un pacchetto in Dataform.
- Per scoprire come autenticare un pacchetto privato, consulta Autenticare un pacchetto privato.
- Per scoprire come utilizzare un pacchetto open source in Dataform, consulta Utilizza le dimensioni che cambiano lentamente in Dataform.
- Per scoprire come creare flussi di lavoro SQL con JavaScript, consulta Crea flussi di lavoro SQL Dataform con JavaScript.