Menggunakan kualitas data otomatis

Halaman ini menjelaskan cara membuat pemindaian kualitas data Dataplex.

Untuk mempelajari pemindaian kualitas data, lihat Tentang kualitas data otomatis.

Sebelum memulai

  1. Aktifkan Dataplex API.

    Mengaktifkan API

  2. Opsional: Jika Anda ingin Dataplex membuat rekomendasi untuk aturan kualitas data berdasarkan hasil pemindaian pembuatan profil data, buat dan jalankan pemindaian pembuatan 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 dalam 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 project yang berisi izin baca 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 guna mengekspor hasil pemindaian ke tabel BigQuery, minta administrator untuk memberikan peran IAM BigQuery Data Editor (roles/bigquery.dataEditor) kepada akun layanan Dataplex di set data dan tabel hasil. Tindakan ini akan 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 data lake Dataplex, berikan peran IAM Dataplex Metadata Reader (roles/dataplex.metadataReader) dan Dataplex Viewer (roles/dataplex.viewer) ke 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 untuk bucket tersebut kepada akun layanan Dataplex. Atau, tetapkan izin berikut ke 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 izin bigquery.tables.update untuk tabel.

  • 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. Perhatikan bahwa hak istimewa akses setiap pengguna tidak dievaluasi untuk kebijakan tingkat baris.

Peran pemindaian data yang diperlukan

Untuk menggunakan kualitas data otomatis, Anda memerlukan izin untuk menjalankan pemindaian data, atau peran dengan izin standar 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 bukan hasil dan aturan
dataplex.datascans.getData Melihat detail DataScan termasuk aturan dan hasil
dataplex.datascans.list Mencantumkan DataScan
dataplex.datascans.run Menjalankan 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

Berikan satu atau beberapa peran berikut kepada pengguna:

  • Akses penuh ke resource DataScan: Administrator DataScan Dataplex (roles/dataplex.dataScanAdmin)
  • Akses tulis ke resource DataScan: Dataplex DataScan Editor (roles/dataplex.dataScanEditor)
  • Akses baca ke resource DataScan yang mengecualikan aturan dan hasil: Dataplex DataScan Viewer (roles/dataplex.dataScanViewer)
  • Akses baca ke resource DataScan, termasuk aturan dan hasil: Dataplex DataScan DataViewer (roles/dataplex.dataScanDataViewer)

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 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, 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 di 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. 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 ekspresi reguler (regex) Validitas Ekspresi reguler: ^[0-9]{8}[a-zA-Z]{16}$
Ambang batas: 100%
currency_id Pemeriksaan kumpulan nilai Validitas Kumpulan: USD,JPY,INR,GBP,CAN
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 pada satu waktu, buat ekspresi yang menghasilkan jumlah baris yang berhasil saat Dataplex mengevaluasi kueri SELECT COUNTIF(CUSTOM_SQL_EXPRESSION) FROM TABLE. Dataplex memeriksa jumlah baris yang berhasil terhadap nilai minimum.

  • Saat Anda membuat aturan yang dievaluasi di seluruh baris atau menggunakan kondisi tabel, buat ekspresi yang menampilkan keberhasilan atau kegagalan saat Dataplex mengevaluasi SELECT IF(CUSTOM_SQL_EXPRESSION) FROM TABLE kueri.

  • 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 dari pernyataan SQL.

  • Anda dapat merujuk ke tabel sumber data dan semua filter prasyaratnya dengan menggunakan parameter referensi data ${data()} dalam aturan, bukan menyebutkan tabel sumber dan filternya secara eksplisit. Contoh filter prasyarat mencakup filter baris, persentase sampling, 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 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 tabel Ekspresi SQL gabungan yang memeriksa apakah discount_pct rata-rata 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 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 Klausa prediksi BigQuery ML untuk mengidentifikasi anomali di discount_pct. Fungsi ini memeriksa apakah diskon harus diterapkan berdasarkan customer, currency, dan transaction. Aturan 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 di discount_pct. Fungsi ini memeriksa apakah diskon harus diterapkan berdasarkan customer, currency, dan transaction. Aturan ini mengidentifikasi semua kemunculan 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 yang 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 discount_pct lebih besar dari 30% untuk semua mata uang yang didukung saat ini.

