Buat tabel

Dokumen ini menunjukkan cara menentukan tabel dengan inti Dataform di Dataform.

Tentang definisi tabel

Untuk menentukan tabel, Anda menentukan jenis tabel dan menulis pernyataan SELECT dalam file SQLX type: "table". Kemudian, Dataform mengompilasi kode inti Dataform ke dalam SQL, menjalankan kode SQL, dan membuat tabel yang ditentukan di BigQuery.

Dalam pernyataan SELECT inti Dataform, Anda menentukan struktur tabel dan mereferensikan objek lain dari 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.

Mereferensikan dependensi dengan ref

Untuk mereferensikan objek alur kerja SQL dalam pernyataan SELECT dan secara otomatis menambahkannya sebagai dependensi, gunakan fungsi ref. Dataform mengeksekusi dependensi sebelum tabel yang bergantung padanya untuk memastikan pengurutan pipeline yang benar.

Fungsi ref adalah fungsi bawaan inti Dataform yang sangat penting untuk pengelolaan dependensi di Dataform. Fungsi ref memungkinkan Anda mereferensikan dan secara otomatis bergantung pada objek berikut yang ditentukan dalam alur kerja SQL Dataform, bukan melakukan hard code pada nama skema dan tabel:

Dataform menggunakan fungsi ref untuk membuat hierarki dependensi dari semua tabel yang akan dibuat atau diperbarui.

Setelah mengompilasi, Dataform akan 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, Anda memberikan nama deklarasi tabel atau sumber data yang ingin Anda andalkan. Ini biasanya adalah nama file SQLX tempat deklarasi tabel atau sumber data tersebut ditentukan.

Jika nama tabel diganti, gunakan nama yang diganti dalam fungsi ref. Misalnya, referensikan tabel dengan config { name: "overridden_name" } sebagai ref("overridden_name"). Untuk informasi selengkapnya tentang cara mengganti nama tabel, lihat Mengonfigurasi setelan tabel tambahan.

Jika memiliki beberapa tabel dengan nama yang 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 dalam pernyataan SELECT. Dataform menjalankan dependensi ini sebelum tabel dependen.

Contoh kode berikut menunjukkan dependensi tabel di 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 deklarasi tabel atau sumber data dalam pernyataan SELECT seperti fungsi ref, tetapi tidak menambahkan referensi sebagai dependensi. Hal ini berarti bahwa objek yang dirujuk menggunakan resolve tidak memengaruhi eksekusi tabel yang menggunakan resolve.

Untuk mengetahui informasi selengkapnya tentang fungsi inti Dataform bawaan, lihat referensi inti Dataform.

Sebelum memulai

  1. Buat dan lakukan inisialisasi ruang kerja pengembangan di repositori Anda.
  2. Opsional: Deklarasikan sumber data.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan guna 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 ke project, folder, dan organisasi.

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:

  1. Di Cloud Console, buka halaman Dataform.

    Buka halaman Dataform

  2. Untuk membuka repositori, klik nama repositori.

  3. Untuk membuka ruang kerja pengembangan, klik nama ruang kerja.

  4. Di panel Files, di samping definitions/, klik menu More.

  5. Klik Create file.

  6. Di kolom Add a file path, masukkan nama file, diikuti dengan .sqlx setelah definitions/. Contohnya, definitions/my-table.sqlx

    Nama file hanya boleh berisi angka, huruf, tanda hubung, dan garis bawah.

  7. Klik Create file.

Menentukan jenis tabel

Untuk membuat definisi jenis tabel baru, ikuti langkah-langkah berikut:

  1. Di ruang kerja pengembangan, di panel Files, luaskan direktori definitions/.
  2. Pilih file SQLX definisi tabel yang ingin Anda edit.
  3. Di file tersebut, masukkan cuplikan kode berikut:

    config { type: "TABLE_TYPE" }
    

    Ganti TABLE_TYPE dengan salah satu jenis tabel berikut:

    • table
    • incremental
    • view
  4. Opsional: Untuk menentukan tampilan terwujud, masukkan properti materialized di bagian type: "view" dalam format berikut:

    config {
      type: "view",
      materialized: true
    }
    

    Untuk informasi selengkapnya, lihat referensi inti Dataform ITableConfig.

  5. Opsional: Klik Format.

Menentukan struktur dan dependensi tabel

Untuk menulis pernyataan SELECT definisi tabel dan menentukan struktur serta dependensi tabel, ikuti langkah-langkah berikut:

  1. Di ruang kerja pengembangan, di panel Files, luaskan direktori definitions/.
  2. Pilih file SQLX definisi tabel yang ingin Anda edit.
  3. Di bawah blok config, tulis pernyataan SELECT.
  4. 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 dieksekusi sebelum tabel saat ini, ikuti langkah-langkah berikut:

  1. Di ruang kerja pengembangan, di panel Files, luaskan direktori definitions/.
  2. Pilih file SQLX definisi tabel yang ingin Anda edit.
  3. 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.

  4. 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