Ringkasan kualitas data otomatis

Dokumen ini menjelaskan kualitas data otomatis Dataplex, yang memungkinkan Anda menentukan dan mengukur kualitas data. Anda dapat mengotomatiskan pemindaian data, memvalidasi data berdasarkan aturan yang ditentukan, dan mencatat pemberitahuan jika data Anda tidak memenuhi persyaratan kualitas. Anda dapat mengelola aturan kualitas data dan deployment sebagai kode, sehingga meningkatkan integritas pipeline produksi data.

Anda dapat memulai dengan menggunakan rekomendasi aturan pembuatan profil data Dataplex, atau dengan membuat aturan kustom di konsol Google Cloud. Dataplex menyediakan pemantauan, pemecahan masalah, dan pemberitahuan Cloud Logging yang terintegrasi dengan kualitas data otomatis Dataplex.

Model konseptual

Pemindaian kualitas data menerapkan aturan kualitas ke data tabel untuk melaporkan hasil.

Pemindaian data adalah tugas Dataplex yang mengambil sampel data dari BigQuery dan Cloud Storage serta menyimpulkan berbagai jenis metadata. Untuk mengukur kualitas tabel menggunakan kualitas data otomatis, Anda membuat objek DataScan dari jenis data quality. Pemindaian hanya berjalan di satu tabel BigQuery. Pemindaian menggunakan resource di project tenant Google, sehingga Anda tidak perlu menyiapkan infrastruktur Anda sendiri.

Membuat dan menggunakan pemindaian kualitas data terdiri dari langkah-langkah berikut:

  1. Menentukan aturan kualitas data
  2. Mengonfigurasi eksekusi aturan
  3. Menganalisis hasil pemindaian kualitas data
  4. Menyiapkan pemantauan dan pemberitahuan
  5. Memecahkan masalah kegagalan kualitas data

Definisi aturan

Aturan kualitas data yang terkait dengan pemindaian kualitas data menentukan ekspektasi data. Anda dapat membuat aturan kualitas data dengan cara berikut:

Aturan standar

Dataplex mendukung dua kategori aturan standar: tingkat baris atau agregat.

Tingkat baris

Untuk aturan kategori tingkat baris, ekspektasi diterapkan pada setiap baris data. Setiap baris secara independen lulus atau gagal memenuhi kondisi. Misalnya, column_A_value < 1.

Pemeriksaan tingkat baris mengharuskan Anda menentukan nilai minimum lulus. Jika persentase baris yang lulus aturan berada di bawah nilai minimum, aturan akan gagal.

Agregat

Untuk aturan gabungan, ekspektasi diterapkan terhadap satu nilai yang digabungkan di seluruh data. Contoh, Avg(someCol) >= 10 Agar lulus, pemeriksaan harus dievaluasi ke true boolean. Aturan gabungan tidak memberikan jumlah lulus atau gagal yang independen untuk setiap baris.

Untuk kedua kategori aturan tersebut, Anda dapat menetapkan parameter berikut:

  • Kolom tempat aturan diterapkan.
  • Dimensi dari kumpulan dimensi standar.

Tabel berikut mencantumkan jenis aturan agregat dan tingkat baris yang didukung:

Jenis aturan
(Nama di konsol Google Cloud)
Aturan tingkat baris atau gabungan Deskripsi Jenis kolom yang didukung Parameter khusus aturan
RangeExpectation
(Pemeriksaan Rentang)
Tingkat baris Periksa apakah nilainya antara min dan maks. Semua kolom jenis numerik, tanggal, dan stempel waktu. Wajib:
  • Persentase nilai minimum kelulusan
  • Nilai min atau max: Tentukan setidaknya satu nilai.
Opsional:
  • Aktifkan strict min: Jika diaktifkan, pemeriksaan aturan akan menggunakan ">", bukan ">=".
  • Aktifkan strict max: Jika diaktifkan, pemeriksaan aturan akan menggunakan "<", bukan "<=".
  • Aktifkan ignore null: Jika diaktifkan, nilai null akan diabaikan dalam pemeriksaan aturan.
NonNullExpectation
(Pemeriksaan null)
Tingkat baris Validasi bahwa nilai kolom bukan NULL. Semua jenis kolom yang didukung. Wajib:
  • Persentase nilai minimum kelulusan.
