Kualitas Data menyediakan templat aturan untuk menyederhanakan pembuatan Specs. Sistem mencakup serangkaian templat bawaan yang umum, 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 Kualitas Data dengan mereferensikan templat aturan sistem volatilitas rata-rata 1, 7, dan 30 hari. Parameter dikonfigurasi sebagai berikut:
templateId:IDtemplat aturan. Untuk 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. Templat yang berbeda memerlukan parameter yang berbeda. Parameter umum adalahfields, yang menentukan daftar bidang yang dipantau oleh aturan.Untuk parameter yang dibutuhkan 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 number of rows with non-null ID"
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: Pengidentifikasi 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 Kualitas Data.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 number of rows with non-null ID"
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 number of rows with non-null ID"
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" # Use fail to define 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 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 not between -1% and 1%" fail: "when not between -10% and 10%"
Daftar templat aturan sistem
Id | Templat | Bidang yang diperlukan | Contoh |
| Table Row Count, Static Field |
| |
| Table Row Count Is Greater Than 0 | - | |
| Table Row Count, 1-day Difference |
| |
| Table Row Count, Previous Epoch Difference |
| |
| Table Row Count, 1, 7, 30-day Volatility Rate |
| |
| Table Row Count, 1, 7, 30-day, And First Day Of The Month Volatility Rate |
| |
| Table Row Count, 1-day Volatility Rate |
| |
| Table Row Count, 30-day Volatility Rate |
| |
| Table Row Count, 7-day Volatility Rate |
| |
| Table Row Count, Dynamic Threshold | - | |
| Table Row Count, 7-day Average Volatility Rate |
| |
| Table Row Count, 30-day Average Volatility Rate |
| |
| Table Row Count, Previous Epoch Volatility Rate |
| |
| Table Size, Static Field |
| |
| Table Size, Difference From 1 Day Ago (bytes) |
| |
| Table Size, Previous Epoch Difference |
| |
| Table Size, 1-day Volatility Rate |
| |
| Table Size, 30-day Volatility Rate |
| |
| Table Size, 7-day Volatility Rate |
| |
| Table Size, Dynamic Threshold | - | |
| Number Of Null Values, Static Field |
| |
| Number Of Null Records Is 0 |
| |
| Number Of Null Values/Total Row Count, Static Field |
| |
| Regular Expression Check |
| |
| Date Format Check |
| |
| Email Format Check |
| |
| ID Card Format Check |
| |
| Mobile Number Format Check |
| |
| Currency Format Check |
| |
| Numeric Format Check |
| |
| Phone Number Format Check |
| |
| Number Of Duplicate Values, Static Field |
| |
| Field Has 0 Duplicate Values |
| |
| Multiple Fields Have 0 Duplicate Values |
| |
| Number Of Duplicate Values/Total Row Count, Static Field |
| |
| Number Of Unique Values, Static Field |
| |
| Number Of Unique Values, 1, 7, 30-day Volatility Rate |
| |
| Number Of Unique Values, Dynamic Threshold |
| |
| Number Of Unique Values/Total Row Count, Static Field |
| |
| Minimum Value, 1, 7, 30-day Volatility Rate |
| |
| Minimum Value, Dynamic Threshold |
| |
| Minimum Value, 1-day Volatility Rate |
| |
| Minimum Value, Previous Epoch Volatility Rate |
| |
| Maximum Value, 1, 7, 30-day Volatility Rate |
| |
| Maximum Value, Dynamic Threshold |
| |
| Maximum Value, 1-day Volatility Rate |
| |
| Maximum Value, Previous Epoch Volatility Rate |
| |
| Average Value, 1, 7, 30-day Volatility Rate |
| |
| Average Value, Dynamic Threshold |
| |
| Average Value, 1-day Volatility Rate |
| |
| Sum, 1, 7, 30-day Volatility Rate |
| |
| Sum, Dynamic Threshold |
| |
| Sum, 1-day Volatility Rate |
| |
| Sum, Previous Epoch Volatility Rate |
| |
| Number Of Unique Values Not Matching Enumeration, Static Field |
| |
| Number Of Rows Not Matching Enumeration, Static Field |
| |
| Number Of Rows Not Matching Enumeration Is 0 |
| |
| Enumeration Value, Custom, Static Field |
| |
| Discrete Value (status Value), Static Field |
| |
| Discrete Value (number Of Groups), Static Field |
| |
| Discrete Value (number Of Groups), Dynamic Threshold |
| |
| Discrete Value (status Value), Dynamic Threshold |
| |
| Discrete Value (number Of Groups), 1-day Volatility Rate |
| |
| Discrete Value (number Of Groups And Status Values), 1, 7, 30-day Volatility Rate |
| |
Lampiran: Petunjuk konfigurasi untuk templat sistem rentang kustom
Templat sistem rentang kustom berikut dikonfigurasi berbeda dari templat sistem standar dan memerlukan konfigurasi terpisah.
Conditional Match Percentage, Custom Range
rules: - assertion: "matched_row_percent = 0" filter: "id IS NULL"Field Minimum Value, Custom Range
rules: - assertion: "anomal detection for min(income)"Field Maximum Value, Custom Range
rules: - assertion: "change avg last 7 days percent for max(income)" warn: "when > 0.1%" fail: "when > 0.5%"Field Average Value, Custom Range
rules: - assertion: "change var last 30 days percent for avg(income)" warn: "when < -0.1%" fail: "when < -0.5%"Field Sum, Custom Range
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, see Define custom metric rules.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%"