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 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:
- Menentukan aturan kualitas data
- Mengonfigurasi eksekusi aturan
- Menganalisis hasil pemindaian kualitas data
- Menyiapkan pemantauan dan pemberitahuan
- 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:
- Menggunakan rekomendasi dari pembuatan profil data Dataplex
- Menggunakan aturan standar
- Membuat aturan SQL kustom
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 ketrue
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:
|
NonNullExpectation (Pemeriksaan null) |
Tingkat baris | Validasi bahwa nilai kolom bukan NULL. | Semua jenis kolom yang didukung. | Wajib:
|
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:
|
RegexExpectation (Pemeriksaan ekspresi reguler) |
Tingkat baris | Periksa nilai berdasarkan ekspresi reguler yang ditentukan. | String | Wajib:
|
Uniqueness (Pemeriksaan Keunikan) |
Agregat | Periksa apakah semua nilai dalam kolom bersifat unik. | Semua jenis kolom yang didukung, kecuali Record dan Struct . |
Wajib:
|
StatisticRangeExpectation (Pemeriksaan statistik) |
Agregat | Periksa apakah ukuran statistik yang diberikan sesuai dengan ekspektasi rentang. | Semua jenis kolom numerik yang didukung. | Wajib:
|
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 Ekspresi dapat menyertakan referensi ke tabel lain, misalnya, untuk membuat pemeriksaan integritas referensi. |
Semua kolom | Wajib:
|
grossWeight <= netWeight |
Kondisi tabel (ekspresi SQL gabungan) |
Agregat | Aturan ini dieksekusi sekali per tabel. Berikan ekspresi SQL yang
dievaluasi ke boolean Ekspresi SQL dapat menyertakan referensi ke tabel lain menggunakan subkueri ekspresi. |
Semua kolom | Wajib:
|
Contoh agregat sederhana: Menggunakan subkueri ekspresi untuk membandingkan nilai di seluruh tabel yang berbeda: |
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:
|
Contoh gabungan sederhana untuk memastikan bahwa Menggunakan subkueri ekspresi untuk membandingkan nilai di seluruh tabel yang berbeda: |
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
dandata_quality_scan_rule_result
di Logs Explorer.Untuk setiap tugas kualitas data, log
data_scan
dengan kolomdata_scan_type
yang ditetapkan keDATA_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 nilaiDATA_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?
- Pelajari cara menggunakan kualitas data otomatis.
- Pelajari pembuatan profil data.
- Pelajari cara menggunakan pembuatan profil data.