SetExpectation
(Set check)
Tingkat baris Periksa apakah nilai dalam kolom adalah salah satu nilai yang ditentukan dalam set. Semua jenis kolom yang didukung, kecuali Record dan Struct. Wajib:
  • Kumpulan nilai string yang akan diperiksa.
  • Persentase nilai minimum kelulusan.
Opsional:
  • Aktifkan ignore null: Jika diaktifkan, nilai null akan diabaikan dalam pemeriksaan aturan.
RegexExpectation
(Pemeriksaan ekspresi reguler)
Tingkat baris Periksa nilai berdasarkan ekspresi reguler yang ditentukan. String Wajib:
  • Pola ekspresi reguler yang digunakan untuk memeriksa.
  • Persentase nilai minimum kelulusan.
  • Catatan: Google Standard SQL menyediakan dukungan ekspresi reguler menggunakan library re2; Lihat dokumentasi tersebut untuk mengetahui sintaksis ekspresi regulernya.
Opsional:
  • Aktifkan ignore null: Jika diaktifkan, nilai null akan diabaikan dalam pemeriksaan aturan.
Uniqueness
(Pemeriksaan Keunikan)
Agregat Periksa apakah semua nilai dalam kolom bersifat unik. Semua jenis kolom yang didukung, kecuali Record dan Struct. Wajib:
  • Kolom dan dimensi dari parameter yang didukung.
Opsional:
  • Aktifkan ignore null: Jika diaktifkan, nilai null akan diabaikan dalam pemeriksaan aturan.
StatisticRangeExpectation
(Pemeriksaan statistik)
Agregat Periksa apakah ukuran statistik yang diberikan sesuai dengan ekspektasi rentang. Semua jenis kolom numerik yang didukung. Wajib:
  • Nilai mean, min, atau max: Tentukan minimal satu nilai.
Opsional:
  • Aktifkan strict min: Jika diaktifkan, pemeriksaan aturan akan menggunakan ">", bukan ">=".
  • Aktifkan strict max: Jika diaktifkan, pemeriksaan aturan akan menggunakan "<", bukan "<=".

Jenis aturan SQL kustom yang didukung

Aturan SQL memberikan fleksibilitas untuk memperluas validasi dengan logika kustom. Aturan ini memiliki jenis berikut.

Jenis aturan Aturan tingkat baris atau gabungan Deskripsi Jenis kolom yang didukung Parameter khusus aturan Contoh
Kondisi baris Tingkat baris

Tentukan ekspektasi untuk setiap baris dengan menentukan ekspresi SQL dalam klausa WHERE. Ekspresi SQL harus dievaluasi ke true (lulus) atau false (gagal) per baris. Dataplex menghitung persentase baris yang memenuhi ekspektasi ini dan membandingkan nilai ini dengan persentase nilai minimum yang lulus untuk menentukan keberhasilan atau kegagalan aturan.

Ekspresi dapat menyertakan referensi ke tabel lain, misalnya, untuk membuat pemeriksaan integritas referensi.

Semua kolom Wajib:
  • Kondisi SQL yang akan digunakan
  • Persentase nilai minimum kelulusan
  • Dimensi
Opsional:
  • Kolom yang akan dikaitkan dengan aturan ini.
grossWeight <= netWeight
Kondisi tabel
(ekspresi SQL gabungan)
Agregat

Aturan ini dieksekusi sekali per tabel. Berikan ekspresi SQL yang dievaluasi ke boolean true (lulus) atau false (gagal).

Ekspresi SQL dapat menyertakan referensi ke tabel lain menggunakan subkueri ekspresi.

Semua kolom Wajib:
  • Kondisi SQL yang akan digunakan
  • Dimensi
Opsional:
  • Kolom yang akan dikaitkan dengan aturan ini

Contoh agregat sederhana:
avg(price) > 100

Menggunakan subkueri ekspresi untuk membandingkan nilai di seluruh tabel yang berbeda:
(SELECT COUNT(*) FROM `example_project.example_dataset.different-table`) < COUNT(*)

Pernyataan SQL Agregat

Aturan pernyataan menggunakan kueri kualitas data untuk menemukan baris yang gagal memenuhi satu atau beberapa kondisi yang ditentukan dalam kueri. Berikan pernyataan SQL yang dievaluasi untuk menampilkan baris yang cocok dengan status tidak valid. Jika kueri menampilkan baris apa pun, aturan akan gagal.

