Introduzione a JavaScript in Dataform

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

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. Puoi definire 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, disponibili sul 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