Menguji kualitas data

Dokumen ini menunjukkan cara menggunakan Dataform core untuk membuat pernyataan tabel Dataform dan menguji kode alur kerja Anda.

Tentang pernyataan

Pernyataan adalah kueri pengujian kualitas data yang menemukan baris yang melanggar satu atau beberapa kondisi yang ditentukan dalam kueri. Jika kueri menampilkan baris apa pun, pernyataan akan gagal. Dataform menjalankan pernyataan setiap kali memperbarui alur kerja Anda dan akan memberi tahu Anda jika ada pernyataan yang gagal.

Dataform secara otomatis membuat tampilan di BigQuery yang berisi hasil kueri pernyataan yang dikompilasi. Seperti yang dikonfigurasi dalam file setelan alur kerja Anda, Dataform membuat tampilan ini dalam skema pernyataan tempat Anda dapat memeriksa hasil pernyataan.

Misalnya, untuk skema dataform_assertions default, Dataform membuat tampilan di BigQuery dalam format berikut: dataform_assertions.assertion_name.

Anda dapat membuat pernyataan untuk semua jenis tabel Dataform: tabel, tabel inkremental, tampilan, dan tampilan terwujud.

Anda dapat membuat pernyataan dengan cara berikut:

Sebelum memulai

  1. Di konsol Google Cloud , buka halaman Dataform.

    Buka halaman Dataform

  2. Pilih atau buat repositori.

  3. Pilih atau buat ruang kerja pengembangan.

  4. Buat tabel.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan guna membuat pernyataan, 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 pernyataan bawaan

Anda dapat menambahkan pernyataan Dataform bawaan ke blok config tabel. Dataform menjalankan pernyataan ini setelah pembuatan tabel. Setelah Dataform membuat tabel, Anda dapat melihat apakah pernyataan lulus di tab Log eksekusi alur kerja ruang kerja Anda.

Anda dapat membuat pernyataan berikut di blok config tabel:

  • nonNull

    Kondisi ini menegaskan bahwa kolom yang ditentukan tidak boleh null di semua baris tabel. Kondisi ini digunakan untuk kolom yang tidak boleh bernilai null.

    Contoh kode berikut menunjukkan pernyataan nonNull dalam blok config tabel:

config {
  type: "table",
  assertions: {
    nonNull: ["user_id", "customer_id", "email"]
  }
}
SELECT ...
  • rowConditions

    Kondisi ini menegaskan bahwa semua baris tabel mengikuti logika kustom yang Anda tentukan. Setiap kondisi baris adalah ekspresi SQL kustom, dan setiap baris tabel dievaluasi terhadap setiap kondisi baris. Pernyataan akan gagal jika ada baris tabel yang menghasilkan false.

    Contoh kode berikut menunjukkan pernyataan rowConditions kustom dalam blok config dari tabel inkremental:

config {
  type: "incremental",
  assertions: {
    rowConditions: [
      'signup_date is null or signup_date > "2022-08-01"',
      'email like "%@%.%"'
    ]
  }
}
SELECT ...
  • uniqueKey

    Kondisi ini menyatakan bahwa, dalam kolom tertentu, tidak ada baris tabel yang memiliki nilai yang sama.

    Contoh kode berikut menunjukkan pernyataan uniqueKey di blok config tampilan:

config {
  type: "view",
  assertions: {
    uniqueKey: ["user_id"]
  }
}
SELECT ...
  • uniqueKeys

    Kondisi ini menyatakan bahwa, di kolom yang ditentukan, tidak ada baris tabel yang memiliki nilai yang sama. Pernyataan gagal jika ada lebih dari satu baris dalam tabel dengan nilai yang sama untuk semua kolom yang ditentukan.

    Contoh kode berikut menunjukkan pernyataan uniqueKeys dalam blok config tabel:

config {
  type: "table",
  assertions: {
    uniqueKeys: [["user_id"], ["signup_date", "customer_id"]]
  }
}
SELECT ...

Tambahkan pernyataan ke blok config

Untuk menambahkan pernyataan ke blok config tabel, ikuti langkah-langkah berikut:

  1. Di ruang kerja pengembangan Anda, di panel Files, pilih file SQLX definisi tabel.
  2. Di blok config file tabel, masukkan assertions: {}.
  3. Di dalam assertions: {}, tambahkan pernyataan Anda.
  4. Opsional: Klik Format.

Contoh kode berikut menunjukkan kondisi yang ditambahkan di blok config:

config {
  type: "table",
  assertions: {
    uniqueKey: ["user_id"],
    nonNull: ["user_id", "customer_id"],
    rowConditions: [
      'signup_date is null or signup_date > "2019-01-01"',
      'email like "%@%.%"'
    ]
  }
}
SELECT ...

Membuat pernyataan manual dengan SQLX

Pernyataan manual adalah kueri SQL yang Anda tulis dalam file SQLX khusus. Kueri SQL pernyataan manual harus menampilkan nol baris. Jika kueri menampilkan baris saat dijalankan, pernyataan akan gagal.

Untuk menambahkan pernyataan manual dalam file SQLX baru, ikuti langkah-langkah berikut:

  1. Di panel Files, di samping definitions/, klik menu More .
  2. Klik Create file.
  3. Di kolom Add a file path, masukkan nama file yang diikuti dengan .sqlx. Misalnya, definitions/custom_assertion.sqlx.

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

  4. Klik Create file.

  5. Di panel Files, klik file baru.

  6. Dalam file, masukkan:

    config {
      type: "assertion"
    }
    
  7. Di bawah blok config, tulis kueri SQL atau beberapa kueri Anda.

  8. Opsional: Klik Format.

Contoh kode berikut menunjukkan pernyataan manual dalam file SQLX yang menyatakan bahwa kolom A, B, dan c tidak pernah NULL di sometable:

config { type: "assertion" }

SELECT
  *
FROM
  ${ref("sometable")}
WHERE
  a IS NULL
  OR b IS NULL
  OR c IS NULL

Langkah berikutnya