Filter tanggal transaction_timestamp >= current_date() diterapkan sebagai filter baris pada tabel sumber data.

Parameter referensi data ${data()} berfungsi sebagai placeholder untuk my_project_id.dim_dataset.dim_currency WHERE transaction_timestamp >= current_date() dan menerapkan filter baris.

SELECT * FROM ${data()} WHERE discount_pct > 30

Menentukan aturan kualitas data menggunakan gcloud CLI

Contoh file YAML berikut menggunakan beberapa aturan yang sama dengan contoh aturan menggunakan jenis bawaan dan contoh aturan SQL kustom. Anda dapat menggunakan file YAML ini sebagai input ke perintah gcloud CLI.

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

Membuat pemindaian kualitas data

Konsol

  1. Di konsol Google Cloud, buka halaman Kualitas data.

    Buka Kualitas data

  2. Klik Buat pemindaian kualitas data.

  3. Di jendela Define scan, isi kolom berikut:

    1. Masukkan Nama tampilan.

    2. ID pemindaian dibuat secara otomatis jika Anda tidak memberikan ID Anda sendiri. Lihat konvensi penamaan resource.

    3. Opsional: Masukkan Deskripsi..

    4. 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 pembuatan pemindaian data.

      Untuk menjelajahi tabel yang diatur dalam data lake Dataplex, klik Jelajahi dalam Data Lake Dataplex.

    5. Di kolom Cakupan, pilih Inkremental atau Seluruh data.

      • Jika Anda memilih Inkremental: Di kolom Timestamp column, pilih kolom jenis DATE atau TIMESTAMP dari tabel BigQuery yang meningkat secara monoton dan dapat digunakan untuk mengidentifikasi data baru. Kolom ini dapat berupa kolom yang mempartisi tabel.
    6. Opsional: Tambahkan label. Label adalah pasangan key:value yang memungkinkan Anda mengelompokkan objek terkait secara bersama atau dengan resource Google Cloud lainnya.

    7. Untuk memfilter data, klik Filter. Centang kotak Filter baris. Nilai input untuk filter baris harus berupa ekspresi SQL yang valid yang 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.

    8. Untuk mengambil sampel data, pilih persentase sampling dalam daftar Ukuran 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%, Dataplex akan mengambil sampel data antara 1-10 TB. Untuk pemindaian data inkremental, Dataplex menerapkan sampling ke penambahan terbaru.

    9. 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. Agar pengguna dapat 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 lain ditetapkan untuk memublikasikan hasil.

      Untuk mengetahui informasi selengkapnya tentang izin yang diperlukan untuk melihat hasil yang dipublikasikan, lihat Izin.

    10. Klik Lanjutkan.

  4. Di jendela Jadwal, pilih salah satu opsi berikut:

    • Ulangi: Jalankan tugas pemindaian kualitas data sesuai jadwal: harian, mingguan, bulanan, atau kustom. Tentukan seberapa sering pemindaian berjalan dan pukul berapa. Jika Anda memilih kustom, gunakan format cron untuk menentukan jadwal.

    • On-demand: Jalankan tugas pemindaian kualitas data Anda on demand.

    Klik Lanjutkan.

  5. Di jendela Aturan kualitas data, tentukan aturan yang akan dikonfigurasi untuk pemindaian kualitas data ini. Klik Tambahkan aturan, lalu pilih salah satu opsi berikut.

    • Rekomendasi berbasis profil: Buat aturan dari rekomendasi berdasarkan pemindaian pembuatan profil data yang ada.

      1. Pilih kolom: Pilih kolom yang akan mendapatkan aturan yang direkomendasikan.

      2. Project pemindaian: Rekomendasi berdasarkan pemindaian pembuatan profil data yang ada. Secara default, Dataplex memilih pemindaian profiling dari project yang sama tempat Anda membuat pemindaian kualitas data. Jika membuat pemindaian di project lain, Anda harus menentukan project tempat pemindaian profil diambil.

      3. Pilih hasil penelusuran profil: Berdasarkan kolom dan project yang Anda pilih, beberapa hasil penelusuran profil akan muncul.

      4. Pilih satu atau beberapa hasil profil, lalu klik OK. Tindakan ini akan mengisi daftar aturan yang dapat dipilih.

      5. Pilih aturan yang ingin diedit dengan mencentang kotak dan mengklik Pilih. Setelah dipilih, aturan akan ditambahkan ke daftar aturan saat ini. Kemudian, Anda dapat mengedit aturan.

    • Jenis aturan bawaan: Membuat aturan dari aturan standar. Lihat daftar aturan standar.

      1. Pilih kolom: Pilih kolom yang aturannya ingin dipilih.

      2. Pilih jenis aturan: Berdasarkan kolom yang Anda pilih, beberapa jenis aturan akan muncul untuk dipilih.

      3. Pilih satu atau beberapa jenis aturan, lalu klik OK. Tindakan ini akan mengisi daftar aturan yang dapat dipilih.

      4. Pilih aturan yang ingin diedit dengan mencentang kotak dan mengklik 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 (aturan pemeriksaan baris SQL kustom).

      1. Di Dimensi, pilih satu dimensi.

      2. Di Nilai minimum lulus, pilih persentase data yang harus lulus pemeriksaan.

      3. Di Nama kolom, pilih kolom.

      4. Di kolom Berikan ekspresi SQL, masukkan ekspresi SQL yang dievaluasi ke boolean true (lulus) atau false (gagal). Untuk mengetahui informasi selengkapnya, lihat Jenis aturan SQL kustom yang didukung dan contoh di bagian Menentukan aturan kualitas data dalam dokumen ini.

      5. Klik Tambahkan.

    • Aturan pemeriksaan agregat SQL: Buat aturan kondisi tabel SQL kustom.

      1. Di Dimensi, pilih satu dimensi.

      2. Di Nama kolom, pilih kolom.

      3. Di kolom Berikan ekspresi SQL, masukkan ekspresi SQL yang dievaluasi ke boolean true (lulus) atau false (gagal). Untuk mengetahui informasi selengkapnya, lihat Jenis aturan SQL kustom yang didukung dan contoh di bagian Menentukan aturan kualitas data dalam dokumen ini.

      4. Klik Tambahkan.

    • Aturan pernyataan SQL: Buat aturan pernyataan SQL kustom untuk memeriksa status data yang tidak valid.

      1. Di Dimensi, pilih satu dimensi.

      2. Opsional: Di Nama kolom, pilih kolom.

      3. 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 dari pernyataan SQL. Untuk informasi selengkapnya, lihat Jenis aturan SQL kustom yang didukung dan contoh di bagian Menentukan aturan kualitas data dalam dokumen ini.

      4. Klik Tambahkan.

    Dataplex mengizinkan nama kustom untuk aturan kualitas data untuk pemantauan dan pemberitahuan. Untuk aturan kualitas data apa pun, Anda dapat menetapkan nama dan deskripsi aturan kustom secara opsional. Untuk melakukannya, edit aturan dan tentukan detail berikut:

    • Nama aturan: Masukkan nama aturan kustom dengan maksimal 63 karakter. Nama aturan dapat mencakup 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.

  6. Opsional: Ekspor hasil pemindaian ke tabel standar BigQuery. Di bagian Ekspor hasil pemindaian ke tabel BigQuery, klik Jelajahi 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.

  7. Opsional: Siapkan laporan notifikasi email untuk memberi tahu orang tentang status dan hasil tugas pemindaian kualitas data. Di bagian Laporan notifikasi, klik Tambahkan ID email dan masukkan maksimal lima alamat email. Kemudian, pilih skenario yang ingin Anda kirim laporannya:

    • Skor kualitas (<=): mengirim laporan saat tugas berhasil dengan skor kualitas data yang lebih rendah dari skor target yang ditentukan. Masukkan skor kualitas target antara 0 dan 100.
    • Kegagalan tugas: mengirimkan laporan saat tugas itu sendiri gagal, terlepas dari hasil kualitas data.
    • Penyelesaian tugas (berhasil atau gagal): mengirim laporan saat tugas selesai, terlepas dari hasil kualitas data.
  8. 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 di data lake Dataplex, 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 di data lake Dataplex, sertakan tanda --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 membuat pemindaian kualitas data.
  • DATA_QUALITY_SPEC_FILE: Jalur ke file JSON atau YAML yang berisi spesifikasi untuk pemindaian kualitas data. File ini dapat berupa file lokal atau jalur Cloud Storage dengan awalan gs://. Gunakan file ini untuk menentukan aturan kualitas data untuk pemindaian. Anda juga dapat menentukan detail tambahan dalam file ini, seperti filter, persentase sampling, dan tindakan pasca-pemindaian seperti mengekspor ke BigQuery atau mengirim laporan notifikasi email. Lihat dokumentasi untuk representasi JSON.
  • DATA_SOURCE_ENTITY: Entitas Dataplex 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

