Ringkasan kualitas data otomatis

Kualitas data otomatis Dataplex Universal Catalog memungkinkan Anda menentukan dan mengukur kualitas data di tabel BigQuery. Anda dapat mengotomatiskan pemindaian data, memvalidasi data terhadap aturan yang ditentukan, dan mencatat pemberitahuan jika data Anda tidak memenuhi persyaratan kualitas. Anda dapat mengelola aturan dan deployment kualitas data sebagai kode, sehingga meningkatkan integritas pipeline produksi data.

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

Model konseptual

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

Pemindaian data adalah tugas Katalog Universal 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 berjenis data quality. Pemindaian hanya berjalan di satu tabel BigQuery. Pemindaian menggunakan resource di project tenant Google, sehingga Anda tidak perlu menyiapkan infrastruktur sendiri.

Pembuatan dan penggunaan 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 yang telah ditentukan

Dataplex Universal Catalog mendukung dua kategori aturan yang telah ditentukan sebelumnya: tingkat baris atau agregat.

Tingkat baris

Untuk aturan kategori tingkat baris, ekspektasi diterapkan terhadap 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 yang 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 boolean true. Aturan gabungan tidak memberikan jumlah lulus atau gagal yang independen untuk setiap baris.

Untuk kedua kategori aturan, Anda dapat menetapkan parameter berikut:

  • Kolom tempat aturan diterapkan
  • Dimensi

Tabel berikut mencantumkan jenis aturan tingkat baris dan gabungan 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 nilai berada di 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 menggunakan ">" bukan ">=".
  • Aktifkan strict max: Jika diaktifkan, pemeriksaan aturan menggunakan "<" bukan "<=".
  • Aktifkan ignore null: Jika diaktifkan, nilai null akan diabaikan dalam pemeriksaan aturan.
NonNullExpectation
(Pemeriksaan null)
Tingkat baris Validasi bahwa nilai kolom tidak NULL. Semua jenis kolom yang didukung. Wajib:
  • Persentase nilai minimum kelulusan.
SetExpectation
(Setel pemeriksaan)
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: GoogleSQL menyediakan dukungan ekspresi reguler menggunakan library re2; Lihat dokumentasi tersebut untuk mengetahui sintaks 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 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 Memeriksa 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 menggunakan ">" bukan ">=".
  • Aktifkan strict max: Jika diaktifkan, pemeriksaan aturan 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. Katalog Universal 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 referensial.

Semua kolom Wajib:
  • Kondisi SQL yang akan digunakan
  • Persentase nilai minimum kelulusan
  • Dimensi
Opsional:
  • Kolom untuk mengaitkan 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 mencakup referensi ke tabel lain menggunakan subkueri ekspresi.

Semua kolom Wajib:
  • Kondisi SQL yang akan digunakan
  • Dimensi
Opsional:
  • Kolom untuk mengaitkan 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 pernyataan SQL.

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

Semua kolom Wajib:
  • Pernyataan SQL untuk memeriksa status tidak valid
  • Dimensi
Opsional:
  • Kolom untuk mengaitkan 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. Katalog Universal Dataplex menyediakan dimensi berikut:

Keaktualan
Keaktualan mengukur kapan data terakhir diperbarui. Memiliki informasi ini dapat membantu Anda menentukan apakah data cukup baru untuk berguna.
Volume
Volume mengukur apakah semua data yang diharapkan ada.
Kelengkapan
Kelengkapan menilai apakah data berisi semua informasi yang diperlukan untuk tujuan yang dimaksud.
Validitas
Validitas mengevaluasi apakah data sesuai dengan standar yang telah ditentukan sebelumnya untuk format, rentang yang dapat diterima, atau kriteria lainnya. Misalnya, jika tanggal yang valid harus memiliki format YYYY/mm/dd, maka 08-12-2019 adalah data yang tidak valid. Sebagai contoh lain, jika harga promo yang valid untuk suatu item adalah antara $10 dan $20, maka harga promo $100 adalah data yang tidak valid.
Konsistensi
Konsistensi mengacu pada nilai data yang sama di beberapa instance, seperti tabel dan kolom. Ketidaksesuaian dalam data muncul ketika, misalnya, pendapatan produk berbeda saat dibaca dari database penjualan atau database penggunaan.
Akurasi
Akurasi mencerminkan kebenaran data. Perhatikan bahwa data yang valid tidak selalu akurat. Misalnya, warna rambut yang valid mungkin cokelat, tetapi jika seseorang tidak memiliki rambut cokelat, itu adalah data yang tidak akurat.
Keunikan
Keunikan mengukur apakah data berbeda tanpa duplikat.

