Dokumen ini menunjukkan cara menentukan hubungan antara objek dalam alur kerja SQL di Dataform dengan mendeklarasikan dependensi.
Anda dapat menentukan hubungan dependensi antara objek alur kerja SQL. Dalam hubungan dependensi, eksekusi objek dependen bergantung pada eksekusi objek dependensi. Artinya, Dataform menjalankan dependen setelah dependensi. Anda menentukan hubungan dengan mendeklarasikan dependensi di dalam file definisi SQLX objek dependen.
Deklarasi dependensi membentuk hierarki dependensi alur kerja SQL Anda yang menentukan urutan eksekusi Dataform terhadap objek alur kerja SQL Anda.
Anda dapat menentukan hubungan dependensi antara objek alur kerja SQL berikut:
- Deklarasi sumber data
- Deklarasi sumber data BigQuery yang memungkinkan Anda mereferensikan sumber data ini dalam definisi tabel Dataform dan operasi SQL. Anda dapat menetapkan deklarasi sumber data sebagai dependensi, tetapi tidak sebagai dependen.
- Tables
- Tabel yang Anda buat di Dataform berdasarkan sumber data yang dideklarasikan atau tabel lain dalam alur kerja SQL. Dataform mendukung jenis tabel berikut: tabel, tabel inkremental, tampilan, dan tampilan terwujud. Anda dapat menetapkan tabel sebagai dependensi dan sebagai dependen.
- Operasi SQL kustom
- Pernyataan SQL yang dijalankan Dataform di BigQuery apa adanya, tanpa modifikasi. Anda dapat menetapkan operasi SQL kustom yang ditentukan dalam
file
type: operations
sebagai dependensi dan sebagai dependen. Untuk mendeklarasikan operasi SQL kustom sebagai dependensi dalam fungsiref
, Anda harus menetapkan propertihasOutput
ketrue
dalam file definisi SQLX operasi SQL kustom. - Pernyataan
- Kueri pengujian kualitas data yang dapat Anda gunakan untuk menguji data tabel.
Dataform menjalankan pernyataan setiap kali memperbarui alur kerja SQL Anda dan
memberi tahu Anda jika ada pernyataan yang gagal. Anda dapat menetapkan pernyataan yang ditentukan dalam
file
type: assertion
sebagai dependensi dan sebagai dependen dengan mendeklarasikan dependensi di blokconfig
.
Anda dapat menentukan hubungan dependensi dengan cara berikut:
- Deklarasikan dependensi menggunakan fungsi
ref
inti Dataform untuk mereferensikan dependensi dalam pernyataanSELECT
. - Deklarasikan daftar dependensi dalam blok
config
file definisi SQLX.
Sebelum memulai
- Buat dan lakukan inisialisasi ruang kerja pengembangan di repositori Anda.
- Opsional: Deklarasikan sumber data.
- Buat minimal dua objek alur kerja SQL: tabel, pernyataan, deklarasi sumber data, atau operasi.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan guna mendeklarasikan dependensi untuk tabel, pernyataan, deklarasi sumber data, dan operasi SQL kustom, 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.
Mendeklarasikan dependensi sebagai argumen fungsi ref
Untuk mereferensikan dan mendeklarasikan dependensi secara otomatis dalam pernyataan SELECT
,
tambahkan dependensi sebagai argumen fungsi ref
.
Fungsi ref
adalah fungsi bawaan inti Dataform yang memungkinkan Anda
mereferensikan dan secara otomatis bergantung pada tabel, deklarasi sumber data, atau
operasi SQL kustom dengan properti hasOutput
yang ditetapkan ke true
dalam alur kerja SQL Anda.
Untuk mengetahui informasi selengkapnya tentang fungsi ref
, lihat
Referensi metode konteks inti Dataform.
Untuk informasi selengkapnya tentang penggunaan fungsi ref
dalam definisi tabel, lihat Tentang definisi tabel.
Contoh kode berikut menunjukkan deklarasi sumber data source_data
yang ditambahkan sebagai argumen fungsi ref
dalam file definisi SQLX incremental_table.sqlx
dari tabel inkremental:
// filename is incremental_table.sqlx
config { type: "incremental" }
SELECT * FROM ${ref("source_data")}
Dalam contoh kode sebelumnya, source_data
secara otomatis dideklarasikan sebagai
dependensi incremental_table
.
Contoh kode berikut menunjukkan file SQLX definisi tabel some_table
yang ditambahkan
sebagai argumen fungsi ref
dalam file definisi SQLX custom_assertion.sqlx
dari pernyataan:
// filename is custom_assertion.sqlx
config { type: "assertion" }
SELECT
*
FROM
${ref("some_table")}
WHERE
a is null
or b is null
or c is null
Dalam contoh kode sebelumnya, some_table
secara otomatis dideklarasikan sebagai
dependensi custom_assertion
. Selama eksekusi, Dataform akan mengeksekusi
some_table
terlebih dahulu, lalu mengeksekusi custom_assertion
setelah some_table
dibuat.
Mendeklarasikan dependensi di blok config
Untuk mendeklarasikan dependensi yang tidak direferensikan dalam definisi pernyataan SQL dependen, tetapi perlu dieksekusi sebelum tabel, pernyataan, atau operasi SQL kustom, ikuti langkah-langkah berikut:
- Di ruang kerja pengembangan, di panel Files, luaskan
direktori
definitions/
. - Pilih file SQLX operasi SQL kustom, tabel, atau pernyataan yang ingin Anda edit.
Di blok
config
file, masukkan cuplikan kode berikut:dependencies: [ "DEPENDENCY", ]
Ganti DEPENDENCY dengan target string—misalnya, nama file tindakan yang ingin Anda tambahkan sebagai dependensi. Anda dapat memasukkan beberapa target, yang dipisahkan dengan koma.
Opsional: Klik Format.
Contoh kode berikut menunjukkan tabel some_table
dan pernyataan
some_assertion
yang ditambahkan sebagai dependensi ke blok config
file definisi tabel:
config { dependencies: [ "some_table", "some_assertion" ] }
Langkah selanjutnya
- Untuk mempelajari cara menetapkan pernyataan sebagai dependensi, lihat Menguji tabel dengan pernyataan.
- Untuk mempelajari cara mendeklarasikan sumber data, lihat Mendeklarasikan sumber data.
- Untuk mempelajari cara menentukan operasi SQL kustom, lihat Menambahkan operasi SQL kustom.
- Untuk mempelajari cara menggunakan kembali kode di seluruh alur kerja SQL dengan menyertakan, lihat Menggunakan kembali variabel dan fungsi dengan menyertakan.