Gunakan API Explorer untuk membuat pemindaian kualitas data.

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 subkolom
(jika ada)
Jenis data subkolom 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,"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));"

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 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 menginginkan 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 pada project, tabel hasil harus berada dalam 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 diterapkan dari tugas pemindaian berikutnya.
  • Jangan ubah skema tabel. Jika Anda memerlukan kolom yang disesuaikan, buat tampilan di atas tabel.
  • Untuk mengurangi biaya, tetapkan masa berlaku pada partisi berdasarkan kasus penggunaan Anda. Untuk informasi selengkapnya, lihat cara menetapkan masa berlaku partisi.

Menjalankan pemindaian kualitas data

Konsol

  1. Di konsol Google Cloud, buka halaman Kualitas data.

    Buka Kualitas data

  2. Klik pemindaian kualitas data yang akan dijalankan.

  3. 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 API Explorer untuk menjalankan pemindaian kualitas data.

Melihat hasil pemindaian kualitas data

Konsol

  1. Di konsol Google Cloud, buka halaman Kualitas data.

    Buka Kualitas data

  2. Untuk melihat hasil pemindaian yang mendetail, klik nama pemindaian.

    • Bagian Ringkasan menampilkan informasi tentang tujuh tugas terakhir, termasuk kapan pemindaian dijalankan, jumlah kumpulan data 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.

  3. Untuk melihat skor kualitas data yang menunjukkan persentase aturan yang lulus, 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 tugas pemindaian kualitas data.
  • LOCATION: Region Google Cloud tempat pemindaian kualitas data dibuat.
  • DATASCAN: Nama pemindaian kualitas data yang terkait dengan tugas.
  • --view=FULL: Untuk melihat hasil tugas pemindaian, tentukan FULL.

