Pengantar JavaScript di Dataform

Dokumen ini membantu Anda memahami cara menggunakan JavaScript untuk mengembangkan alur kerja SQL di Dataform.

Dataform core memungkinkan Anda membuat objek alur kerja SQL dengan SQLX dan JavaScript. Meskipun opsional, menggunakan JavaScript bersama dengan SQLX untuk membuat elemen serupa berulang kali dalam alur kerja Anda. Misalnya, dengan JavaScript, Anda dapat membuat tampilan setiap tabel dalam alur kerja dengan ID pengguna tertentu dihapus. Anda juga dapat mengembangkan objek alur kerja SQL secara eksklusif dengan JavaScript.

Untuk mulai mengembangkan alur kerja SQL Dataform menggunakan JavaScript, Anda harus memahami sintaksis JavaScript dan konsep JavaScript berikut:

  • Variabel
  • Array
  • Pernyataan bersyarat
  • Loop for
  • Maps
  • Functions
  • Objek
  • Mengekspor dan mengimpor modul

Menambahkan kode JavaScript ke file SQLX

Anda dapat menambahkan kode JavaScript ke file SQLX dengan dua cara: inline atau di dalam blok JavaScript.

Anda dapat menggunakan blok JavaScript untuk menentukan fungsi atau konstanta dalam file SQLX. Anda dapat menggunakan JavaScript inline untuk mengubah kueri SQLX atau SQL secara dinamis.

Contoh kode berikut menunjukkan fungsi JavaScript bawaan self Dataform yang ditambahkan secara inline ke blok post_operations dalam 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"
}

Contoh kode berikut menunjukkan konstanta yang ditentukan dalam blok JavaScript dan digunakan secara inline di dalam kueri dalam file SQLX:

js {
  const columnName = "foo";
}

SELECT 1 AS ${columnName} FROM "..."

Menggunakan kembali kode dengan JavaScript

Anda dapat menggunakan kembali kode JavaScript untuk menyederhanakan pengembangan di Dataform. Untuk menggunakan kembali konstanta dan fungsi JavaScript di satu file SQLX, Anda dapat mengenkapsulasinya dalam blok JavaScript. Untuk menggunakan kembali kode JavaScript di satu repositori Dataform, Anda dapat membuat include. Untuk menggunakan kembali kode JavaScript di beberapa repositori Dataform, Anda dapat membuat atau mengimpor paket.

Menggunakan kembali kode di seluruh satu file SQLX dengan enkapsulasi JavaScript

Untuk membuat bagian kode SQL berulang yang dapat Anda gunakan kembali dalam satu file SQLX, Anda dapat mengenkapsulasi fungsi dan konstanta dalam blok JavaScript. Anda dapat menggunakan kembali kode yang ditentukan dalam blok JavaScript hanya di dalam file SQLX tempat blok ditentukan. Untuk mengetahui informasi selengkapnya, lihat Ringkasan inti Dataform.

Contoh kode berikut menunjukkan konstanta dan fungsi yang ditentukan dalam blok JavaScript dan digunakan secara inline di dalam kueri dalam file SQLX:

js {
 const foo = 1;
 function bar(number){
     return number+1;
 }
}

select
 ${foo} as one,
 ${bar(foo)} as two

Menggunakan kembali kode di seluruh repositori tunggal dengan menyertakan

Include adalah konstanta atau fungsi JavaScript yang bersifat global untuk repositori Anda. Anda menentukan include di direktori includes repositori Anda. Kemudian, Anda dapat menggunakannya kembali di seluruh repositori dalam file JavaScript dan SQLX.

Contoh kode berikut menunjukkan definisi konstanta launch_date dalam file includes/constants.js:

// filename is includes/constants.js
const launch_date = "11.11.2011";
module.exports = { launch_date };

Contoh kode berikut menunjukkan konstanta launch_date yang dirujuk dalam kueri definisi tabel dalam file SQLX:

config {type: "table"}

SELECT * FROM source_table WHERE date > ${constants.launch_date}

Menggunakan kembali kode di beberapa repositori dengan paket

Paket adalah kumpulan kode JavaScript yang dapat Anda impor dan gunakan di beberapa repositori Dataform untuk menyederhanakan pengembangan alur kerja SQL.

Anda dapat membuat paket kustom Anda sendiri di Dataform atau menggunakan salah satu paket Dataform open source, yang tersedia di halaman Dataform open source GitHub.

Untuk contoh penggunaan paket open source di Dataform, lihat Menggunakan dimensi yang berubah secara perlahan di Dataform.

Agar dapat menggunakan konten paket di Dataform, Anda harus menginstal paket di repositori Dataform, lalu mengimpornya ke setiap file JavaScript atau SQLX tempat Anda ingin menggunakan paket. Untuk mengetahui informasi selengkapnya, lihat Menginstal paket di Dataform.

Agar dapat menginstal paket NPM pribadi di repositori Dataform, Anda harus melakukan autentikasi paket.

Membuat alur kerja SQL di JavaScript

Sebagai alternatif untuk mengembangkan alur kerja SQL di SQLX, atau SQLX yang digabungkan dengan JavaScript, Anda dapat membuat objek alur kerja SQL dalam file .js hanya dengan menggunakan JavaScript. Anda dapat membuat beberapa objek alur kerja SQL dalam satu file JavaScript dengan metode global Dataform dan kode JavaScript ES5 arbitrer, seperti loop dan konstanta. Setiap metode JavaScript global Dataform berisi properti yang dapat Anda gunakan untuk mengonfigurasi objek yang dibuat.

Anda dapat membuat objek alur kerja SQL berikut hanya dengan menggunakan JavaScript di Dataform:

  • Pernyataan sumber data
  • Tabel
  • Pernyataan manual
  • Operasi SQL kustom

Untuk informasi selengkapnya tentang cara membuat objek alur kerja SQL hanya menggunakan JavaScript, lihat Membuat alur kerja SQL Dataform dengan JavaScript.

Langkah selanjutnya