Dokumen ini menunjukkan cara menentukan tabel dengan Inti formulir data dalam Dataform.
Tentang definisi tabel
Untuk menentukan tabel, tentukan jenis tabel dan tulis pernyataan SELECT
dalam
file SQLX type: "table"
. Dataform kemudian mengompilasi
kode inti Dataform Anda ke SQL, mengeksekusi kode SQL, dan membuat
tabel yang ditentukan di BigQuery.
Dalam pernyataan SELECT
inti Dataform, Anda menentukan struktur tabel dan
mereferensikan objek lain dalam alur kerja SQL Anda.
Selain menentukan tabel dalam file SLQX type: "table"
, Anda dapat membuat
tabel kosong dengan menentukan kueri SQL kustom dalam file SQLX type: "operations"
.
Untuk mengetahui informasi selengkapnya, lihat
Membuat tabel kosong.
Dependensi referensi dengan ref
Untuk mereferensikan objek alur kerja SQL dalam pernyataan SELECT
dan secara otomatis
menambahkannya sebagai dependensi, gunakan fungsi ref
. Formulir data menjalankan dependensi sebelum tabel yang bergantung padanya untuk memastikan pengurutan pipeline yang benar.
Fungsi ref
adalah fungsi bawaan inti Dataform yang
penting untuk pengelolaan dependensi dalam Dataform. Fungsi ref
memungkinkan
Anda mereferensikan dan secara otomatis bergantung pada objek berikut yang ditentukan dalam
alur kerja Dataform SQL Anda, bukan melakukan hard coding pada nama skema dan tabel:
- tabel yang berisi semua jenis tabel yang didukung
- deklarasi sumber data
- operasi SQL kustom dengan properti
hasOutput
yang ditetapkan ketrue
Dataform menggunakan fungsi ref
untuk membuat hierarki dependensi dari semua tabel yang akan dibuat atau diupdate.
Setelah mengompilasi, Dataform menambahkan pernyataan boilerplate seperti CREATE
, REPLACE
, INSERT
, atau MERGE
ke pernyataan SQL.
Contoh kode berikut menunjukkan definisi tabel dengan penggunaan
fungsi ref
:
config { type: "table" }
SELECT
order_date AS date,
order_id AS order_id,
order_status AS order_status,
SUM(item_count) AS item_count,
SUM(amount) AS revenue
FROM ${ref("store_clean")}
GROUP BY 1, 2
Dalam fungsi ref
, berikan nama tabel atau deklarasi sumber data yang ingin Anda andalkan. Kolom ini biasanya berupa nama file SQLX yang menentukan tabel atau deklarasi sumber data tersebut.
Jika nama tabel diganti, gunakan nama yang diganti dalam fungsi ref
.
Misalnya, referensikan tabel dengan config { name: "overridden_name" }
sebagai ref("overridden_name")
. Untuk mengetahui informasi selengkapnya tentang mengganti nama tabel,
lihat Mengonfigurasi setelan tabel tambahan.
Jika memiliki beberapa tabel bernama sama dalam skema yang berbeda, Anda dapat mereferensikan tabel tertentu dengan memberikan dua argumen ke fungsi ref
: nama skema dan nama tabel.
Contoh kode berikut menunjukkan fungsi ref
dengan dua argumen untuk menentukan tabel dalam skema tertentu:
config { type: "table" }
SELECT * FROM ${ref("schema", "store_clean")}
Anda juga dapat menambahkan dependensi tabel secara manual ke blok config
untuk tabel,
pernyataan, deklarasi sumber data, atau operasi SQL kustom yang tidak
direferensikan dalam fungsi ref
di pernyataan SELECT
. Dataform
menjalankan dependensi ini sebelum tabel dependen.
Contoh kode berikut menunjukkan dependensi tabel dalam blok config
:
config { dependencies: [ "unreferenced_table" ] }
SELECT * FROM ...
Untuk mengetahui informasi selengkapnya tentang pengelolaan dependensi dalam alur kerja SQL, lihat Mendeklarasikan dependensi.
Mereferensikan tabel lain dengan resolve
Fungsi resolve
memungkinkan Anda mereferensikan tabel atau deklarasi sumber data dalam pernyataan SELECT
seperti fungsi ref
, tetapi tidak menambahkan referensi sebagai dependensi. Artinya, objek yang direferensikan menggunakan resolve
tidak akan memengaruhi eksekusi tabel yang menggunakan resolve
.
Untuk mengetahui informasi selengkapnya tentang fungsi inti Dataform bawaan, lihat Referensi inti Dataform.
Sebelum memulai
- Buat dan inisialisasi ruang kerja pengembangan di repositori Anda.
- Opsional: Deklarasikan sumber data.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk menentukan tabel,
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.
Membuat file SQLX untuk definisi tabel
Simpan file SQLX definisi tabel di direktori definitions/
. Untuk membuat
file SQLX baru di direktori definitions/
, ikuti langkah-langkah berikut:
Di Konsol Cloud, buka halaman Dataform.
Untuk membuka repositori, klik nama repositori.
Untuk membuka ruang kerja pengembangan, klik nama ruang kerja.
Di panel Files, di samping
definitions/
, klik menu More.Klik Create file.
Di kolom Add a file path, masukkan nama file, diikuti dengan
.sqlx
setelahdefinitions/
. Contohnya,definitions/my-table.sqlx
Nama file hanya boleh berisi angka, huruf, tanda hubung, dan garis bawah.
Klik Create file.
Menentukan jenis tabel
Untuk membuat definisi jenis tabel baru, ikuti langkah-langkah berikut:
- Di ruang kerja pengembangan Anda, di panel Files, luaskan direktori
definitions/
. - Pilih file SQLX definisi tabel yang ingin Anda edit.
Dalam file tersebut, masukkan cuplikan kode berikut:
config { type: "TABLE_TYPE" }
Ganti TABLE_TYPE dengan salah satu jenis tabel berikut:
table
incremental
view
Opsional: Untuk menentukan tampilan terwujud, masukkan properti
materialized
padatype: "view"
dalam format berikut:config { type: "view", materialized: true }
Untuk mengetahui informasi selengkapnya, lihat
ITableConfig
Referensi inti Dataform.Opsional: Klik Format.
Menentukan struktur dan dependensi tabel
Untuk menulis pernyataan SELECT
definisi tabel serta menentukan struktur dan dependensi tabel, ikuti langkah-langkah berikut:
- Di ruang kerja pengembangan Anda, di panel Files, luaskan
direktori
definitions/
. - Pilih file SQLX definisi tabel yang ingin Anda edit.
- Di bawah blok
config
, tulis pernyataanSELECT
. - Opsional: Klik Format.
Contoh kode berikut menunjukkan definisi tabel dengan pernyataan SELECT
dan fungsi ref
:
config { type: "table" }
SELECT
customers.id AS id,
customers.first_name AS first_name,
customers.last_name AS last_name,
customers.email AS email,
customers.country AS country,
COUNT(orders.id) AS order_count,
SUM(orders.amount) AS total_spent
FROM
dataform-samples.dataform_sample.crm_customers AS customers
LEFT JOIN ${ref('order_stats')} orders
ON customers.id = orders.customer_id
WHERE
customers.id IS NOT NULL
AND customers.first_name <> 'Internal account'
AND country IN ('UK', 'US', 'FR', 'ES', 'NG', 'JP')
GROUP BY 1, 2, 3, 4, 5
Menambahkan dependensi tabel manual
Untuk menambahkan dependensi tabel yang tidak direferensikan dalam pernyataan SELECT
,
tetapi perlu dijalankan sebelum tabel saat ini, ikuti langkah-langkah berikut:
- Di ruang kerja pengembangan Anda, di panel Files, luaskan
direktori
definitions/
. - Pilih file SQLX definisi tabel yang ingin Anda edit.
Di blok
config
tabel, masukkan cuplikan kode berikut:dependencies: [ "DEPENDENCY_TABLE", ]
Ganti DEPENDENCY_TABLE dengan nama file tabel yang ingin Anda tambahkan sebagai dependensi. Anda dapat memasukkan beberapa nama file.
Opsional: Klik Format.
Contoh kode berikut menunjukkan dua tabel yang ditambahkan sebagai dependensi tabel manual
ke blok config
file definisi tabel:
config { dependencies: [ "some_table", "some_other_table" ] }
Langkah selanjutnya
- Untuk mempelajari cara mengonfigurasi tabel inkremental, lihat Mengonfigurasi tabel inkremental.
- Untuk mempelajari cara mengonfigurasi partisi dan cluster tabel, lihat Membuat partisi dan cluster tabel.
- Untuk mempelajari cara menambahkan dokumentasi ke tabel, lihat Menambahkan dokumentasi tabel.
- Untuk mempelajari cara menguji data tabel dengan pernyataan, lihat Menguji tabel dengan pernyataan.
- Untuk mempelajari cara menentukan tabel dengan JavaScript, lihat Membuat alur kerja SQL dengan JavaScript.
- Untuk mempelajari cara mengonfigurasi setelan tabel tambahan, lihat Mengonfigurasi setelan tabel tambahan.