REST

Gunakan API Explorer untuk melihat hasil pemindaian kualitas data.

Lihat hasil pemindaian historis

Dataplex menyimpan histori pemindaian kualitas data dari 300 tugas terakhir atau selama setahun terakhir, mana saja yang terjadi lebih dulu.

Konsol

  1. Di konsol Google Cloud, buka halaman Kualitas data.

    Buka Kualitas data

  2. Klik nama pemindaian.

  3. Klik tab Histori tugas.

    Tab Histori tugas memberikan informasi tentang tugas sebelumnya. Laporan ini mencantumkan semua tugas, jumlah data yang dipindai di setiap tugas, status tugas, waktu tugas dijalankan, apakah setiap aturan lulus atau gagal, dan lainnya.

  4. Untuk melihat informasi mendetail tentang tugas, klik salah satu tugas di kolom ID Tugas.

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 API Explorer untuk melihat semua tugas pemindaian.

Membagikan 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 untuk mengakses hasil pemindaian yang dipublikasikan. Untuk memberikan akses ke hasil pemindaian, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud, buka halaman Kualitas data.

    Buka Kualitas data

  2. Klik pemindaian kualitas data yang ingin Anda bagikan hasilnya.

  3. Buka tab Izin.

  4. Klik Grant access.

  5. Di kolom New principals, tambahkan akun utama yang ingin Anda beri akses.

  6. Di kolom Select a role, pilih Dataplex DataScan DataViewer.

  7. Klik Simpan.