Hapus titik koma di akhir dari pernyataan SQL.

Pernyataan SQL dapat menyertakan referensi ke tabel lain menggunakan subkueri ekspresi.

Semua kolom Wajib:
  • Pernyataan SQL untuk memeriksa status yang tidak valid
  • Dimensi
Opsional:
  • Kolom yang akan dikaitkan dengan aturan ini.

Contoh gabungan sederhana untuk memastikan bahwa discount_pct tidak lebih besar dari 100:
SELECT * FROM example_project.example_dataset.table WHERE discount_pct > 100

Menggunakan subkueri ekspresi untuk membandingkan nilai di seluruh tabel yang berbeda:
SELECT * FROM `example_project.example_dataset.different-table` WHERE gross_weight > (SELECT avg(gross_weight) FROM `example_project.example_dataset.different-table`)

Untuk contoh aturan, lihat contoh aturan kualitas data otomatis.

Untuk fungsi SQL yang didukung, lihat referensi GoogleSQL.

Dimensi

Dimensi memungkinkan Anda menggabungkan hasil beberapa aturan kualitas data untuk pemantauan dan pemberitahuan. Anda harus mengaitkan setiap aturan kualitas data dengan dimensi. Dataplex mendukung dimensi berikut:

  • Keaktualan
  • Volume
  • Kelengkapan
  • Validitas
  • Konsistensi
  • Akurasi
  • Keunikan

Input yang diketik dalam aturan

Semua parameter nilai diteruskan sebagai nilai string ke API. Dataplex mewajibkan input untuk mengikuti format yang ditentukan BigQuery.

Parameter berjenis biner dapat diteruskan sebagai string yang dienkode base64.

Jenis Format yang didukung Contoh
Biner Nilai yang dienkode dengan base64 YXBwbGU=
Stempel waktu YYYY-[M]M-[D]D[( |T)[H]H:[M]M:[S]S[.F]] [time_zone]
ATAU YYYY-[M]M-[D]D[( |T)[H]H:[M]M:[S]S[.F]][time_zone_offset]
27-09-2014 12:30:00.45-08
Tanggal YYYY-M[M]-D[D] 2014-09-27
Waktu [H]H:[M]M:[S]S[.DDDDDD] 12.30.00.45
DateTime YYYY-[M]M-[D]D [[H]H:[M]M:[S]S[.DDDDDD]] 27-09-2014 12:30:00.45

Parameter referensi data

Saat membuat aturan SQL kustom, Anda dapat merujuk ke tabel sumber data dan semua filter prasyaratnya menggunakan parameter referensi data ${data()} dalam aturan, bukan menyebutkan tabel sumber dan filternya secara eksplisit. Dataplex menafsirkan parameter sebagai referensi ke tabel sumber dan filternya. Contoh filter prasyarat mencakup filter baris, persen sampling, dan filter inkremental.

Misalnya, Anda memiliki tabel sumber data bernama my_project_id.dim_dataset.dim_currency. Anda ingin menjalankan pemindaian kualitas data inkremental yang hanya memindai data harian baru. Filter baris yang memfilter entri hari ini, transaction_timestamp >= current_date(), diterapkan pada tabel.

Aturan SQL kustom untuk menemukan baris dengan discount_pct untuk hari ini terlihat seperti ini:

discount_pct IN (SELECT discount_pct FROM my_project_id.dim_dataset.dim_currency WHERE transaction_timestamp >= current_date())

Jika menggunakan parameter referensi data, Anda dapat menyederhanakan aturan. Ganti sebutan tabel dan filter prasyaratnya dengan parameter ${data()}:

discount_pct IN (SELECT discount_pct FROM ${data()})

Dataplex menafsirkan parameter ${data()} sebagai referensi ke tabel sumber data dengan entri hari ini, my_project_id.dim_dataset.dim_currency WHERE transaction_timestamp >= current_date(). Dalam contoh ini, parameter referensi data hanya merujuk pada data inkremental.

Parameter ${data()} peka huruf besar/kecil.

Saat Anda menggunakan alias dalam subkueri untuk merujuk ke kolom dalam tabel sumber, gunakan parameter referensi data untuk merujuk ke tabel sumber, atau hapus referensi tabel. Jangan merujuk ke kolom dalam tabel sumber menggunakan referensi tabel langsung dalam klausa WHERE.

