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
- Untuk mempelajari cara menggunakan kembali variabel dan fungsi dengan menyertakan, lihat Menggunakan kembali variabel dan fungsi dengan menyertakan di Dataform.
- Untuk mempelajari cara membuat paket, lihat Membuat paket di Dataform.
- Untuk mempelajari cara menginstal paket, lihat Menginstal paket di Dataform.
- Untuk mempelajari cara mengautentikasi paket pribadi, lihat Mengautentikasi paket pribadi.
- Untuk mempelajari cara menggunakan paket open source di Dataform, lihat Menggunakan dimensi yang berubah secara perlahan di Dataform.
- Untuk mempelajari cara membuat alur kerja SQL dengan JavaScript, lihat Membuat alur kerja SQL Dataform dengan JavaScript.