Halaman ini menjelaskan cara membuat pemindaian kualitas data Dataplex Universal Catalog.
Untuk mempelajari pemindaian kualitas data, lihat Tentang kualitas data otomatis.
Sebelum memulai
-
Enable the Dataplex API.
- Opsional: Jika Anda ingin Dataplex Universal Catalog membuat rekomendasi untuk aturan kualitas data berdasarkan hasil pemindaian profil data, buat dan jalankan pemindaian profil data.
Peran yang diperlukan
Untuk menjalankan pemindaian kualitas data pada tabel BigQuery, Anda memerlukan izin untuk membaca tabel BigQuery dan izin untuk membuat tugas BigQuery di project yang digunakan untuk memindai tabel.
Jika tabel BigQuery dan pemindaian kualitas data berada di project yang berbeda, Anda harus memberikan izin baca ke akun layanan Dataplex Universal Catalog dari project yang berisi pemindaian kualitas data untuk tabel BigQuery yang sesuai.
Jika aturan kualitas data merujuk ke tabel tambahan, akun layanan project pemindaian harus memiliki izin baca pada tabel yang sama.
Untuk mendapatkan izin yang diperlukan untuk mengekspor hasil pemindaian ke tabel BigQuery, minta administrator Anda untuk memberikan peran IAM BigQuery Data Editor (
roles/bigquery.dataEditor
) kepada akun layanan Dataplex Universal Catalog di set data dan tabel hasil. Hal 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 di lake Katalog Universal Dataplex, berikan peran IAM Dataplex Metadata Reader (
roles/dataplex.metadataReader
) dan Dataplex Viewer (roles/dataplex.viewer
) ke akun layanan Katalog Universal 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 Storage Object Viewer (
roles/storage.objectViewer
) untuk bucket kepada akun layanan Dataplex Universal Catalog. Atau, tetapkan izin berikut ke akun layanan Dataplex Universal Catalog:storage.buckets.get
storage.objects.get
Jika ingin memublikasikan hasil pemindaian kualitas data sebagai metadata Katalog Universal Dataplex, Anda harus diberi peran IAM Editor Data BigQuery (
roles/bigquery.dataEditor
) untuk tabel, dan izindataplex.entryGroups.useDataQualityScorecardAspect
pada grup entri@bigquery
di lokasi yang sama dengan tabel. Atau, Anda harus diberi peran Dataplex Catalog Editor (roles/dataplex.catalogEditor
) untuk grup entri@bigquery
di lokasi yang sama dengan tabel.Atau, Anda memerlukan semua izin berikut:
bigquery.tables.get
- di atas mejabigquery.tables.update
- di atas mejabigquery.tables.updateData
- di atas mejabigquery.tables.delete
- di atas mejadataplex.entryGroups.useDataQualityScorecardAspect
- di grup entri@bigquery
Atau, Anda memerlukan semua izin berikut:
dataplex.entries.update
- di grup entri@bigquery
dataplex.entryGroups.useDataQualityScorecardAspect
- di grup entri@bigquery
Jika Anda perlu mengakses kolom yang dilindungi oleh kebijakan akses tingkat kolom BigQuery, tetapkan izin akun layanan Dataplex Universal Catalog untuk kolom tersebut. Pengguna yang membuat atau memperbarui pemindaian data juga memerlukan izin untuk kolom.
Jika kebijakan akses tingkat baris BigQuery diaktifkan untuk tabel, Anda hanya dapat memindai baris yang terlihat oleh akun layanan Dataplex Universal Catalog. Perhatikan bahwa hak akses pengguna perorangan tidak dievaluasi untuk kebijakan tingkat baris.
Peran pemindaian data yang diperlukan
Untuk menggunakan kualitas data otomatis, minta administrator Anda untuk memberi Anda salah satu peran IAM berikut:
- Akses penuh ke resource
DataScan
: Administrator Dataplex DataScan (roles/dataplex.dataScanAdmin
) - Untuk membuat resource
DataScan
: Pembuat Dataplex DataScan (roles/dataplex.dataScanCreator
) di project - Akses tulis ke resource
DataScan
: Editor Dataplex DataScan (roles/dataplex.dataScanEditor
) - Akses baca ke resource
DataScan
, tidak termasuk aturan dan hasil: Dataplex DataScan Viewer (roles/dataplex.dataScanViewer
) - Akses baca ke resource
DataScan
, termasuk aturan dan hasil: Dataplex DataScan DataViewer (roles/dataplex.dataScanDataViewer
)
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 bukan hasil dan aturan |
dataplex.datascans.getData |
Melihat detail DataScan termasuk aturan dan hasil |
dataplex.datascans.list |
Daftar DataScan |
dataplex.datascans.run |
Jalankan DataScan |
dataplex.datascans.update |
Memperbarui deskripsi DataScan |
dataplex.datascans.getIamPolicy |
Melihat izin IAM saat ini pada pemindaian |
dataplex.datascans.setIamPolicy |
Menetapkan izin IAM pada pemindaian |
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 ini memvalidasi tabel contoh yang berisi data tentang transaksi pelanggan. Asumsikan tabel memiliki skema berikut:
Nama kolom | Jenis kolom | Deskripsi kolom |
---|---|---|
transaction_timestamp | Stempel waktu | Stempel waktu transaksi. Tabel dipartisi pada kolom ini. |
customer_id | String | ID pelanggan dalam format 8 huruf yang diikuti dengan 16 digit. |
transaction_id | String | ID transaksi harus unik di seluruh tabel. |
currency_id | String | Salah satu mata uang yang didukung.Jenis mata uang harus cocok dengan salah satu mata uang yang tersedia dalam tabel dimensi dim_currency .
|
amount | 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. Katalog Universal Dataplex mungkin merekomendasikan beberapa aturan ini.
Nama kolom | Jenis Aturan | Dimensi yang disarankan | Parameter aturan |
---|---|---|---|
transaction_id |
Pemeriksaan keunikan | Keunikan | Nilai minimum: Not Applicable |
amount |
Pemeriksaan null | Kelengkapan | Nilai minimum: 100% |
customer_id |
Pemeriksaan Regex (ekspresi reguler) | Validitas | Regular expression: ^[0-9]{8}[a-zA-Z]{16}$ Ambang batas: 100%
|
currency_id |
Pemeriksaan kumpulan nilai | Validitas | Setel untuk: USD,JPY,INR,GBP,CAN Ambang batas: 100%
|
Menentukan aturan kualitas data menggunakan aturan SQL kustom
Untuk membuat aturan SQL kustom, gunakan framework berikut:
Saat Anda membuat aturan yang mengevaluasi satu baris dalam satu waktu, buat ekspresi yang menghasilkan jumlah baris yang berhasil saat Dataplex Universal Catalog mengevaluasi kueri
SELECT COUNTIF(CUSTOM_SQL_EXPRESSION) FROM TABLE
. Dataplex Universal Catalog memeriksa jumlah baris yang berhasil terhadap nilai minimum.Saat Anda membuat aturan yang mengevaluasi di seluruh baris atau menggunakan kondisi tabel, buat ekspresi yang menampilkan keberhasilan atau kegagalan saat Katalog Universal Dataplex mengevaluasi kueri
SELECT IF(CUSTOM_SQL_EXPRESSION) FROM TABLE
.Saat Anda membuat aturan yang mengevaluasi status set data yang tidak valid, berikan pernyataan yang menampilkan baris yang tidak valid. Jika ada baris yang ditampilkan, aturan akan gagal. Hapus titik koma di akhir pernyataan SQL.
Anda dapat merujuk ke tabel sumber data dan semua filter prasyaratnya dengan menggunakan parameter referensi data
${data()}
dalam aturan, bukan secara eksplisit menyebutkan tabel sumber dan filternya. Contoh filter prasyarat mencakup filter baris, persentase pengambilan sampel, dan filter inkremental. Parameter${data()}
peka huruf besar/kecil.
Contoh aturan berikut didasarkan pada aturan SQL kustom.
Jenis aturan | Deskripsi aturan | Ekspresi SQL |
---|---|---|
Kondisi baris | Memeriksa apakah nilai discount_pct
berada di antara 0 dan 100.
|
0 <discount_pct AND 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 tabel | Ekspresi SQL gabungan yang memeriksa apakah rata-rata discount_pct berada di antara 30% dan 50%.
|
30<avg(discount) AND avg(discount) <50
|
Kondisi baris | Memeriksa apakah tanggal tidak berada di masa mendatang. | TIMESTAMP(transaction_timestamp) < CURRENT_TIMESTAMP()
|
Kondisi tabel |
Fungsi yang ditentukan pengguna (UDF) BigQuery
untuk memeriksa apakah jumlah transaksi rata-rata kurang dari nilai
yang telah ditentukan sebelumnya 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 tabel | Klausul prediksi BigQuery ML
untuk mengidentifikasi anomali di discount_pct . Fungsi ini memeriksa
apakah diskon harus diterapkan berdasarkan customer ,
currency , dan transaction . Aturan ini memeriksa apakah prediksi cocok dengan nilai sebenarnya, setidaknya 99% dari waktu. 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'; |
Aturan berikut memeriksa apakah akurasi prediksi lebih besar dari 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 | Fungsi prediksi BigQuery ML untuk mengidentifikasi anomali dalam discount_pct . Fungsi
memeriksa apakah diskon harus diterapkan berdasarkan customer ,
currency , dan transaction .
Aturan ini mengidentifikasi semua kejadian saat 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'; |
Aturan berikut memeriksa apakah prediksi diskon cocok dengan
nilai 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 ) ) ) |
Pernyataan SQL | Memvalidasi apakah discount_pct lebih besar dari 30% untuk hari ini
dengan memeriksa apakah ada baris dengan persentase diskon kurang dari atau
sama dengan 30. |
SELECT * FROM my_project_id.dim_dataset.dim_currency WHERE discount_pct <= 30 AND transaction_timestamp >= current_date() |
Pernyataan SQL (dengan parameter referensi data) | Memeriksa apakah Filter tanggal Parameter referensi data |
SELECT * FROM ${data()} WHERE discount_pct > 30 |
Menentukan aturan kualitas data menggunakan gcloud CLI
File YAML contoh berikut menggunakan beberapa aturan yang sama dengan
contoh aturan menggunakan jenis bawaan dan
contoh aturan SQL kustom. File YAML ini juga berisi spesifikasi lain untuk pemindaian kualitas data, seperti filter dan persentase pengambilan sampel. Saat menggunakan gcloud CLI untuk membuat atau memperbarui pemindaian kualitas data, Anda dapat menggunakan file YAML seperti ini sebagai input untuk argumen --data-quality-spec-file
.
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
- rangeExpectation:
minValue : '0'
maxValue : '100'
column : discount_pct
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
- sqlAssertion:
sqlStatement : SELECT * FROM `my_project_id.dim_dataset.dim_currency` WHERE discount_pct > 100
dimension: VALIDITY
samplingPercent: 50
rowFilter: discount_pct > 100
postScanActions:
bigqueryExport:
resultsTable: projects/my_project_id/datasets/dim_dataset/tables/dim_currency
notificationReport:
recipients:
emails:
- '222larabrown@gmail.com'
- 'cloudysanfrancisco@gmail.com'
scoreThresholdTrigger:
scoreThreshold: 50
jobFailureTrigger: {}
jobEndTrigger: {}
catalogPublishingEnabled: true
Membuat pemindaian kualitas data
Konsol
Di konsol Google Cloud , buka halaman Pembuatan profil & kualitas data Dataplex Universal Catalog.
Klik Buat pemindaian kualitas data.
Di jendela Define scan, isi kolom berikut:
Opsional: Masukkan Nama tampilan.
Masukkan ID. Lihat konvensi penamaan resource.
Opsional: Masukkan Deskripsi..
Di kolom Table, klik Browse. Pilih tabel yang akan dipindai, lalu klik Pilih. Hanya tabel BigQuery standar yang didukung.
Untuk tabel dalam set data multi-region, pilih region tempat pemindaian data akan dibuat.
Untuk menjelajahi tabel yang disusun dalam data lake Dataplex Universal Catalog, klik Jelajahi dalam Data Lake Dataplex.
Di kolom Cakupan, pilih Inkremental atau Seluruh data.
- Jika Anda memilih Inkremental: Di kolom Stempel waktu, pilih kolom berjenis
DATE
atauTIMESTAMP
dari tabel BigQuery yang bertambah saat data baru ditambahkan, dan yang dapat digunakan untuk mengidentifikasi data baru. Kolom ini dapat berupa kolom yang mempartisi tabel.
- Jika Anda memilih Inkremental: Di kolom Stempel waktu, pilih kolom berjenis
Untuk memfilter data, centang kotak Filter baris. Berikan filter baris yang terdiri dari ekspresi SQL valid yang dapat digunakan sebagai bagian dari klausa
WHERE
dalam sintaksis GoogleSQL. Contohnya,col1 >= 0
Filter dapat berupa kombinasi dari beberapa kondisi kolom. Misalnya,col1 >= 0 AND col2 < 10
.Untuk mengambil sampel data, di daftar Ukuran sampling, pilih persentase sampling. Pilih nilai persentase yang berkisar antara 0,0% dan 100,0% dengan maksimal 3 digit desimal. Untuk set data yang lebih besar, pilih persentase pengambilan sampel yang lebih rendah. Misalnya, untuk tabel 1 PB, jika Anda memasukkan nilai antara 0,1% dan 1,0%, pemindaian kualitas data akan mengambil sampel data antara 1-10 TB. Untuk pemindaian data inkremental, pemindaian kualitas data menerapkan pengambilan sampel pada penambahan terbaru.
Untuk memublikasikan hasil pemindaian kualitas data sebagai metadata Dataplex Universal Catalog, centang kotak Publikasikan hasil ke BigQuery dan Katalog Dataplex.
Anda dapat melihat hasil pemindaian terbaru di tab Kualitas data di halaman BigQuery dan Dataplex Universal Catalog untuk tabel sumber. Untuk mengizinkan pengguna mengakses hasil pemindaian yang dipublikasikan, lihat bagian Memberikan akses ke hasil pemindaian profil data dalam dokumen ini.
Di bagian Jadwalkan, pilih salah satu opsi berikut:
Ulangi: Jalankan pemindaian kualitas data sesuai jadwal: per jam, harian, mingguan, bulanan, atau kustom. Tentukan seberapa sering pemindaian berjalan dan pada pukul berapa. Jika Anda memilih kustom, gunakan format cron untuk menentukan jadwal.
Sesuai permintaan: Jalankan pemindaian kualitas data sesuai permintaan.
Klik Lanjutkan.
Di jendela Aturan kualitas data, tentukan aturan yang akan dikonfigurasi untuk pemindaian kualitas data ini.
Klik Tambahkan aturan, lalu pilih dari opsi berikut.
Rekomendasi berbasis profil: Buat aturan dari rekomendasi berdasarkan pemindaian pembuatan profil data yang ada.
Pilih kolom: Pilih kolom untuk mendapatkan rekomendasi aturan.
Pilih project pemindaian: Jika pemindaian pembuatan profil data berada di project yang berbeda dengan project tempat Anda membuat pemindaian kualitas data, pilih project untuk menarik pemindaian profil.
Pilih hasil profil: Pilih satu atau beberapa hasil profil, lalu klik OKE. Tindakan ini akan mengisi daftar aturan yang disarankan yang dapat Anda gunakan sebagai titik awal.
Centang kotak untuk aturan yang ingin Anda tambahkan, lalu klik Pilih. Setelah dipilih, aturan akan ditambahkan ke daftar aturan saat ini. Kemudian, Anda dapat mengedit aturan.
Jenis aturan bawaan: Buat aturan dari aturan standar. Lihat daftar aturan yang telah ditentukan sebelumnya.
Pilih kolom: Pilih kolom untuk memilih aturan.
Pilih jenis aturan: Pilih jenis aturan yang ingin Anda pilih, lalu klik Oke. Jenis aturan yang muncul bergantung pada kolom yang Anda pilih.
Centang kotak untuk aturan yang ingin Anda tambahkan, lalu klik Pilih. Setelah dipilih, aturan akan ditambahkan ke daftar aturan saat ini. Kemudian, Anda dapat mengedit aturan.
Aturan pemeriksaan baris SQL: Buat aturan SQL kustom untuk diterapkan ke setiap baris.
Di Dimensi, pilih satu dimensi.
Di Nilai minimum lulus, pilih persentase catatan yang harus lulus pemeriksaan.
Di Nama kolom, pilih kolom.
Di kolom Berikan ekspresi SQL, masukkan ekspresi SQL yang dievaluasi ke
true
(lulus) ataufalse
(gagal) boolean. Untuk mengetahui informasi selengkapnya, lihat Jenis aturan SQL kustom yang didukung dan contoh dalam Menentukan aturan kualitas data.Klik Tambahkan.
Aturan pemeriksaan agregat SQL: Buat aturan kondisi tabel SQL kustom.
Di Dimensi, pilih satu dimensi.
Di Nama kolom, pilih kolom.
Di kolom Berikan ekspresi SQL, masukkan ekspresi SQL yang dievaluasi ke
true
(lulus) ataufalse
(gagal) boolean. Untuk mengetahui informasi selengkapnya, lihat Jenis aturan SQL kustom yang didukung dan contoh dalam Menentukan aturan kualitas data.Klik Tambahkan.
Aturan pernyataan SQL: Buat aturan pernyataan SQL kustom untuk memeriksa status data yang tidak valid.
Di Dimensi, pilih satu dimensi.
Opsional: Di Nama kolom, pilih kolom.
Di kolom Berikan pernyataan SQL, masukkan pernyataan SQL yang menampilkan baris yang cocok dengan status tidak valid. Jika ada baris yang ditampilkan, aturan ini akan gagal. Hapus titik koma di akhir pernyataan SQL. Untuk mengetahui informasi selengkapnya, lihat Jenis aturan SQL kustom yang didukung dan contoh dalam Menentukan aturan kualitas data.
Klik Tambahkan.
Opsional: Untuk setiap aturan kualitas data, Anda dapat menetapkan nama aturan kustom yang akan digunakan untuk pemantauan dan pemberitahuan, serta deskripsi. Untuk melakukannya, edit aturan dan tentukan detail berikut:
- Nama aturan: Masukkan nama aturan kustom hingga 63 karakter. Nama aturan dapat mencakup huruf (a-z, A-Z), digit (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.
Ulangi langkah-langkah sebelumnya untuk menambahkan aturan tambahan ke pemindaian kualitas data. Setelah selesai, klik Lanjutkan.
Opsional: Ekspor hasil pemindaian ke tabel standar BigQuery. Di bagian Ekspor hasil pemindaian ke tabel BigQuery, lakukan hal berikut:
Di kolom Select BigQuery dataset, klik Browse. Pilih set data BigQuery untuk menyimpan hasil pemindaian kualitas data.
Di kolom Tabel BigQuery, tentukan tabel untuk menyimpan hasil pemindaian kualitas data. Jika Anda menggunakan tabel yang sudah ada, pastikan tabel tersebut kompatibel dengan skema tabel ekspor. Jika tabel yang ditentukan tidak ada, Dataplex Universal Catalog akan membuatnya untuk Anda.
Opsional: Tambahkan label. Label adalah key-value pair yang memungkinkan Anda mengelompokkan objek terkait secara bersamaan atau dengan resource Google Cloud lainnya.
Opsional: Siapkan laporan notifikasi email untuk memberi tahu orang lain tentang status dan hasil tugas pemindaian kualitas data. Di bagian Laporan notifikasi, klik
Tambahkan ID email dan masukkan hingga lima alamat email. Kemudian, pilih skenario yang ingin Anda kirimkan laporannya:- Skor kualitas (<=): mengirim laporan saat tugas berhasil dengan skor kualitas data yang lebih rendah dari target skor yang ditentukan. Masukkan skor kualitas target antara 0 dan 100.
- Kegagalan tugas: mengirim laporan saat tugas itu sendiri gagal, terlepas dari hasil kualitas data.
- Penyelesaian tugas (berhasil atau gagal): mengirim laporan saat tugas berakhir, terlepas dari hasil kualitas data.
Klik Buat.
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 data lake Dataplex Universal Catalog, sertakan tanda
--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 data lake Dataplex Universal Catalog, 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
: Google Cloud region tempat pemindaian kualitas data akan dibuat.DATA_QUALITY_SPEC_FILE
: Jalur ke file JSON atau YAML yang berisi spesifikasi untuk pemindaian kualitas data. File dapat berupa file lokal atau jalur Cloud Storage dengan awalangs://
. Gunakan file ini untuk menentukan aturan kualitas data untuk pemindaian. Anda juga dapat menentukan detail tambahan dalam file ini, seperti filter, persentase pengambilan sampel, dan tindakan pasca-pemindaian seperti mengekspor ke BigQuery atau mengirim laporan notifikasi email. Lihat dokumentasi untuk representasi JSON dan contoh representasi YAML.DATA_SOURCE_ENTITY
: Entitas Dataplex Universal Catalog yang berisi data untuk pemindaian kualitas data. Contoh,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. Contoh,//bigquery.googleapis.com/projects/test-project/datasets/test-dataset/tables/test-table
.
REST
Untuk membuat pemindaian kualitas data, gunakan metode
dataScans.create
.
Jika Anda ingin membuat aturan untuk pemindaian kualitas data menggunakan rekomendasi aturan yang didasarkan pada hasil pemindaian pembuatan profil data, dapatkan rekomendasi dengan memanggil metode dataScans.jobs.generateDataQualityRules
pada pemindaian pembuatan profil data.
Mengekspor skema tabel
Untuk mengekspor hasil pemindaian kualitas data ke tabel BigQuery yang ada, pastikan tabel tersebut kompatibel dengan skema tabel berikut:
Nama kolom | Jenis data kolom | Nama sub-kolom (jika ada) |
Jenis data sub-bidang | 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 sumbernya adalah tabel)test-dataset |
||
table_id |
string |
nullable | (Hanya valid jika sumbernya 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,"score":100},"CONSISTENCY":{"passed":false,"score":60}}
|
||
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));" |
||
rule_assertion_row_count | integer |
nullable | 10 |
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}
. - Gunakan tabel standar BigQuery.
- Jika tabel tidak ada saat pemindaian dibuat atau diperbarui, Dataplex Universal Catalog akan membuat tabel untuk Anda.
- Secara default, tabel dipartisi pada kolom
job_start_time
setiap hari. - Jika Anda ingin tabel dipartisi dalam konfigurasi lain atau jika Anda tidak ingin partisi, buat ulang tabel dengan skema dan konfigurasi yang diperlukan, lalu berikan tabel yang telah dibuat sebelumnya sebagai tabel hasil.
- Pastikan tabel hasil berada di lokasi yang sama dengan tabel sumber.
- Jika VPC-SC dikonfigurasi di 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 saat ini akan diekspor ke tabel hasil sebelumnya dan perubahan tabel akan berlaku mulai dari tugas pemindaian berikutnya.
- Jangan mengubah skema tabel. Jika Anda memerlukan kolom yang disesuaikan, buat tampilan pada 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.
Menjalankan pemindaian kualitas data
Konsol
Di konsol Google Cloud , buka halaman Pembuatan profil & kualitas data Dataplex Universal Catalog.
Klik pemindaian kualitas data yang akan dijalankan.
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
Untuk menjalankan pemindaian kualitas data, gunakan
metode dataScans.run
.
Melihat hasil pemindaian kualitas data
Konsol
Di konsol Google Cloud , buka halaman Pembuatan profil & kualitas data Dataplex Universal Catalog.
Klik nama pemindaian kualitas data.
Bagian Ringkasan menampilkan informasi tentang tugas terbaru, termasuk waktu pemindaian dijalankan, jumlah kumpulan data yang dipindai di setiap tugas, apakah semua pemeriksaan kualitas data lulus, dan jika ada kegagalan, jumlah pemeriksaan kualitas data yang gagal.
Bagian Konfigurasi pemindaian kualitas data menampilkan detail tentang pemindaian.
Untuk melihat informasi mendetail tentang tugas, seperti skor kualitas data yang menunjukkan persentase aturan yang lulus, aturan yang gagal, dan log tugas, klik tab Histori tugas. Kemudian, klik ID tugas.
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 dari tugas pemindaian kualitas data.LOCATION
: Region Google Cloud tempat pemindaian kualitas data dibuat.DATASCAN
: Nama pemindaian kualitas data yang menjadi bagian dari tugas ini.--view=FULL
: Untuk melihat hasil tugas pemindaian, tentukanFULL
.
REST
Untuk melihat hasil pemindaian kualitas data, gunakan
metode dataScans.get
.
Lihat hasil yang dipublikasikan
Jika hasil pemindaian kualitas data dipublikasikan sebagai metadata Dataplex Universal Catalog, Anda dapat melihat hasil pemindaian terbaru di halaman BigQuery dan Dataplex Universal Catalog di konsolGoogle Cloud , pada tab Kualitas data tabel sumber.
Di konsol Google Cloud , buka halaman Penelusuran Dataplex Universal Catalog.
Telusuri, lalu pilih tabel.
Klik tab Kualitas data.
Hasil terbaru yang dipublikasikan ditampilkan.
Lihat hasil pemindaian historis
Dataplex Universal Catalog menyimpan histori pemindaian kualitas data dari 300 tugas terakhir atau selama satu tahun terakhir, mana saja yang terjadi lebih dulu.
Konsol
Di konsol Google Cloud , buka halaman Pembuatan profil & kualitas data Dataplex Universal Catalog.
Klik nama pemindaian kualitas data.
Klik tab Histori tugas.
Tab Histori tugas memberikan informasi tentang tugas sebelumnya, seperti jumlah catatan yang dipindai di setiap tugas, status tugas, waktu tugas dijalankan, dan apakah setiap aturan lulus atau gagal.
Untuk melihat informasi mendetail tentang tugas, klik salah satu tugas di kolom ID Tugas.
gcloud
Untuk melihat tugas pemindaian kualitas data historis, 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 histori tugas.
REST
Untuk melihat tugas pemindaian kualitas data historis, gunakan
metode dataScans.jobs.list
.
Memberikan akses ke hasil pemindaian kualitas data
Agar pengguna di organisasi Anda dapat melihat hasil pemindaian, lakukan hal berikut:
Di konsol Google Cloud , buka halaman Pembuatan profil & kualitas data Dataplex Universal Catalog.
Klik pemindaian kualitas data yang hasilnya ingin Anda bagikan.
Klik tab Izin.
Lakukan tindakan berikut:
- Untuk memberikan akses ke akun utama, klik Grant access. Berikan peran Dataplex DataScan DataViewer kepada akun utama yang terkait.
- Untuk menghapus akses dari akun utama, pilih akun utama yang ingin Anda hapus peran Dataplex DataScan DataViewer-nya. Klik Hapus akses, lalu konfirmasi saat diminta.
Menyetel pemberitahuan di Cloud Logging
Untuk menyetel pemberitahuan terkait 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 kueri contoh.
Klik Run Query.
Klik Buat pemberitahuan. Tindakan ini akan membuka panel samping.
Masukkan nama kebijakan pemberitahuan Anda, lalu klik Berikutnya.
Tinjau kueri.
Klik tombol Pratinjau Log untuk menguji kueri Anda. Bagian ini menampilkan log dengan kondisi yang cocok.
Klik Berikutnya.
Tetapkan waktu antara notifikasi dan klik Berikutnya.
Tentukan siapa yang harus diberi tahu untuk pemberitahuan tersebut, lalu klik Simpan untuk membuat kebijakan pemberitahuan.
Atau, Anda dapat mengonfigurasi dan mengedit pemberitahuan dengan membuka Google Cloud konsol ke Monitoring > Alerting.
gcloud
Tidak didukung.
REST
Untuk mengetahui informasi selengkapnya tentang cara menyetel pemberitahuan di Cloud Logging, lihat Membuat kebijakan pemberitahuan berbasis log menggunakan Monitoring API.
Contoh kueri untuk menyetel pemberitahuan tingkat tugas atau tingkat dimensi
Contoh kueri untuk menyetel pemberitahuan tentang kegagalan kualitas data secara keseluruhan 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 menyetel pemberitahuan tentang kegagalan kualitas data untuk dimensi (misalnya, keunikan) 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 menyetel pemberitahuan tentang kegagalan kualitas data untuk sebuah tabel.
Menetapkan pemberitahuan tentang kegagalan kualitas data untuk tabel BigQuery yang tidak disusun dalam lake Dataplex Universal Catalog:
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 disusun dalam lake Dataplex Universal Catalog:
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 untuk menyetel notifikasi per aturan
Contoh kueri untuk menyetel pemberitahuan pada 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 menyetel pemberitahuan pada 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 menyetel pemberitahuan pada 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 Universal Catalog menyediakan kueri untuk mendapatkan data yang gagal. Jalankan kueri ini untuk melihat catatan yang tidak cocok dengan aturan Anda.
Konsol
Di konsol Google Cloud , buka halaman Pembuatan profil & kualitas data Dataplex Universal Catalog.
Klik nama pemindaian kualitas data yang rekamannya ingin Anda pecahkan masalahnya.
Klik tab Histori tugas.
Klik ID tugas dari tugas yang mengidentifikasi kegagalan kualitas data.
Di jendela hasil tugas yang terbuka, di bagian Rules, cari kolom Query to get failed records. Klik Salin kueri ke papan klip untuk aturan yang gagal.
Jalankan kueri di BigQuery untuk melihat kumpulan data yang menyebabkan tugas gagal.
gcloud
Tidak didukung.
REST
Untuk mendapatkan tugas yang mengidentifikasi kegagalan kualitas data, gunakan metode
dataScans.get
.Dalam objek respons, kolom
failingRowsQuery
menampilkan kueri.Jalankan kueri di BigQuery untuk melihat kumpulan data yang menyebabkan tugas gagal.
Mengelola pemindaian kualitas data untuk tabel tertentu
Langkah-langkah dalam dokumen ini menunjukkan cara mengelola pemindaian profil data di seluruh project Anda dengan menggunakan halaman Pembuatan profil & kualitas data Dataplex Universal Catalog di konsol Google Cloud .
Anda juga dapat membuat dan mengelola pemindaian profil data saat bekerja dengan tabel tertentu. Di konsol Google Cloud , pada halaman Dataplex Universal Catalog untuk tabel, gunakan tab Kualitas data. Lakukan tindakan berikut:
Di konsol Google Cloud , buka halaman Penelusuran Dataplex Universal Catalog.
Telusuri, lalu pilih tabel.
Klik tab Kualitas data.
Bergantung pada apakah tabel memiliki pemindaian kualitas data yang hasilnya dipublikasikan sebagai metadata Dataplex Universal Catalog, Anda dapat menggunakan pemindaian kualitas data tabel dengan cara berikut:
Hasil pemindaian kualitas data dipublikasikan: hasil pemindaian terbaru ditampilkan di halaman.
Untuk mengelola pemindaian kualitas data untuk tabel ini, klik Pemindaian kualitas data, lalu pilih salah satu opsi berikut:
Buat pemindaian baru: buat pemindaian kualitas data baru. Untuk mengetahui informasi selengkapnya, lihat bagian Membuat pemindaian kualitas data dalam dokumen ini. Saat Anda membuat pemindaian dari halaman detail tabel, tabel akan dipilih sebelumnya.
Jalankan sekarang: jalankan pemindaian.
Edit konfigurasi pemindaian: edit setelan termasuk nama tampilan, filter, dan jadwal.
Untuk mengedit aturan kualitas data, di tab Kualitas data, klik tab Aturan. Klik Ubah aturan. Perbarui aturan, lalu klik Simpan.
Mengelola izin pemindaian: mengontrol siapa yang dapat mengakses hasil pemindaian. Untuk mengetahui informasi selengkapnya, lihat bagian Memberikan akses ke hasil pemindaian kualitas data dalam dokumen ini.
Lihat hasil historis: lihat informasi mendetail tentang tugas pemindaian kualitas data sebelumnya. Untuk mengetahui informasi selengkapnya, lihat bagian Melihat hasil pemindaian kualitas data dan Melihat hasil pemindaian historis dalam dokumen ini.
Lihat semua pemindaian: melihat daftar pemindaian kualitas data yang berlaku untuk tabel ini.
Hasil pemindaian kualitas data tidak dipublikasikan: pilih dari opsi berikut:
Buat pemindaian kualitas data: membuat pemindaian kualitas data baru. Untuk mengetahui informasi selengkapnya, lihat bagian Membuat pemindaian kualitas data dalam dokumen ini. Saat Anda membuat pemindaian dari halaman detail tabel, tabel akan dipilih sebelumnya.
Melihat pemindaian yang ada: melihat daftar pemindaian kualitas data yang berlaku untuk tabel ini.
Memperbarui pemindaian kualitas data
Anda dapat mengedit berbagai setelan untuk pemindaian kualitas data yang ada, seperti nama tampilan, filter, jadwal, dan aturan kualitas data.
Konsol
Di konsol Google Cloud , buka halaman Pembuatan profil & kualitas data Dataplex Universal Catalog.
Klik nama pemindaian kualitas data.
Untuk mengedit setelan termasuk nama tampilan, filter, dan jadwal, klik Edit. Edit nilai, lalu klik Simpan.
Untuk mengedit aturan kualitas data, di halaman detail pemindaian, klik tab Aturan saat ini. Klik Ubah aturan. Perbarui aturan, lalu klik Simpan.
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
Untuk mengedit pemindaian kualitas data, gunakan
metode dataScans.patch
.
Menghapus pemindaian kualitas data
Konsol
Di konsol Google Cloud , buka halaman Pembuatan profil & kualitas data Dataplex Universal Catalog.
Klik hasil pemindaian yang ingin Anda hapus.
Klik Hapus, lalu konfirmasi saat diminta.
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
Untuk menghapus pemindaian kualitas data, gunakan
metode dataScans.delete
.
Apa langkah selanjutnya?
- Pelajari pembuatan profil data.
- Pelajari cara menggunakan pembuatan profil data.
- Ikuti tutorial untuk mengelola aturan kualitas data sebagai kode dengan Terraform.