Untuk menghapus akses ke hasil pemindaian yang dipublikasikan untuk akun utama, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud, buka halaman Kualitas data.

    Buka Kualitas data

  2. Klik pemindaian kualitas data yang ingin Anda bagikan hasilnya.

  3. Buka tab Izin.

  4. Pilih akun utama yang ingin Anda hapus peran Dataplex DataScan DataViewer-nya.

  5. Klik Hapus akses.

  6. Klik Konfirmasi.

Menetapkan pemberitahuan di Cloud Logging

Untuk menetapkan pemberitahuan kegagalan kualitas data menggunakan log di Cloud Logging, ikuti langkah-langkah berikut:

Konsol

  1. Di konsol Google Cloud, buka Logs Explorer Cloud Logging.

    Buka Logs Explorer

  2. Di jendela Query, masukkan kueri Anda. Lihat contoh kueri.

  3. Klik Run Query.

  4. Klik Buat pemberitahuan. Tindakan ini akan membuka panel samping.

  5. Masukkan nama kebijakan pemberitahuan Anda, lalu klik Berikutnya.

  6. Tinjau kueri.

    1. Klik tombol Pratinjau Log untuk menguji kueri Anda. Tindakan ini akan menampilkan log dengan kondisi yang cocok.

    2. Klik Berikutnya.

  7. Tetapkan waktu antara notifikasi dan klik Berikutnya.

  8. Tentukan siapa yang akan diberi tahu untuk pemberitahuan tersebut, lalu klik Simpan untuk membuat kebijakan pemberitahuan.

Atau, Anda dapat mengonfigurasi dan mengedit pemberitahuan dengan membuka konsol Google Cloud ke Monitoring > Alerting.

gcloud

Tidak didukung.

REST

Gunakan API Explorer untuk menetapkan pemberitahuan di Cloud Logging.

Contoh kueri untuk menetapkan pemberitahuan tingkat tugas atau tingkat dimensi

  • Contoh kueri untuk menetapkan 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 menetapkan pemberitahuan tentang 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 tabel.

    • Tetapkan pemberitahuan tentang kegagalan kualitas data untuk tabel BigQuery yang tidak diatur di data 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 data 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 untuk menetapkan notifikasi per aturan

  • Contoh kueri untuk menetapkan 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 menetapkan 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 menetapkan 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 menyediakan kueri untuk mendapatkan kumpulan data yang gagal. Jalankan kueri ini untuk melihat kumpulan data yang tidak cocok dengan aturan Anda.

Konsol

  1. Di konsol Google Cloud, buka halaman Kualitas data.

    Buka Kualitas data

  2. Klik nama pemindaian yang datanya ingin Anda pecahkan masalahnya.

  3. Klik tab Histori tugas.

  4. Klik ID tugas dari tugas yang mengidentifikasi kegagalan kualitas data.

  5. Di jendela hasil tugas yang terbuka, di bagian Rules, temukan kolom Query to get failed records. Klik Salin kueri ke papan klip untuk aturan yang gagal.

  6. Jalankan kueri di BigQuery untuk melihat kumpulan data yang menyebabkan tugas gagal.

gcloud

Tidak didukung.

REST

Gunakan API Explorer untuk melihat kueri guna mendapatkan kumpulan data yang gagal untuk tugas yang gagal.

Memperbarui pemindaian kualitas data

Konsol

  1. Di konsol Google Cloud, buka halaman Kualitas Data.

    Buka Kualitas data

  2. Di baris yang berisi pemindaian yang ingin diedit, klik tiga titik vertikal > Edit.

  3. Edit the values.

  4. 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

Gunakan API Explorer untuk mengedit pemindaian kualitas data.

Menghapus pemindaian kualitas data

Konsol

  1. Di konsol Google Cloud, buka halaman Kualitas data.

    Buka Kualitas data

  2. Klik pemindaian yang ingin dihapus.

  3. Klik Hapus.

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 API Explorer untuk menghapus pemindaian kualitas data.

Apa langkah selanjutnya?