Input yang diketik dalam aturan

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

Parameter berjenis biner dapat diteruskan sebagai string berenkode base64.

Jenis Format yang didukung Contoh
Biner Nilai berenkode 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]
2014-09-27 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]] 2014-09-27 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, alih-alih menyebutkan tabel sumber dan filternya secara eksplisit. Dataplex Universal Catalog menafsirkan parameter sebagai referensi ke tabel sumber dan filternya. Contoh filter prasyarat mencakup filter baris, persen pengambilan sampel, 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 akan 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 penyebutan tabel dan filter prasyaratnya dengan parameter ${data()}:

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

Katalog Universal 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
    )
    
  • Menghilangkan 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 menggunakan 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 konsolGoogle Cloud .

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

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

Memfilter data

Dataplex Universal Catalog dapat memfilter data yang akan dipindai untuk kualitas data dengan menggunakan filter baris. Dengan membuat filter baris, Anda dapat 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 Universal Catalog memungkinkan Anda menentukan persentase rekaman dari data Anda yang akan diambil sampelnya untuk menjalankan pemindaian kualitas data. Membuat pemindaian kualitas data pada sampel data yang lebih kecil dapat mengurangi waktu eksekusi dan biaya yang terkait dengan membuat kueri seluruh set data.

Hasil pemindaian kualitas data

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

  • Mengekspor hasil ke BigQuery

    Anda dapat mengekspor hasil pemindaian ke tabel BigQuery untuk dianalisis 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 sebagai metadata Katalog Universal Dataplex

    Anda dapat memublikasikan hasil pemindaian kualitas data sebagai metadata Dataplex Universal Catalog. Hasil terbaru disimpan ke entri Katalog Universal Dataplex yang merepresentasikan tabel sumber, di bagian jenis aspek sistem data-quality-scorecard. Anda dapat melihat hasil di halaman BigQuery dan Dataplex Universal Catalog tabel sumber di konsol Google Cloud , pada tab Kualitas Data. Anda juga dapat mengambil hasil menggunakan API.

    Untuk mengetahui informasi selengkapnya tentang metadata Dataplex Universal Catalog, lihat Tentang pengelolaan katalog data di Dataplex Universal Catalog.

  • Meninjau skor kualitas data

    Setiap hasil pemindaian memberikan skor kualitas data yang menunjukkan persentase aturan yang lulus. Skor dilaporkan di tingkat tugas 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 tingkat dimensi.

    Setiap tugas yang berhasil berisi data_quality_scan_rule_result log 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 total baris, jumlah baris yang lulus, jumlah baris null, dan jumlah baris yang dievaluasi.

    Informasi dalam log tersedia melalui API dan Google Cloud konsol. Anda dapat menggunakan informasi ini untuk menyiapkan pemberitahuan. Untuk mengetahui informasi selengkapnya, lihat Menyetel 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
    • Pekerjaan selesai

    Anda mengonfigurasi laporan notifikasi saat membuat pemindaian kualitas data.

Memecahkan masalah kegagalan kualitas data

Jika aturan gagal, Katalog Universal Dataplex akan menghasilkan kueri untuk mendapatkan catatan 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

  • Memublikasikan hasil pemindaian kualitas data sebagai metadata Dataplex Universal Catalog tidak didukung di konsol Google Cloud .
  • Rekomendasi aturan tidak didukung di gcloud CLI.
  • Pilihan dimensi ditetapkan ke salah satu dari tujuh dimensi bawaan.
  • Jumlah aturan per pemindaian kualitas data dibatasi hingga 1.000.
  • Skor kualitas data yang dilaporkan di tingkat kolom hanya didukung di API.

Harga

  • Katalog Universal Dataplex menggunakan SKU pemrosesan premium untuk menagih kualitas data otomatis. Untuk mengetahui informasi selengkapnya, lihat Harga Katalog Universal Dataplex.

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

  • Tidak ada biaya untuk pemindaian kualitas data yang gagal.

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

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

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

  • Untuk memfilter biaya 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?