Halaman ini menjelaskan cara membuat pemindaian kualitas data Dataplex.
Untuk mempelajari pemindaian kualitas data, lihat artikel Tentang kualitas data otomatis.
Sebelum memulai
Aktifkan Dataplex API.
Izin
Untuk menjalankan pemindaian kualitas data pada tabel BigQuery, Anda memerlukan izin untuk membaca tabel BigQuery dan izin untuk membuat tugas BigQuery dalam project yang digunakan untuk memindai tabel.
Jika tabel BigQuery dan pemindaian kualitas data berada di project yang berbeda, Anda harus memberikan akun layanan Dataplex dari project yang berisi izin baca pemindaian kualitas data untuk tabel BigQuery yang sesuai.
Jika aturan kualitas data merujuk pada tabel tambahan, akun layanan project pemindaian harus memiliki izin baca pada tabel yang sama.
Untuk mendapatkan izin yang Anda perlukan untuk mengekspor hasil pemindaian ke tabel BigQuery, minta administrator Anda untuk memberikan peran IAM Editor Data BigQuery (
roles/bigquery.dataEditor
) ke akun layanan Dataplex (roles/bigquery.dataEditor
) pada set data dan tabel hasil. Peran ini memberikan izin berikut:bigquery.datasets.get
bigquery.tables.create
bigquery.tables.get
bigquery.tables.getData
bigquery.tables.update
bigquery.tables.updateData
Jika data BigQuery diatur dalam danau Dataplex, berikan peran
roles/dataplex.metadataReader
danroles/dataplex.viewer
kepada akun layanan Dataplex. Atau, Anda memerlukan semua izin berikut:dataplex.lakes.list
dataplex.lakes.get
dataplex.zones.list
dataplex.zones.get
dataplex.entities.list
dataplex.entities.get
dataplex.operations.get
Jika Anda memindai tabel eksternal BigQuery dari Cloud Storage, berikan peran
roles/storage.objectViewer
Cloud Storage ke akun layanan Dataplex untuk bucket tersebut. Atau, tetapkan izin berikut untuk akun layanan Dataplex:storage.buckets.get
storage.objects.get
Jika ingin memublikasikan hasil pemindaian kualitas data di halaman BigQuery dan Data Catalog di konsol Google Cloud untuk tabel sumber, Anda harus diberi peran IAM BigQuery Data Editor (
roles/bigquery.dataEditor
) atau izinbigquery.tables.update
untuk tabel tersebut.Jika Anda perlu mengakses kolom yang dilindungi oleh kebijakan akses tingkat kolom BigQuery, tetapkan izin akun layanan Dataplex untuk kolom tersebut. Pengguna yang membuat atau memperbarui pemindaian data juga memerlukan izin untuk kolom.
Jika tabel mengaktifkan kebijakan akses tingkat baris BigQuery, Anda hanya dapat memindai baris yang terlihat oleh akun layanan Dataplex. Perlu diketahui bahwa hak istimewa akses setiap pengguna tidak dievaluasi untuk kebijakan tingkat baris.
Izin dan peran pemindaian data
Untuk menggunakan kualitas data otomatis, Anda memerlukan izin untuk menjalankan pemindaian data, atau peran dengan izin yang telah ditetapkan untuk menjalankan pemindaian data.
Tabel berikut mencantumkan izin DataScan
:
Nama izin | Memberikan izin untuk melakukan hal berikut: |
---|---|
dataplex.datascans.create |
Membuat DataScan |
dataplex.datascans.delete |
Menghapus DataScan |
dataplex.datascans.get |
Melihat metadata operasional seperti ID atau jadwal, tetapi tidak melihat hasil dan aturan |
dataplex.datascans.getData |
Lihat detail DataScan termasuk aturan dan hasil |
dataplex.datascans.list |
Daftar DataScan |
dataplex.datascans.run |
Menjalankan DataScan |
dataplex.datascans.update |
Perbarui deskripsi DataScan |
dataplex.datascans.getIamPolicy |
Melihat izin IAM saat ini pada pemindaian |
dataplex.datascans.setIamPolicy |
Menetapkan izin IAM pada pemindaian |
Beri pengguna satu atau beberapa peran berikut:
roles/dataplex.dataScanAdmin
: Akses penuh ke resourceDataScan
.roles/dataplex.dataScanEditor
: Akses tulis ke resourceDataScan
.roles/dataplex.dataScanViewer
: Akses baca ke resourceDataScan
, kecuali aturan dan hasil.roles/dataplex.dataScanDataViewer
: Akses baca ke resourceDataScan
, termasuk aturan dan hasil.
Menentukan aturan kualitas data
Anda dapat menentukan aturan kualitas data menggunakan aturan bawaan atau pemeriksaan SQL kustom. Jika menggunakan Google Cloud CLI, Anda dapat menentukan aturan ini dalam file JSON atau YAML.
Contoh di bagian berikut menunjukkan cara menentukan berbagai aturan kualitas data. Aturan tersebut memvalidasi tabel contoh yang berisi data tentang transaksi pelanggan. Asumsikan tabel tersebut memiliki skema berikut:
Nama kolom | Jenis kolom | Deskripsi kolom |
---|---|---|
transaction_timestamp | Stempel waktu | Stempel waktu transaksi. Tabel dipartisi di kolom ini. |
customer_id | String | ID pelanggan dalam format 8 huruf diikuti dengan 16 digit. |
transaction_id | String | ID transaksi di seluruh tabel harus unik. |
currency_id | String | Salah satu mata uang yang didukung.Jenis mata uang harus cocok dengan salah satu mata uang yang tersedia di tabel dimensi dim_currency .
|
jumlah | float | Jumlah transaksi. |
discount_pct | float | Persentase diskon. Nilai ini harus antara 0 dan 100. |
Menentukan aturan kualitas data menggunakan jenis aturan bawaan
Contoh aturan berikut didasarkan pada jenis aturan bawaan. Anda dapat membuat aturan berdasarkan jenis aturan bawaan menggunakan Konsol Google Cloud atau API. Dataplex mungkin merekomendasikan beberapa aturan ini.
Nama kolom | Jenis Aturan | Dimensi yang disarankan | Parameter aturan |
---|---|---|---|
transaction_id |
Pemeriksaan keunikan | Keunikan | Batas: Not Applicable |
amount |
Pemeriksaan null | Kelengkapan | Batas: 100% |
customer_id |
Pemeriksaan Regex (ekspresi reguler) | Validitas | Ekspresi reguler: ^[0-9]{8}[a-zA-Z]{16}$ Nilai minimum: 100%
|
currency_id |
Pemeriksaan kumpulan nilai | Validitas | Kumpulan dari: USD,JPY,INR,GBP,CAN Nilai Minimum: 100%
|
Menentukan aturan kualitas data menggunakan aturan SQL kustom
Contoh aturan berikut didasarkan pada aturan SQL kustom. Untuk membuat aturan SQL kustom, gunakan framework berikut:
Saat Anda membuat aturan yang mengevaluasi baris satu per satu, buat ekspresi yang menghasilkan jumlah baris yang berhasil saat Dataplex mengevaluasi
SELECT COUNTIF(custom-sql-expr) FROM TABLE
kueri. Dataplex memeriksa jumlah baris yang berhasil terhadap nilai minimum.Saat membuat aturan yang dievaluasi di seluruh baris atau pemeriksaan SQL gabungan, buat ekspresi yang menampilkan keberhasilan atau kegagalan saat Dataplex mengevaluasi
SELECT IF(custom-sql-expr) FROM TABLE
kueri.
Jenis aturan | Deskripsi aturan | Ekspresi SQL |
---|---|---|
Kondisi baris | Memeriksa apakah nilai discount_pct
antara 0 dan 100.
|
0 <discount_pct DAN discount_pct < 100
|
Kondisi baris | Pemeriksaan referensi untuk memvalidasi bahwa currency_id adalah salah satu mata uang yang didukung.
|
currency_id in (select id from my_project_id.dim_dataset.dim_currency)
|
Kondisi agregat | Periksa apakah discount_pct rata-rata berada dalam 30% dan 50%.
|
30<avg(discount) AND avg(discount) <50
|
Kondisi baris | Aturan sederhana yang memeriksa tanggal bukan di masa mendatang | TIMESTAMP(transaction_timestamp) < CURRENT_TIMESTAMP()
|
Kondisi agregat |
BigQuery User-defined Function (UDF) untuk memeriksa apakah jumlah transaksi rata-rata kurang dari nilai yang telah ditentukan per negara. Buat UDF (JavaScript) dengan menjalankan perintah
berikut:
CREATE OR REPLACE FUNCTION myProject.myDataset.average_by_country ( country STRING, average FLOAT64) RETURNS BOOL LANGUAGE js AS R""" if (country = "CAN" && average < 5000){ return 1 } else if (country = "IND" && average < 1000){ return 1 } else { return 0 } """; |
Contoh aturan untuk memeriksa jumlah transaksi rata-rata untuk country=CAN .
myProject.myDataset.average_by_country( "CAN", (select avg(amount) from myProject.myDataset.transactions_table where currency_id = 'CAN' )) |
Kondisi agregat | Klausa prediksi BigQuery ML untuk mengidentifikasi anomali di discount_pct . Kode ini memeriksa apakah diskon harus diterapkan berdasarkan customer , currency , dan transaction . Aturan tersebut akan memeriksa apakah prediksi cocok dengan nilai sebenarnya, minimal 99% kali. Asumsi: Model ML dibuat sebelum menggunakan aturan. Buat model ML menggunakan perintah berikut:
CREATE MODEL model-project-id.dataset-id.model-name OPTIONS(model_type='logistic_reg') AS SELECT IF(discount_pct IS NULL, 0, 1) AS label, IFNULL(customer_id, "") AS customer, IFNULL(currency_id, "") AS currency, IFNULL(amount, 0.0) AS amount FROM `data-project-id.dataset-id.table-names` WHERE transaction_timestamp < '2022-01-01'; |
Pemeriksaan berikut memeriksa apakah akurasi prediksi sebesar >99%.
SELECT accuracy > 0.99 FROM ML.EVALUATE (MODEL model-project-id.dataset-id.model-name, ( SELECT customer_id, currency_id, amount, discount_pct FROM data-project-id.dataset-id.table-names WHERE transaction_timestamp > '2022-01-01'; ) ) |
Kondisi baris | BigQuery ML memprediksi fungsi untuk mengidentifikasi anomali di discount_pct . Fungsi ini
memeriksa apakah diskon harus diterapkan berdasarkan customer ,
currency , dan transaction .
Aturan tersebut mengidentifikasi semua kejadian di mana prediksi tidak cocok.
Asumsi: Model ML dibuat sebelum menggunakan aturan. Buat model ML menggunakan perintah berikut:
CREATE MODEL model-project-id.dataset-id.model-name OPTIONS(model_type='logistic_reg') AS SELECT IF(discount_pct IS NULL, 0, 1) AS label, IFNULL(customer_id, "") AS customer, IFNULL(currency_id, "") AS currency, IFNULL(amount, 0.0) AS amount FROM `data-project-id.dataset-id.table-names` WHERE transaction_timestamp < '2022-01-01'; |
Pemeriksaan berikut mengidentifikasi apakah prediksi diskon cocok dengan prediksi diskon sebenarnya untuk setiap baris.
IF(discount_pct > 0, 1, 0) =(SELECT predicted_label FROM ML.PREDICT( MODEL model-project-id.dataset-id.model-name, ( SELECT customer_id, currency_id, amount, discount_pct FROM data-project-id.dataset-id.table-names as t WHERE t.transaction_timestamp = transaction_timestamp LIMIT 1 ) ) ) |
Menentukan aturan kualitas data menggunakan gcloud CLI
Contoh file YAML berikut menggunakan aturan yang sama dengan aturan contoh yang menggunakan jenis bawaan dan contoh aturan SQL kustom. Anda dapat menggunakan file YAML ini sebagai input ke perintah CLI gcloud.
rules:
- uniquenessExpectation: {}
column: transaction_id
dimension: UNIQUENESS
- nonNullExpectation: {}
column: amount
dimension: COMPLETENESS
threshold: 1
- regexExpectation:
regex: '^[0-9]{8}[a-zA-Z]{16}$'
column : customer_id
ignoreNull : true
dimension : VALIDITY
threshold : 1
- setExpectation :
values :
- 'USD'
- 'JPY'
- 'INR'
- 'GBP'
- 'CAN'
column : currency_id
ignoreNull : true
dimension : VALIDITY
threshold : 1
- rowConditionExpectation:
sqlExpression : 0 < `discount_pct` AND `discount_pct` < 100
column: discount_pct
dimension: VALIDITY
threshold: 1
- rowConditionExpectation:
sqlExpression : currency_id in (select id from `my_project_id.dim_dataset.dim_currency`)
column: currency_id
dimension: VALIDITY
threshold: 1
- tableConditionExpectation:
sqlExpression : 30 < avg(discount_pct) AND avg(discount_pct) < 50
dimension: VALIDITY
- rowConditionExpectation:
sqlExpression : TIMESTAMP(transaction_timestamp) < CURRENT_TIMESTAMP()
column: transaction_timestamp
dimension: VALIDITY
threshold: 1
Membuat pemindaian kualitas data
Konsol
Di konsol Google Cloud, buka halaman Kualitas data.
Klik Buat pemindaian kualitas data.
Di jendela Define pindai, isi kolom berikut:
Masukkan Nama tampilan.
ID pemindaian dibuat secara otomatis jika Anda tidak memberikan ID Anda sendiri. Baca konvensi penamaan resource.
Opsional: Masukkan Deskripsi..
Di kolom Table, klik Browse, pilih tabel, lalu klik Select. Dataplex hanya mendukung tabel BigQuery standar.
Untuk tabel dalam set data multi-region, pilih region tempat untuk membuat pemindaian data.
Untuk menjelajahi tabel yang diatur dalam lake Dataplex, klik Browsedalam Dataplex Lakes.
Di kolom Cakupan, pilih Inkremental atau Seluruh data.
- Jika Anda memilih Inkremental: Di kolom Stempel waktu,
pilih kolom jenis
DATE
atauTIMESTAMP
dari tabel BigQuery yang meningkat secara monoton dan dapat digunakan untuk mengidentifikasi data baru. Kolom ini bisa berupa kolom yang mempartisi tabel.
- Jika Anda memilih Inkremental: Di kolom Stempel waktu,
pilih kolom jenis
Opsional: Tambahkan label. Label adalah pasangan
key:value
yang dapat Anda gunakan untuk mengelompokkan objek terkait secara bersamaan atau dengan resource Google Cloud lainnya.Untuk memfilter data, klik Filter. Centang kotak Filter rows. Nilai input untuk filter baris harus berupa ekspresi SQL yang valid dan dapat digunakan sebagai bagian dari klausa
WHERE
dalam sintaksis SQL standar BigQuery. Contohnya,col1 >= 0
Filter dapat berupa kombinasi dari beberapa kondisi kolom. Misalnya,col1 >= 0 AND col2 < 10
.Untuk mengambil sampel data, dalam daftar Ukuran pengambilan sampel, pilih persentase pengambilan sampel. Pilih nilai persentase yang berkisar antara 0,0% dan 100,0% dengan maksimal 3 digit desimal. Untuk set data yang lebih besar, pilih persentase sampling yang lebih rendah. Misalnya, untuk tabel berukuran ~1 PB, jika Anda memasukkan nilai antara 0,1% hingga 1,0%, Dataplex akan mengambil sampel antara 1–10 TB data. Untuk pemindaian data secara inkremental, Dataplex menerapkan pengambilan sampel ke penambahan terbaru.
Untuk memublikasikan hasil pemindaian kualitas data di halaman BigQuery dan Data Catalog di konsol Google Cloud untuk tabel sumber, klik kotak centang Publish results to the BigQuery and Dataplex Catalog UI. Anda dapat melihat hasil pemindaian terbaru di tab Kualitas Data di halaman BigQuery dan Katalog Data untuk tabel sumber. Untuk memungkinkan pengguna mengakses hasil pemindaian yang dipublikasikan, lihat Membagikan hasil yang dipublikasikan. Opsi publikasi mungkin tidak tersedia dalam kasus berikut:
- Anda tidak memiliki izin yang diperlukan pada tabel.
- Pemindaian kualitas data lainnya ditetapkan untuk memublikasikan hasil.
Untuk informasi selengkapnya tentang izin yang diperlukan untuk melihat hasil yang dipublikasikan, lihat Izin.
Klik Lanjutkan.
Di jendela Jadwal, pilih salah satu opsi berikut:
Ulangi: Jalankan tugas pemindaian kualitas data sesuai jadwal: harian, mingguan, bulanan, atau kustom. Tentukan frekuensi pemindaian dan waktunya. Jika Anda memilih kustom, gunakan format cron untuk menentukan jadwal.
Sesuai permintaan: Menjalankan tugas pemindaian kualitas data sesuai permintaan.
Klik Lanjutkan.
Di jendela Aturan kualitas data, tentukan aturan yang dikonfigurasi untuk pemindaian kualitas data ini. Klik Tambahkan aturan, lalu pilih salah satu opsi berikut.
Opsi 1: Rekomendasi berbasis profil: Membuat aturan dari rekomendasi berdasarkan pemindaian pembuatan profil data yang ada.
Pilih kolom: Memilih kolom untuk mendapatkan aturan yang direkomendasikan.
Scan project: Rekomendasi berdasarkan pemindaian pembuatan profil data yang ada. Secara default, Dataplex memilih pemindaian pembuatan profil dari project yang sama tempat Anda membuat pemindaian kualitas data. Jika membuat pemindaian di project lain, Anda harus menentukan project yang digunakan untuk mengambil pemindaian profil.
Pilih hasil profil: Berdasarkan kolom dan project yang Anda pilih, beberapa hasil profil akan muncul.
Pilih satu atau beberapa hasil profil, lalu klik OK. Tindakan ini akan mengisi daftar aturan yang dapat dipilih.
Pilih aturan yang ingin Anda edit dengan mencentang kotak dan mengklik Pilih. Setelah dipilih, aturan akan ditambahkan ke daftar aturan Anda saat ini. Kemudian, Anda dapat mengedit aturan tersebut.
Opsi 2: Jenis aturan bawaan: Membuat aturan dari aturan standar. Lihat daftar aturan yang telah ditetapkan.
Pilih kolom: Memilih kolom yang aturannya akan dipilih.
Pilih jenis aturan: Berdasarkan kolom yang Anda pilih, beberapa jenis aturan akan muncul untuk dipilih.
Pilih satu atau beberapa jenis aturan, lalu klik Oke. Tindakan ini akan mengisi daftar aturan yang dapat dipilih.
Pilih aturan yang ingin Anda edit dengan mencentang kotak dan mengklik Pilih. Setelah dipilih, aturan akan ditambahkan ke daftar aturan saat ini. Kemudian, Anda dapat mengedit aturannya.
Opsi 3: Aturan pemeriksaan baris SQL: Buat aturan SQL kustom untuk diterapkan ke setiap baris (aturan pemeriksaan baris SQL kustom).
Di Dimensi, pilih satu dimensi.
Pada bagian Passing threshold, pilih persentase data yang harus lulus pemeriksaan.
Pada Nama kolom, pilih kolom.
Di kolom Sediakan ekspresi SQL, masukkan ekspresi SQL yang dievaluasi ke boolean
true
(lulus) ataufalse
(gagal). Untuk mengetahui informasi selengkapnya, lihat Jenis aturan SQL kustom yang didukung dan contohnya di bagian Menentukan aturan kualitas data dalam dokumen ini.Klik Tambahkan.
Opsi 4: Aturan pemeriksaan agregat SQL: Buat aturan pemeriksaan agregat SQL kustom.
Di Dimensi, pilih satu dimensi.
Pada Nama kolom, pilih kolom.
Di kolom Sediakan ekspresi SQL, masukkan ekspresi SQL yang dievaluasi ke boolean
true
(lulus) ataufalse
(gagal). Untuk mengetahui informasi selengkapnya, lihat Jenis aturan SQL kustom yang didukung dan contohnya di bagian Menentukan aturan kualitas data dalam dokumen ini.Klik Tambahkan.
Dataplex memungkinkan nama kustom untuk aturan kualitas data untuk pemantauan dan pemberitahuan. Untuk setiap aturan kualitas data, Anda dapat menetapkan nama aturan khusus dan deskripsi (opsional). Untuk melakukannya, edit aturan dan tentukan detail berikut:
- Nama aturan: Masukkan nama aturan kustom yang berisi maksimal 63 karakter. Nama aturan dapat menyertakan huruf (a-z, A-Z), angka (0-9), dan tanda hubung (-), serta harus diawali dengan huruf dan diakhiri dengan angka atau huruf.
- Deskripsi: Masukkan deskripsi aturan dengan panjang maksimum 1.024 karakter.
Klik Lanjutkan.
Opsional: Ekspor hasil pemindaian ke tabel standar BigQuery. Klik Browse untuk memilih set data BigQuery yang ada untuk menyimpan hasil pemindaian kualitas data.
Jika tabel yang ditentukan tidak ada, Dataplex akan membuatnya untuk Anda. Jika Anda menggunakan tabel yang sudah ada, pastikan tabel tersebut kompatibel dengan skema tabel ekspor.
Klik Create.
Setelah pemindaian dibuat, Anda dapat menjalankannya kapan saja dengan mengklik Jalankan sekarang.
gcloud
Untuk membuat pemindaian kualitas data, gunakan
perintah gcloud dataplex datascans create data-quality
.
Jika data sumber diatur dalam lake Dataplex, sertakan
flag --data-source-entity
:
gcloud dataplex datascans create data-quality DATASCAN \
--location=LOCATION \
--data-quality-spec-file=DATA_QUALITY_SPEC_FILE \
--data-source-entity=DATA_SOURCE_ENTITY
Jika data sumber tidak diatur dalam lake Dataplex, sertakan
flag --data-source-resource
:
gcloud dataplex datascans create data-quality DATASCAN \
--location=LOCATION \
--data-quality-spec-file=DATA_QUALITY_SPEC_FILE \
--data-source-resource=DATA_SOURCE_RESOURCE
Ganti variabel berikut:
DATASCAN
: Nama pemindaian kualitas data.LOCATION
: Region Google Cloud tempat pemindaian kualitas data dilakukan.DATA_QUALITY_SPEC_FILE
: Jalur ke file JSON atau YAML yang berisi spesifikasi untuk pemindaian kualitas data. File tersebut dapat berupa file lokal atau jalur Cloud Storage dengan awalangs://
. Anda dapat menentukan kolom tambahan dalam file ini, sepertirules
,rowFilter
, atausamplingPercent
. Lihat dokumentasi untuk representasi JSON.DATA_SOURCE_ENTITY
: Entitas Dataplex yang berisi data untuk pemindaian kualitas data. Misalnya,projects/test-project/locations/test-location/lakes/test-lake/zones/test-zone/entities/test-entity
.DATA_SOURCE_RESOURCE
: Nama resource yang berisi data untuk pemindaian kualitas data. Misalnya,//bigquery.googleapis.com/projects/test-project/datasets/test-dataset/tables/test-table
.
REST
Gunakan APIs Explorer untuk membuat pemindaian kualitas data.
Mengekspor skema tabel
Untuk mengekspor hasil pemindaian kualitas data ke tabel BigQuery yang sudah ada, pastikan hasil pemindaian tersebut kompatibel dengan skema tabel berikut:
Nama kolom | Jenis data kolom | Nama subkolom (jika ada) |
Jenis data sub-kolom | Mode | Contoh |
---|---|---|---|---|---|
data_quality_scan | struct/record |
resource_name |
string |
nullable | //dataplex.googleapis.com/projects/test-project/locations/europe-west2/datascans/test-datascan |
project_id |
string |
nullable | dataplex-back-end-dev-project |
||
location |
string |
nullable | us-central1 |
||
data_scan_id |
string |
nullable | test-datascan |
||
data_source | struct/record |
resource_name |
string |
nullable | Kasus entitas://dataplex.googleapis.com/projects/dataplex-back-end-dev-project/locations/europe-west2/lakes/a0-datascan-test-lake/zones/a0-datascan-test-zone/entities/table1 Kasus tabel: //bigquery.googleapis.com/projects/test-project/datasets/test-dataset/tables/test-table
|
dataplex_entity_project_id |
string |
nullable | dataplex-back-end-dev-project |
||
dataplex_entity_project_number |
integer |
nullable | 123456789 |
||
dataplex_lake_id |
string |
nullable | (Hanya valid jika sumber adalah entitas)test-lake
|
||
dataplex_zone_id |
string |
nullable | (Hanya valid jika sumber adalah entitas)test-zone |
||
dataplex_entity_id |
string |
nullable | (Hanya valid jika sumber adalah entitas)test-entity |
||
table_project_id |
string |
nullable | test-project |
||
table_project_number |
integer |
nullable | 987654321 |
||
dataset_id |
string |
nullable | (Hanya valid jika sumber adalah tabel)test-dataset |
||
table_id |
string |
nullable | (Hanya valid jika sumber adalah tabel)test-table |
||
data_quality_job_id | string |
nullable | caeba234-cfde-4fca-9e5b-fe02a9812e38 |
||
data_quality_job_configuration | json |
trigger |
string |
nullable | ondemand /schedule |
incremental |
boolean |
nullable | true /false |
||
sampling_percent |
float |
nullable | (0-100)20.0 (menunjukkan 20%) |
||
row_filter |
string |
nullable | col1 >= 0 AND col2 < 10 |
||
job_labels | json |
nullable | {"key1":value1} |
||
job_start_time | timestamp |
nullable | 2023-01-01 00:00:00 UTC |
||
job_end_time | timestamp |
nullable | 2023-01-01 00:00:00 UTC |
||
job_rows_scanned | integer |
nullable | 7500 |
||
rule_name | string |
nullable | test-rule |
||
rule_type | string |
nullable | Range Check |
||
rule_evaluation_type | string |
nullable | Per row |
||
rule_column | string |
nullable | Rule only attached to a certain column |
||
rule_dimension | string |
nullable | Uniqueness |
||
job_quality_result | struct/record |
passed |
boolean |
nullable | true /false |
score |
float |
nullable | 90.8 |
||
job_dimension_result | json |
nullable | { "accuracy":{ "passed":true }, "consistency":{ "passed":false } }
|
||
rule_threshold_percent | float |
nullable | (0,0-100,0)Rule-threshold-pct in API * 100 |
||
rule_parameters | json |
nullable | {min: 24, max:5345} |
||
rule_pass | boolean |
nullable | True |
||
rule_rows_evaluated | integer |
nullable | 7400 |
||
rule_rows_passed | integer |
nullable | 3 |
||
rule_rows_null | integer |
nullable | 4 |
||
rule_failed_records_query | string |
nullable | "SELECT * FROM `test-project.test-dataset.test-table` WHERE (NOT((`cTime` >= '15:31:38.776361' and `cTime` <= '19:23:53.754823') IS TRUE));" |
Saat Anda mengonfigurasi BigQueryExport untuk tugas pemindaian kualitas data, ikuti panduan berikut:
- Untuk kolom
resultsTable
, gunakan format://bigquery.googleapis.com/projects/{project-id}/datasets/{dataset-id}/tables/{table-id}
. - Menggunakan tabel standar BigQuery.
- Jika tabel tidak ada saat pemindaian dibuat atau diperbarui, Dataplex akan membuatkan tabel tersebut untuk Anda.
- Secara default, tabel dipartisi pada kolom
job_start_time
setiap hari. - Jika Anda ingin tabel dipartisi dalam konfigurasi lain atau jika tidak ingin partisi, buat ulang tabel dengan skema dan konfigurasi yang diperlukan, lalu berikan tabel yang sudah dibuat sebelumnya sebagai tabel hasil.
- Pastikan tabel hasil berada di lokasi yang sama dengan tabel sumber.
- Jika VPC-SC dikonfigurasi pada project, tabel hasil harus berada di perimeter VPC-SC yang sama dengan tabel sumber.
- Jika tabel diubah selama tahap eksekusi pemindaian, tugas yang sedang berjalan akan diekspor ke tabel hasil sebelumnya dan perubahan tabel akan diterapkan dari tugas pemindaian berikutnya.
- Jangan ubah skema tabel. Jika Anda membutuhkan kolom yang disesuaikan, buatlah tampilan di atas tabel.
- Untuk mengurangi biaya, tetapkan waktu habis masa berlaku pada partisi berdasarkan kasus penggunaan Anda. Untuk mengetahui informasi selengkapnya, lihat cara menetapkan masa berlaku partisi.
Jalankan pemindaian kualitas data
Konsol
- Di konsol Google Cloud, buka halaman Kualitas data. Buka Kualitas Data Dataplex
- Klik pemindaian kualitas data untuk menjalankan.
- Klik Jalankan sekarang.
gcloud
Untuk menjalankan pemindaian kualitas data, gunakan
perintah gcloud dataplex datascans run
:
gcloud dataplex datascans run DATASCAN \ --location=LOCATION \
Ganti variabel berikut:
LOCATION
: Region Google Cloud tempat pemindaian kualitas data dibuat.DATASCAN
: Nama pemindaian kualitas data.
REST
Gunakan APIs Explorer untuk menjalankan pemindaian kualitas data.
Melihat hasil tugas pemindaian kualitas data
Konsol
Pemindaian kualitas data yang Anda buat akan muncul di halaman Kualitas data.
Untuk melihat detail hasil pemindaian, klik nama pemindaian.
Bagian Overview menampilkan informasi tentang tujuh eksekusi terakhir, termasuk saat pemindaian dieksekusi, jumlah catatan yang dipindai di setiap tugas, apakah semua pemeriksaan kualitas data lulus, apakah ada kegagalan, jumlah pemeriksaan kualitas data yang gagal, dan dimensi mana yang gagal.
Bagian Konfigurasi pemindaian kualitas data menampilkan detail tentang pemindaian.
gcloud
Untuk melihat hasil tugas pemindaian kualitas data, gunakan
perintah gcloud dataplex datascans jobs describe
:
gcloud dataplex datascans jobs describe JOB \ --location=LOCATION \ --datascan=DATASCAN \ --view=FULL
Ganti variabel berikut:
JOB
: ID tugas tugas pemindaian kualitas data.LOCATION
: Region Google Cloud tempat pemindaian kualitas data dibuat.DATASCAN
: Nama pemindaian kualitas data yang dimiliki tugas tersebut.--view=FULL
: Untuk melihat hasil tugas pemindaian, tentukanFULL
.
REST
Gunakan APIs Explorer untuk melihat hasil pemindaian kualitas data.
Lihat semua tugas pemindaian kualitas data
Dataplex menyimpan histori pemindaian kualitas data dari 300 tugas terakhir atau selama setahun terakhir, mana saja yang lebih dulu.
Konsol
Tab Histori tugas memberikan informasi tentang pekerjaan sebelumnya. Fungsi ini mencantumkan semua tugas, jumlah catatan yang dipindai dalam setiap tugas, status tugas, waktu tugas dijalankan, apakah setiap aturan lulus atau gagal, dan lainnya.
Untuk melihat informasi mendetail tentang sebuah tugas, klik salah satu tugas di kolom Job ID.
gcloud
Untuk melihat semua tugas pemindaian kualitas data, gunakan
perintah gcloud dataplex datascans jobs list
:
gcloud dataplex datascans jobs list \ --location=LOCATION \ --datascan=DATASCAN \
Ganti variabel berikut:
LOCATION
: Region Google Cloud tempat pemindaian kualitas data dibuat.DATASCAN
: Nama pemindaian kualitas data untuk melihat semua tugas.
REST
Gunakan APIs Explorer untuk melihat semua tugas pemindaian.
Bagikan hasil yang dipublikasikan
Saat membuat pemindaian kualitas data, jika Anda memilih untuk memublikasikan hasil pemindaian di halaman BigQuery dan Data Catalog di Konsol Google Cloud, hasil pemindaian terbaru akan tersedia di tab Kualitas Data di halaman tersebut.
Anda dapat mengizinkan pengguna di organisasi Anda mengakses hasil pemindaian yang dipublikasikan. Untuk memberikan akses ke hasil pemindaian, ikuti langkah-langkah berikut:
Di konsol Google Cloud, buka halaman Profile.
Klik pemindaian kualitas data yang ingin Anda bagikan hasilnya.
Buka tab Izin.
Klik Grant access.
Di kolom New principals, tambahkan akun utama yang ingin Anda beri akses.
Di kolom Select a role, pilih Dataplex DataScan DataViewer.
Klik Save.
Untuk menghapus akses ke hasil pemindaian yang dipublikasikan untuk akun utama, ikuti langkah-langkah berikut:
Di konsol Google Cloud, buka halaman Profile.
Klik pemindaian kualitas data yang ingin Anda bagikan hasilnya.
Buka tab Izin.
Pilih akun utama yang peran Dataplex DataScan DataViewer Anda ingin hapus.
Klik Hapus akses.
Klik Confirm.
Memperbarui pemindaian kualitas data
Konsol
Di konsol Google Cloud, buka halaman Data Quality.
Pada baris yang berisi pemindaian yang akan diedit, klik tiga titik vertikal > Edit.
Edit the values.
Klik Save.
gcloud
Untuk memperbarui deskripsi pemindaian kualitas data, gunakan
perintah gcloud dataplex datascans update data-quality
:
gcloud dataplex datascans update data-quality DATASCAN \ --location=LOCATION \ --description=DESCRIPTION
Ganti kode berikut:
DATASCAN
: Nama pemindaian kualitas data yang akan diperbarui.LOCATION
: Region Google Cloud tempat pemindaian kualitas data dibuat.DESCRIPTION
: Deskripsi baru untuk pemindaian kualitas data.
REST
Gunakan APIs Explorer untuk mengedit pemindaian kualitas data.
Menghapus pemindaian kualitas data
Konsol
Di konsol Google Cloud, buka halaman Kualitas data.
Klik pemindaian yang ingin Anda hapus.
Klik Delete.
gcloud
Untuk menghapus pemindaian kualitas data, gunakan
perintah gcloud dataplex datascans delete
:
gcloud dataplex datascans delete DATASCAN \ --location=LOCATION \ --async
Ganti variabel berikut:
DATASCAN
: Nama pemindaian kualitas data yang akan dihapus.LOCATION
: Region Google Cloud tempat pemindaian kualitas data dibuat.
REST
Gunakan APIs Explorer untuk menghapus pemindaian kualitas data Anda.
Menyetel pemberitahuan di Cloud Logging
Untuk menyetel pemberitahuan atas kegagalan kualitas data menggunakan log di Cloud Logging, ikuti langkah-langkah berikut:
Konsol
Di konsol Google Cloud, buka Cloud Logging Logs Explorer.
Di jendela Query, masukkan kueri Anda. Lihat contoh kueri.
Klik Run Query.
Klik Buat pemberitahuan. Tindakan ini akan membuka panel samping.
Masukkan nama kebijakan pemberitahuan Anda, lalu klik Next.
Tinjau kueri.
Klik tombol Preview Logs untuk menguji kueri Anda. Parameter ini menunjukkan log dengan kondisi yang cocok.
Klik Next.
Tetapkan waktu antar-notifikasi, lalu klik Berikutnya.
Tentukan siapa yang akan diberi tahu untuk pemberitahuan, lalu klik Save untuk membuat kebijakan pemberitahuan.
Atau, Anda dapat mengonfigurasi dan mengedit pemberitahuan dengan membuka Monitoring > Alerting di Konsol Google Cloud.
gcloud
Tidak didukung.
REST
Gunakan APIs Explorer untuk menyetel pemberitahuan di Cloud Logging.
Contoh kueri untuk menetapkan notifikasi tingkat dimensi atau tingkat tugas
Contoh kueri untuk menetapkan pemberitahuan tentang kegagalan kualitas data untuk pemindaian kualitas data:
resource.type="dataplex.googleapis.com/DataScan" AND labels."dataplex.googleapis.com/data_scan_state"="SUCCEEDED" AND resource.labels.resource_container="projects/112233445566" AND resource.labels.datascan_id="a0-test-dec6-dq-3" AND NOT jsonPayload.dataQuality.passed=true
Contoh kueri untuk menetapkan pemberitahuan terkait kegagalan kualitas data untuk dimensi (misalnya, keunikan) dari pemindaian kualitas data tertentu:
resource.type="dataplex.googleapis.com/DataScan" AND labels."dataplex.googleapis.com/data_scan_state"="SUCCEEDED" AND resource.labels.resource_container="projects/112233445566" AND resource.labels.datascan_id="a0-test-dec6-dq-3" AND jsonPayload.dataQuality.dimensionPassed.UNIQUENESS=false
Contoh kueri untuk menetapkan pemberitahuan tentang kegagalan kualitas data untuk sebuah tabel.
Tetapkan pemberitahuan terkait kegagalan kualitas data untuk tabel BigQuery yang tidak diatur dalam lake Dataplex:
resource.type="dataplex.googleapis.com/DataScan" AND jsonPayload.dataSource="//bigquery.googleapis.com/projects/test-project/datasets/testdataset/table/chicago_taxi_trips" AND labels."dataplex.googleapis.com/data_scan_state"="SUCCEEDED" AND resource.labels.resource_container="projects/112233445566" AND NOT jsonPayload.dataQuality.passed=true
Tetapkan pemberitahuan tentang kegagalan kualitas data untuk tabel BigQuery yang diatur di lake Dataplex:
resource.type="dataplex.googleapis.com/DataScan" AND jsonPayload.dataSource="projects/test-project/datasets/testdataset/table/chicago_taxi_trips" AND labels."dataplex.googleapis.com/data_scan_state"="SUCCEEDED" AND resource.labels.resource_container="projects/112233445566" AND NOT jsonPayload.dataQuality.passed=true
Contoh kueri yang akan ditetapkan pemberitahuan per aturan
Contoh kueri untuk menetapkan pemberitahuan tentang semua aturan kualitas data yang gagal dengan nama aturan kustom yang ditentukan untuk pemindaian kualitas data:
resource.type="dataplex.googleapis.com/DataScan" AND jsonPayload.ruleName="custom-name" AND jsonPayload.result="FAILED"
Contoh kueri untuk menetapkan pemberitahuan tentang semua aturan kualitas data yang gagal dari jenis evaluasi tertentu untuk pemindaian kualitas data:
resource.type="dataplex.googleapis.com/DataScan" AND jsonPayload.evalutionType="PER_ROW" AND jsonPayload.result="FAILED"
Contoh kueri untuk menetapkan pemberitahuan tentang semua aturan kualitas data yang gagal untuk kolom dalam tabel yang digunakan untuk pemindaian kualitas data:
resource.type="dataplex.googleapis.com/DataScan" AND jsonPayload.column="CInteger" AND jsonPayload.result="FAILED"
Memecahkan masalah kegagalan kualitas data
Untuk setiap tugas dengan aturan tingkat baris yang gagal, Dataplex akan menyediakan kueri untuk mendapatkan kumpulan data yang gagal. Jalankan kueri ini untuk melihat data yang tidak cocok dengan aturan Anda.
Konsol
Di konsol Google Cloud, buka halaman Kualitas data.
Pilih pemindaian untuk memecahkan masalah dengan mengklik Nama tampilan-nya.
Di tab Jobs history, temukan eksekusi pemindaian yang gagal, lalu klik link kegagalan.
Di jendela tugas yang terbuka, di bagian Rules, cari kolom Query to get failed record.
Salin kueri untuk menjalankannya di BigQuery dan lihat data yang menyebabkan tugas gagal.
gcloud
Tidak didukung.
REST
Gunakan APIs Explorer untuk melihat kueri guna mendapatkan data yang gagal untuk tugas yang gagal.
Apa langkah selanjutnya?
- Pelajari pembuatan profil data.
- Pelajari cara menggunakan pembuatan profil data.
- Ikuti tutorial untuk mengelola aturan kualitas data sebagai kode dengan Terraform.