Direkomendasikan:

  • Gunakan parameter referensi data untuk merujuk ke tabel sumber:

    discount_pct IN (
    SELECT discount_pct FROM
    `my_project_id.dim_dataset.dim_currency` AS temp-table
    WHERE
    temp-table.transaction_timestamp = ${data()}.timestamp
    )
    
  • Hapus referensi tabel:

    discount_pct IN (
    SELECT discount_pct FROM
    `my_project_id.dim_dataset.dim_currency` AS temp-table
    WHERE
    temp-table.transaction_timestamp = timestamp
    )
    

Tidak direkomendasikan:

  • Jangan gunakan referensi tabel langsung untuk merujuk ke kolom dalam tabel sumber:

    discount_pct IN (
    SELECT discount_pct FROM
    `my_project_id.dim_dataset.dim_currency` AS temp-table
    WHERE
    temp-table.transaction_timestamp = `my_project_id.dim_dataset.dim_currency`.timestamp
    )
    

Eksekusi aturan

Anda dapat menjadwalkan pemindaian kualitas data untuk dijalankan pada interval tertentu, atau Anda dapat menjalankan pemindaian sesuai permintaan. Untuk mengelola pemindaian kualitas data, Anda dapat menggunakan API atau konsol Google Cloud.

Saat Anda menjalankan pemindaian kualitas data, Dataplex akan membuat tugas. Sebagai bagian dari spesifikasi pemindaian kualitas data, Anda dapat menentukan cakupan tugas menjadi salah satu dari hal berikut:

Tabel Lengkap
Setiap tugas memvalidasi seluruh tabel.
Inkremental
Setiap tugas memvalidasi data inkremental. Untuk menentukan inkremen, berikan kolom Date / Timestamp dalam tabel yang dapat digunakan sebagai penanda. Biasanya, ini adalah kolom tempat partisi tabel.

Data filter

Dataplex dapat memfilter data yang akan dipindai untuk kualitas data menggunakan filter baris. Membuat filter baris memungkinkan Anda berfokus pada data dalam jangka waktu tertentu atau segmen tertentu, seperti wilayah tertentu. Penggunaan filter dapat mengurangi waktu dan biaya eksekusi, misalnya, memfilter data dengan stempel waktu sebelum tanggal tertentu.

Data sampel

Dataplex memungkinkan Anda menentukan persentase data dari data Anda untuk diambil sampelnya guna menjalankan pemindaian kualitas data. Membuat pemindaian kualitas data pada sampel data yang lebih kecil dapat mengurangi waktu eksekusi dan biaya relatif terhadap kueri seluruh set data.

Hasil pemindaian kualitas data

Hasil pemindaian kualitas data Anda tersedia di Dataplex. Anda juga dapat meninjau dan menganalisis hasil pemindaian menggunakan metode berikut:

  • Mengekspor hasil ke BigQuery

    Anda dapat mengekspor hasil pemindaian ke tabel BigQuery untuk analisis lebih lanjut. Untuk menyesuaikan pelaporan, Anda dapat menghubungkan data tabel BigQuery ke dasbor Looker. Anda dapat membuat laporan gabungan dengan menggunakan tabel hasil yang sama di beberapa pemindaian.

  • Memublikasikan hasil di konsol Google Cloud

    Anda dapat memublikasikan hasil pemindaian kualitas data ke halaman BigQuery dan Data Catalog tabel sumber di konsol Google Cloud. Hasil pemindaian terbaru tersedia di tab Kualitas Data untuk tabel sumber.

  • Meninjau skor kualitas data

    Setiap hasil pemindaian memberikan skor kualitas data yang menunjukkan persentase aturan yang lulus. Skor dilaporkan di tingkat tugas secara keseluruhan, tingkat kolom (jika aturan dievaluasi terhadap kolom), dan tingkat dimensi. Gunakan skor kualitas data untuk menormalisasi kualitas data di seluruh tabel atau kolom, melacak tren, dan mengidentifikasi data yang tidak memenuhi persyaratan kualitas.

Untuk mengetahui informasi selengkapnya, lihat Melihat hasil pemindaian kualitas data.

Pemantauan dan pemberitahuan

