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, gunakan JavaScript beserta SQLX untuk membuat elemen serupa berulang kali dalam alur kerja Anda. Misalnya, dengan JavaScript, Anda dapat membuat tampilan setiap tabel dalam alur kerja Anda dengan menghapus ID pengguna tertentu. Anda juga dapat mengembangkan objek alur kerja SQL secara eksklusif dengan JavaScript.

Untuk mulai mengembangkan alur kerja Dataform SQL 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: secara 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 inti Dataform self yang ditambahkan secara inline ke blok post_operations dalam file SQLX:

config {type: "table"}

SELECT * FROM ...

post_operations {
  GRANT SELECT on ${self()} to GROUP "allusers@samplecompany.com"
  ---
  GRANT SELECT on ${self()} to GROUP "allotherusers@samplecompany.com"
}

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

js {
  const columnName = "foo";
}

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

Menggunakan kembali kode di Dataform 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 seluruh satu repositori Dataform, Anda dapat membuat penyertaan. Untuk menggunakan kembali kode JavaScript di beberapa repositori Dataform, Anda dapat membuat atau mengimpor paket.

Menggunakan kembali kode di satu file SQLX dengan enkapsulasi JavaScript

Untuk membuat bagian kode SQL berulang yang dapat digunakan 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 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 di file SQLX:

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

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

Menggunakan kembali kode di satu repositori dengan penyertaan

Menyertakan konstanta JavaScript atau fungsi global untuk repositori Anda. Anda menentukan include dalam direktori includes dari 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 direferensikan 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 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 secara perlahan berubah di Dataform.

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

Agar dapat menginstal paket NPM pribadi dalam repositori Dataform, Anda harus mengautentikasi paket.

Membuat alur kerja SQL di JavaScript

Sebagai alternatif untuk mengembangkan alur kerja SQL di SQLX, atau SQLX yang dikombinasikan 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 ES5 JavaScript 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 dalam Dataform:

  • Deklarasi sumber data
  • Pernyataan manual
  • Tables
  • Pernyataan manual
  • Operasi SQL kustom

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

Langkah selanjutnya