Introduzione a JavaScript in Dataform

Questo documento ti aiuta a capire come puoi usare JavaScript per sviluppare flussi di lavoro SQL in Dataform.

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