Anda dapat memantau dan mendapatkan pemberitahuan tentang pemindaian kualitas data menggunakan metode berikut:

  • Menetapkan pemberitahuan di Cloud Logging

    Anda dapat memantau tugas kualitas data menggunakan log data_scan dan data_quality_scan_rule_result di Logs Explorer.

    Untuk setiap tugas kualitas data, log data_scan dengan kolom data_scan_type yang ditetapkan ke DATA_QUALITY berisi informasi berikut:

    • Sumber data yang digunakan untuk pemindaian data.
    • Detail eksekusi tugas, seperti waktu pembuatan, waktu mulai, waktu berakhir, dan status tugas.
    • Hasil tugas kualitas data: lulus atau gagal.
    • Lulus atau gagal di tingkat dimensi.

    Setiap tugas yang berhasil berisi log data_quality_scan_rule_result dengan informasi mendetail berikut tentang setiap aturan dalam tugas tersebut:

    • Informasi konfigurasi, seperti nama aturan, jenis aturan, jenis evaluasi, dan dimensi.
    • Informasi hasil, seperti lulus atau gagal, jumlah baris total, jumlah baris yang lulus, jumlah baris null, dan jumlah baris yang dievaluasi.

    Informasi dalam log tersedia melalui API dan konsol Google Cloud. Anda dapat menggunakan informasi ini untuk menyiapkan pemberitahuan. Untuk mengetahui informasi selengkapnya, lihat Menetapkan pemberitahuan di Logging.

  • Mengirim laporan notifikasi email

    Anda dapat mengirim laporan notifikasi email untuk memberi tahu orang tentang status dan hasil tugas kualitas data. Laporan notifikasi tersedia untuk skenario berikut:

    • Skor kualitas data lebih rendah dari skor target yang ditentukan
    • Tugas gagal
    • Tugas selesai

    Anda mengonfigurasi laporan notifikasi saat membuat pemindaian kualitas data.

Memecahkan masalah kegagalan kualitas data

Jika aturan gagal, Dataplex akan menghasilkan kueri untuk mendapatkan data yang gagal. Jalankan kueri ini untuk melihat data yang tidak cocok dengan aturan Anda. Untuk mengetahui informasi selengkapnya, lihat Memecahkan masalah kegagalan kualitas data.

Batasan

  • Hasil pemindaian kualitas data tidak dipublikasikan ke Data Catalog sebagai tag.
  • Rekomendasi aturan tidak didukung di gcloud CLI.
  • Pilihan dimensi ditetapkan ke salah satu dari tujuh dimensi yang telah ditentukan sebelumnya.
  • Jumlah aturan per pemindaian kualitas data dibatasi hingga 1.000.
  • Skor kualitas data yang dilaporkan di tingkat kolom hanya didukung di API.

Harga

  • Dataplex menggunakan SKU pemrosesan premium untuk mengenakan biaya kualitas data otomatis. Untuk mengetahui informasi selengkapnya, lihat Harga Dataplex.

  • Memublikasikan hasil kualitas data otomatis ke Katalog belum tersedia. Saat tersedia, penyimpanan ini akan dikenai biaya dengan tarif yang sama seperti harga penyimpanan metadata Katalog. Lihat Harga untuk mengetahui detail selengkapnya.

  • Pemrosesan premium Dataplex untuk kualitas data otomatis ditagih per detik dengan minimum satu menit.

  • Pemindaian kualitas data yang gagal tidak dikenai biaya.

  • Tagihan bergantung pada jumlah baris, jumlah kolom, jumlah data yang telah Anda pindai, konfigurasi aturan kualitas data, setelan partisi dan pengelompokan di tabel, serta frekuensi pemindaian.

  • Ada beberapa opsi untuk mengurangi biaya pemindaian kualitas data otomatis:

  • Untuk memisahkan tagihan kualitas data dari tagihan lainnya di SKU pemrosesan premium Dataplex, di laporan Penagihan Cloud, gunakan label goog-dataplex-workload-type dengan nilai DATA_QUALITY.

  • Untuk memfilter tagihan gabungan, gunakan label berikut:

    • goog-dataplex-datascan-data-source-dataplex-entity
    • goog-dataplex-datascan-data-source-dataplex-lake
    • goog-dataplex-datascan-data-source-dataplex-zone
    • goog-dataplex-datascan-data-source-project
    • goog-dataplex-datascan-data-source-region
    • goog-dataplex-datascan-id
    • goog-dataplex-datascan-job-id

Apa langkah selanjutnya?