Dokumen ini menunjukkan cara menentukan hubungan antar-objek dalam alur kerja SQL Anda di Dataform dengan mendeklarasikan dependensi.
Anda dapat menentukan hubungan dependensi antar-objek di alur kerja SQL. Dalam hubungan dependensi, eksekusi objek dependen bergantung pada eksekusi objek dependensi. Ini berarti Dataform mengeksekusi dependensi setelah dependensi. Anda menentukan hubungan dengan mendeklarasikan dependensi di dalam file definisi SQLX objek dependen.
Deklarasi dependensi menyusun hierarki dependensi alur kerja SQL yang menentukan urutan Dataform menjalankan 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 bukan sebagai dependen.
- Tables
- Tabel yang Anda buat dalam Dataform berdasarkan sumber data yang dideklarasikan atau tabel lain dalam alur kerja SQL Anda. 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 Dataform berjalan di BigQuery sebagaimana adanya, tanpa modifikasi. Anda dapat menetapkan operasi SQL kustom yang ditentukan dalam
file
type: operations
sebagai dependensi dan dependen. Untuk mendeklarasikan operasi SQL kustom sebagai dependensi dalam fungsiref
, Anda harus menetapkan propertihasOutput
ketrue
dalam file definisi SQLX operasi SQL kustom. - Pernyataan
- Kueri uji 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 dalam blokconfig
.
Anda dapat menentukan hubungan dependensi dengan cara berikut:
- Deklarasikan dependensi menggunakan fungsi inti Dataform
ref
untuk mereferensikan dependensi dalam pernyataanSELECT
. - Deklarasikan daftar dependensi dalam blok
config
file definisi SQLX.
Sebelum memulai
- Buat dan inisialisasi ruang kerja pengembangan di repositori Anda.
- Opsional: Deklarasikan sumber data.
- Buat minimal dua objek alur kerja SQL: tabel, pernyataan, deklarasi sumber data, atau operations.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk 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.
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 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 mengetahui 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 SQLite
custom_assertion.sqlx
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 dalam blok config
Untuk mendeklarasikan dependensi yang tidak direferensikan dalam definisi pernyataan SQL dependensi, tetapi perlu dijalankan sebelum tabel, pernyataan, atau operasi SQL kustom, ikuti langkah-langkah berikut:
- Di ruang kerja pengembangan Anda, di panel Files, luaskan
direktori
definitions/
. - Pilih tabel, pernyataan, atau file SQLX operasi SQL kustom yang ingin Anda edit.
Di blok
config
file, masukkan cuplikan kode berikut:dependencies: [ "DEPENDENCY", ]
Ganti DEPENDENCY dengan nama file tabel, pernyataan, deklarasi sumber data, atau operasi SQL kustom yang ingin Anda tambahkan sebagai dependensi. Anda dapat memasukkan beberapa nama file 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 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 penyertaan, lihat Menggunakan kembali variabel dan fungsi dengan penyertaan.