Dokumen ini menunjukkan cara menggunakan JavaScript untuk membuat elemen alur kerja SQL di Dataform. Anda mungkin ingin menggunakan JavaScript daripada inti Dataform untuk membuat elemen serupa berulang kali dalam alur kerja Anda.
Tentang mengembangkan alur kerja di Dataform dengan JavaScript
Dataform core memungkinkan Anda membuat tindakan alur kerja SQL dengan SQLX dan JavaScript. Dengan JavaScript, Anda dapat membuat tindakan serupa berulang kali dalam alur kerja. Misalnya, Anda dapat membuat tampilan setiap tabel dalam alur kerja dengan menghapus ID pengguna tertentu.
Contoh kode JavaScript berikut memungkinkan Anda membuat tampilan setiap tabel dengan
nilai kolom user_id
yang tidak sesuai dengan salah satu nilai dalam
daftar blocked_user_ids
:
const tableNames = ["user_events", "user_settings", "user_logs"];
tableNames.forEach(tableName => {
publish(tableName + "_blocked_removed").query(
ctx => `
SELECT * FROM ${ctx.ref(tableName)}
WHERE user_id NOT IN (
SELECT user_id
FROM ${ctx.ref("blocked_user_ids")}
)`
);
});
Contoh kode ini membuat tiga tampilan bernama
user_events_blocked_removed
, user_settings_blocked_removed
, dan
user_logs_blocked_removed
yang tidak berisi ID pengguna yang diblokir.
Anda dapat membuat beberapa tindakan dalam satu file JavaScript dengan metode global Dataform dan kode JavaScript ES5 arbitrer, seperti loop dan konstanta.
Anda dapat menentukan tindakan berikut dengan JavaScript di Dataform:
Sebelum memulai
Di konsol Google Cloud, buka halaman Dataform.
Pilih atau buat repositori.
Pilih atau buat ruang kerja pengembangan.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan guna mengembangkan alur kerja SQL dengan JavaScript,
minta administrator untuk memberi Anda
peran IAM Dataform Editor (roles/dataform.editor
) di ruang kerja.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Membuat file JavaScript di Dataform
Simpan file JavaScript untuk definisi dan deklarasi sumber data di direktori definitions/
. Untuk membuat file JavaScript baru di direktori definitions/
, ikuti langkah-langkah berikut:
Di panel Files, di samping
definitions/
, klik menu More.Klik Create file.
Di panel Create new file, lakukan hal berikut:
Di kolom Add a file path, setelah
definitions/
, masukkan nama file diikuti dengan.js
. Contoh,definitions/definitions.js
.Nama file hanya boleh berisi angka, huruf, tanda hubung, dan garis bawah.
Klik Create file.
Menetapkan properti objek alur kerja SQL Dataform dengan JavaScript
Anda dapat menggunakan metode global Dataform berikut untuk membuat objek alur kerja SQL dengan Dataform:
declare
. Digunakan untuk mendeklarasikan sumber data.publish
. Digunakan untuk menentukan tabel.assert
. Digunakan untuk membuat pernyataan.operate
. Digunakan untuk menentukan operasi SQL kustom.
Setiap metode global berisi properti yang dapat Anda gunakan untuk mengonfigurasi objek yang dibuat. Untuk mengetahui informasi selengkapnya tentang metode global dan propertinya, lihat referensi inti Dataform.
Dalam metode publish()
yang membuat tabel, Anda dapat menetapkan properti tabel
dengan meneruskannya sebagai argumen metode kedua.
Untuk meneruskan properti tabel sebagai argumen kedua publish()
, ikuti langkah-langkah berikut:
Di ruang kerja pengembangan, di panel Files, luaskan
definitions/
.Pilih file JavaScript.
Dalam file, tambahkan properti tabel ke metode
publish()
dalam format berikut:method("first_method_argument", { property1: "property1_value", property2: "property2_value", property3: "property3_value", });
Opsional: Klik Format.
Contoh kode berikut menunjukkan cara menetapkan properti ke metode publish()
dengan meneruskan properti sebagai argumen kedua metode:
publish("table1", {
type: "table",
dependencies: ["other_table"],
description: {
"Value is 1"
}
}).query(ctx => "SELECT 1 AS test");
Referensi yang disertakan dalam file JavaScript
Anda dapat mereferensikan fungsi, makro, atau konstanta yang disertakan di dalam file JavaScript. Untuk mengetahui informasi selengkapnya tentang penyertaan di Dataform, lihat Menggunakan kembali variabel dan fungsi dengan penyertaan JavaScript.
Sintaksis untuk mereferensikan include di dalam file JavaScript bergantung pada lokasi file include. Dataform menyimpan file tersebut di direktori include.
Referensi tingkat teratas mencakup
- Untuk mereferensikan file yang disertakan tingkat atas, referensikan nama file saat mendeklarasikan variabel.
Contoh kode berikut mereferensikan variabel serviceName
dan serviceId
dari file includes/service.js
:
const {serviceName, serviceId} = service;
Referensi bertingkat mencakup
Untuk mereferensikan file include bertingkat, masukkan nama file dalam fungsi require JavaScript.
Contoh kode berikut mereferensikan variabel serviceName
dan serviceId
dari file includes/allServices/service.js
:
const {serviceName, serviceId} = require("includes/allServices/service.js");
Menggunakan fungsi kueri Dataform dalam metode JavaScript
Dataform menyediakan sejumlah fungsi bawaan yang dapat Anda gunakan
di dalam kueri, seperti ref
dan self
. Untuk informasi selengkapnya tentang
fungsi bawaan Dataform, lihat
referensi API Dataform.
Untuk menggunakan fungsi kueri bawaan dalam metode JavaScript, ikuti langkah-langkah berikut:
Di ruang kerja pengembangan, di panel Files, luaskan
definitions/
.Pilih file JavaScript.
Dalam file, masukkan metode JavaScript Dataform global.
Dalam metode, masukkan argumen
ctx
yang dapat dikontekstualisasikan.Opsional: Jika Anda menggunakan string template JavaScript, gabungkan argumen yang dapat dikontekstualisasikan dalam tanda petik terbalik ``.
Dalam argumen contextable, masukkan fungsi kueri dengan parameternya sebagai objek konteks.
Opsional: Klik Format.
Contoh kode berikut menunjukkan fungsi kueri ref
yang digabungkan di dalam
argumen yang dapat dikontekstualisasikan dari metode publikasi:
publish("example").query(ctx => `SELECT * FROM ${ctx.ref("other_table")}`);
Mendeklarasikan sumber data alur kerja SQL dengan JavaScript
Anda dapat mendeklarasikan beberapa sumber data dalam satu file deklarasi JavaScript dengan metode JavaScript deklarasi Dataform. Untuk informasi selengkapnya tentang metode deklarasi, lihat Referensi inti Dataform. Untuk informasi selengkapnya tentang sumber data di Dataform, lihat Mendeklarasikan sumber data.
Untuk mendeklarasikan sumber data dalam file JavaScript, ikuti langkah-langkah berikut:
Di ruang kerja pengembangan, di panel Files, luaskan definitions/.
Pilih file JavaScript.
Di file tersebut, masukkan cuplikan kode berikut:
declare({ database: "DATABASE_PROJECT_ID", schema: "BIGQUERY_SCHEMA", name: "RELATION_NAME", });
Ganti kode berikut:
DATABASE_PROJECT_ID
: project ID project yang berisi sumber dataBIGQUERY_SCHEMA
: set data BigQuery tempat adanya hubungan eksternalRELATION_NAME
: nama hubungan yang nantinya dapat Anda gunakan untuk mereferensikan sumber data di Dataform
Untuk mendeklarasikan sumber data lain dalam file yang sama, tambahkan blok
declare
tambahan ke file.Opsional: Klik Format.
Menentukan tabel dengan JavaScript
Anda dapat membuat tabel dengan metode publish
JavaScript Dataform. Untuk informasi selengkapnya tentang metode publikasi, lihat
referensi inti Dataform.
Anda dapat menentukan jenis tabel berikut: tabel, tabel inkremental, dan tampilan. Untuk informasi selengkapnya tentang cara menentukan tabel di Dataform, lihat Membuat tabel.
Untuk menentukan tabel dalam file JavaScript, ikuti langkah-langkah berikut:
Di ruang kerja pengembangan, di panel Files, luaskan
definitions/
.Pilih file JavaScript.
Di file tersebut, masukkan cuplikan kode berikut:
publish("TABLE_NAME").query(ctx => "SELECT_QUERY");
Ganti
TABLE_NAME
dengan nama tabel.Ganti
SELECT_QUERY
dengan pernyataan SQL SELECT yang menentukan tabel.
Untuk menetapkan jenis tabel, menambahkan dependensi tabel, dan menambahkan deskripsi tabel, tetapkan properti objek dari metode
publish
.Untuk menentukan tabel lain dalam file yang sama, ulangi langkah 3 dan langkah 4.
Opsional: Klik Format.
Menentukan pernyataan Dataform manual dengan JavaScript
Anda dapat membuat pernyataan SQL manual dalam file JavaScript dengan metode JavaScript pernyataan Dataform. Untuk informasi selengkapnya tentang metode pernyataan, lihat referensi inti Dataform.
Kueri SQL pernyataan manual harus menampilkan nol baris. Jika kueri menampilkan baris saat dijalankan, pernyataan akan gagal. Anda dapat membuat beberapa pernyataan dalam satu file JavaScript.
Untuk informasi selengkapnya tentang pernyataan di Dataform, lihat Menguji tabel dengan pernyataan.
Untuk membuat pernyataan manual dalam file JavaScript, ikuti langkah-langkah berikut:
Di ruang kerja pengembangan, di panel Files, luaskan
definitions/
.Pilih file JavaScript.
Di file tersebut, masukkan cuplikan kode berikut:
assert("ASSERTION_NAME").query(ctx => "CUSTOM_ASSERTION_QUERY");
Ganti
ASSERTION_NAME
dengan nama untuk pernyataan kustom Anda.Ganti
CUSTOM_ASSERTION_QUERY
dengan kueri pernyataan SQL Anda.
Untuk membuat pernyataan lain dalam file yang sama, ulangi langkah 3.
Opsional: Klik Format.
Contoh kode berikut menunjukkan pernyataan JavaScript yang menyatakan bahwa tidak ada nilai di source_table
yang merupakan NULL
:
assert("assertion1").query(ctx => "SELECT * FROM source_table WHERE value IS NULL");
Menentukan operasi SQL kustom dengan JavaScript
Anda dapat menentukan operasi SQL kustom dalam file JavaScript dengan metode JavaScript operasi Dataform. Untuk mengetahui informasi selengkapnya tentang operasi SQL kustom di Dataform, lihat Menambahkan operasi SQL kustom.
Untuk menentukan operasi SQL kustom dengan JavaScript, ikuti langkah-langkah berikut:
Di ruang kerja pengembangan, di panel Files, luaskan
definitions/
.Pilih file JavaScript.
Di file tersebut, masukkan cuplikan kode berikut:
operate("OPERATION_NAME").queries(ctx => "CUSTOM_SQL_QUERY");
Ganti
OPERATION_NAME
dengan nama untuk operasi kustom.Ganti
CUSTOM_SQL_QUERY
dengan kueri SQL kustom Anda.
Untuk menentukan operasi SQL kustom lainnya dalam file yang sama, ulangi langkah 3.
Opsional: Klik Format.
Contoh kode berikut menunjukkan operasi SQL kustom dalam file JavaScript yang
menyisipkan satu baris baru ke dalam some_table
dan menetapkan test_column
dari baris baru
ke 2
:
operate("operation1").queries("INSERT INTO some_table (test_column) VALUES (2)");
Langkah selanjutnya
- Untuk mempelajari metode JavaScript Dataform dan fungsi kueri bawaan lebih lanjut, lihat referensi inti Dataform.
- Untuk mempelajari lebih lanjut cara mengembangkan di Dataform dengan JavaScript, lihat Pengantar JavaScript di Dataform.