Data Quality menyediakan templat aturan untuk menyederhanakan pembuatan Specs. Sistem mencakup serangkaian templat bawaan yang umum digunakan, dan Anda juga dapat membuat templat kustom sendiri. Templat berisi sebagian besar pengaturan Spec yang diperlukan, sehingga saat membuat aturan dari templat, Anda hanya perlu mengonfigurasi pengaturan yang tersisa.
Gunakan templat aturan sistem
Contoh berikut menunjukkan cara membuat aturan menggunakan templat aturan sistem volatilitas rata-rata 1, 7, dan 30 hari:
datasets:
- type: Table
tables:
- tb_d_spec_demo
filter: "dt='$[yyyymmdd]' AND hh='$[hh24-1/24]'"
dataSource:
name: odps_first
envType: Dev
rules:
- templateId: "SYSTEM:field:avg:flux:1_7_1m_bizdate"
fields:
- col_income
warn: "when > 1%"
fail: "when > 10%"Potongan kode di atas membuat aturan pemantauan Data Quality dengan mereferensikan templat aturan sistem volatilitas rata-rata 1, 7, dan 30 hari. Parameter dikonfigurasi sebagai berikut:
templateId:IDtemplat aturan. Untuk daftar ID templat aturan lainnya, lihat Daftar Templat Aturan Sistem. Anda juga dapat membuat templat aturan kustom dan merujuk ke Gunakan templat aturan kustom untuk membuat aturan.templateParameters: Parameter yang dibutuhkan oleh templat aturan. Setiap templat memerlukan parameter yang berbeda. Salah satu parameter umum adalahfields, yang menentukan daftar bidang yang dipantau oleh aturan.Untuk parameter yang diperlukan oleh setiap templat aturan, lihat Daftar templat aturan sistem.
warn/fail: Ambang batas.
Gunakan templat aturan kustom
Jika templat aturan sistem tidak memenuhi kebutuhan Anda atau jika Anda memiliki banyak aturan SQL kustom yang berisi pernyataan SQL yang sama, Anda dapat membuat templat aturan kustom.
Definisikan templat kustom
Potongan kode berikut menunjukkan contoh konfigurasi Spec untuk templat aturan kustom:
name: "Check for non-empty ID row count"
id: "1760d075-00bd-43c9-be8f-3c9a4bac35db"
assertion: "id_not_null_row_count = 0"
id_not_null_row_count:
query: "SELECT COUNT(*) FROM ${table} WHERE dt = '$[yyyymmdd-1]';"
catalog: "ods_layer/real-time_check"Potongan kode di atas mendefinisikan templat aturan kustom sederhana. Templat ini mencakup bidang-bidang berikut:
name: Nama templat.id: Pengenal unik untuk templat. ID ini harus unik secara global dan digunakan untuk mereferensikan templat.assertion: Logika aturan. Untuk informasi lebih lanjut tentang sintaksisnya, lihat bidangassertiondalam Konfigurasi Spec Data Quality.id_not_null_row_count: Definisimetrikyang direferensikan olehassertiondalam contoh ini. Di dalamquery, Anda dapat menggunakan${tableName}sebagai placeholder untuk nama tabel. Saat Anda membuat aturan dari templat ini, placeholder tersebut akan diganti dengan nama tabel yang dipantau oleh aturan. Anda juga dapat langsung mereferensikan parameter waktu sistem. Untuk informasi lebih lanjut, lihat Konfigurasi penyaringan data.catalog: Kategori templat aturan, yang digunakan untuk manajemen. Gunakan garis miring (/) untuk memisahkan beberapa tingkat kategori.
Pengaturan ambang batas dalam templat kustom
Ambang batas tetap dan tidak tetap
Potongan kode berikut menunjukkan contoh konfigurasi dengan ambang batas tidak tetap:
name: "Check for non-empty ID row count"
id: "1760d075-00bd-43c9-be8f-3c9a4bac35db"
assertion: "id_not_null_row_count"
id_not_null_row_count:
query: "SELECT COUNT(*) FROM ${table} WHERE dt = '$[yyyymmdd-1]';"Ambang batas volatilitas
name: "Check for non-empty ID row count"
id: "1760d075-00bd-43c9-be8f-3c9a4bac35db"
assertion: "change avg last 7 days percent for id_not_null_row_count"
id_not_null_row_count:
query: "SELECT COUNT(*) FROM ${table} WHERE dt = '$[yyyymmdd-1]';"Buat aturan menggunakan templat kustom
Contoh 1
datasets: - type: Table tables: - tb_d_spec_demo filter: "dt='$[yyyymmdd]' AND hh='$[hh24-1/24]'" dataSource: name: odps_first envType: Dev rules: - templateId: "1760d075-00bd-43c9-be8f-3c9a4bac35db" # Defines the failure threshold fail: "when != 0"Contoh 2
datasets: - type: Table tables: - tb_d_spec_demo filter: "dt='$[yyyymmdd]' AND hh='$[hh24-1/24]'" dataSource: name: odps_first envType: Dev rules: - templateId: "1760d075-00bd-43c9-be8f-3c9a4bac35db" warn: "when between 1 and 10)" fail: "when > 10"Contoh 3
datasets: - type: Table tables: - tb_d_spec_demo filter: "dt='$[yyyymmdd]' AND hh='$[hh24-1/24]'" dataSource: name: odps_first envType: Dev rules: - templateId: "1760d075-00bd-43c9-be8f-3c9a4bac35db" warn: "when not between -1% and 1%" fail: "when not between -10% and 10%"
Daftar templat aturan sistem
Id | Templat | Bidang yang diperlukan | Contoh |
| Jumlah baris tabel, nilai tetap |
| |
| Jumlah baris tabel lebih besar dari 0 | - | |
| Jumlah baris tabel, selisih 1 hari |
| |
| Jumlah baris tabel, selisih dari epoch sebelumnya |
| |
| Jumlah baris tabel, laju volatilitas 1-, 7-, dan 30-hari |
| |
| Jumlah baris tabel, laju volatilitas 1-, 7-, 30-hari, dan awal bulan |
| |
| Jumlah baris tabel, laju volatilitas 1 hari |
| |
| Jumlah baris tabel, laju volatilitas 30 hari |
| |
| Jumlah baris tabel, laju volatilitas 7 hari |
| |
| Jumlah baris tabel, ambang batas dinamis | - | |
| Jumlah baris tabel, laju volatilitas rata-rata 7 hari |
| |
| Jumlah baris tabel, laju volatilitas rata-rata 30 hari |
| |
| Jumlah baris tabel, laju volatilitas dari epoch sebelumnya |
| |
| Ukuran tabel, nilai tetap |
| |
| Ukuran tabel, selisih 1 hari (byte) |
| |
| Ukuran tabel, selisih dari epoch sebelumnya |
| |
| Ukuran tabel, laju volatilitas 1 hari |
| |
| Ukuran tabel, laju volatilitas 30 hari |
| |
| Ukuran tabel, laju volatilitas 7 hari |
| |
| Ukuran tabel, ambang batas dinamis | - | |
| Jumlah nilai null, nilai tetap |
| |
| Jumlah nilai null adalah 0 |
| |
| Presentase nilai null, nilai tetap |
| |
| Pemeriksaan ekspresi reguler |
| |
| Pemeriksaan format tanggal |
| |
| Pemeriksaan format email |
| |
| Pemeriksaan format kartu identitas |
| |
| Pemeriksaan format nomor ponsel |
| |
| Pemeriksaan format mata uang |
| |
| Pemeriksaan format numerik |
| |
| Pemeriksaan format nomor telepon |
| |
| Jumlah nilai duplikat, nilai tetap |
| |
| Jumlah nilai duplikat adalah 0 |
| |
| Jumlah nilai duplikat untuk beberapa bidang adalah 0 |
| |
| Presentase nilai duplikat, nilai tetap |
| |
| Jumlah nilai unik, nilai tetap |
| |
| Jumlah nilai unik, laju volatilitas 1-, 7-, dan 30-hari |
| |
| Jumlah nilai unik, ambang batas dinamis |
| |
| Presentase nilai unik, nilai tetap |
| |
| Nilai minimum, laju volatilitas 1-, 7-, dan 30-hari |
| |
| Nilai minimum, ambang batas dinamis |
| |
| Nilai minimum, laju volatilitas 1 hari |
| |
| Nilai minimum, laju volatilitas dari epoch sebelumnya |
| |
| Nilai minimum, laju volatilitas 1-, 7-, dan 30-hari |
| |
| Nilai maksimum, ambang batas dinamis |
| |
| Nilai maksimum, laju volatilitas 1 hari |
| |
| Nilai maksimum, laju volatilitas dari epoch sebelumnya |
| |
| Nilai rata-rata, laju volatilitas 1-, 7-, dan 30-hari |
| |
| Nilai rata-rata, ambang batas dinamis |
| |
| Nilai rata-rata, laju volatilitas 1 hari |
| |
| Jumlah, laju volatilitas 1-, 7-, dan 30-hari |
| |
| Jumlah, ambang batas dinamis |
| |
| Jumlah, laju volatilitas 1 hari |
| |
| Jumlah, laju volatilitas dari epoch sebelumnya |
| |
| Jumlah nilai unik yang tidak ada dalam enumerasi, nilai tetap |
| |
| Jumlah baris dengan nilai yang tidak ada dalam enumerasi, nilai tetap |
| |
| Jumlah baris dengan nilai yang tidak ada dalam enumerasi adalah 0 |
| |
| Pemeriksaan enumerasi kustom, nilai tetap |
| |
| Jumlah nilai status diskrit, nilai tetap |
| |
| Jumlah kelompok diskrit, nilai tetap |
| |
| Jumlah kelompok diskrit, ambang batas dinamis |
| |
| Jumlah nilai status diskrit, ambang batas dinamis |
| |
| Jumlah kelompok diskrit, laju volatilitas dari epoch sebelumnya |
| |
| Metrik diskrit (kelompok dan nilai), laju volatilitas 1-, 7-, dan 30-hari |
| |
Lampiran: Instruksi konfigurasi untuk templat sistem rentang kustom
Templat sistem rentang kustom berikut dikonfigurasi secara berbeda dari templat sistem standar dan memerlukan konfigurasi terpisah.
Persentase kecocokan bersyarat, rentang kustom
rules: - assertion: "matched_row_percent = 0" filter: "id IS NULL"Nilai minimum bidang, rentang kustom
rules: - assertion: "anomal detection for min(income)"Nilai maksimum bidang, rentang kustom
rules: - assertion: "change avg last 7 days percent for max(income)" warn: "when > 0.1%" fail: "when > 0.5%"Nilai rata-rata bidang, rentang kustom
rules: - assertion: "change var last 30 days percent for avg(income)" warn: "when < -0.1%" fail: "when < -0.5%"Jumlah bidang, rentang kustom
rules: - assertion: "change 1 days ago percent for sum(income)" warn: "when not between -0.1% and 0.1%" fail: "when not between -0.5% and 0.5%"Custom SQL
assertionparameter, lihat Definisikan aturan metrik kustom.rules: - assertion: "change percent for id_not_null_count" id_not_null_count: query: "SELECT COUNT(*) AS cnt FROM tb_spec_demo WHERE dt = '$[yyyymmdd]'" warn: "when not between -0.1% and 0.1%" fail: "when not between -0.5% and 0.5%"