Dengan menggunakan pendekatan Human-in-the-Loop, di mana AI membuat draf aturan awal dan Anda meninjau, menyempurnakan, serta memvalidasinya, Anda dapat dengan cepat menerjemahkan statistik profil ke dalam framework kualitas data.
Tujuan
- Meratakan data BigQuery bertingkat dengan tampilan terwujud untuk mengaktifkan pembuatan profil Knowledge Catalog.
- Jalankan pemindaian profil Knowledge Catalog menggunakan library klien Python.
- Gunakan Gemini CLI untuk membuat aturan kualitas data berdasarkan statistik profil.
- Validasi dan deploy aturan yang dihasilkan AI sebagai pemindaian kualitas Knowledge Catalog menggunakan proses peninjauan Human-in-the-Loop.
Sebelum memulai
Sebelum memulai, pastikan Anda memiliki Google Cloud project dengan penagihan diaktifkan.
Menyiapkan lingkungan Anda
Langkah-langkah berikut menggunakan Cloud Shell, lingkungan command line yang berjalan di cloud.
Di Google Cloud konsol, klik Activate Cloud Shell di toolbar kanan atas. Lingkungan memerlukan waktu beberapa saat untuk disediakan dan terhubung.
Di Cloud Shell, siapkan project ID dan variabel lingkungan Anda:
export PROJECT_ID=$(gcloud config get-value project) gcloud config set project $PROJECT_ID export LOCATION="us-central1" export BQ_LOCATION="us" export DATASET_ID="dataplex_dq_codelab" export TABLE_ID="ga4_transactions"Gunakan
us(multi-region) sebagai lokasi karena data contoh publik juga berada dius(multi-region). Untuk kueri BigQuery, data sumber dan tabel tujuan harus berada di lokasi yang sama.Aktifkan layanan yang diperlukan:
gcloud services enable dataplex.googleapis.com \ bigquery.googleapis.com \ serviceusage.googleapis.comBuat set data BigQuery untuk menyimpan data dan hasil sampel:
bq --location=us mk --dataset $PROJECT_ID:$DATASET_IDSiapkan contoh data, yang berasal dari set data e-commerce publik dari Google Merchandise Store.
Perintah
bqberikut membuat tabel baru,ga4_transactions, di set datadataplex_dq_codelabAnda. Untuk memastikan pemindaian berjalan cepat, alat ini hanya menyalin data dari satu hari (31-01-2021).bq query \ --use_legacy_sql=false \ --destination_table=$PROJECT_ID:$DATASET_ID.$TABLE_ID \ --replace=true \ 'SELECT * FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_20210131`'Clone repositori GitHub yang berisi struktur folder dan file pendukung untuk tutorial ini:
# Perform a shallow clone to get only the latest repository structure without the full history git clone --depth 1 --filter=blob:none --sparse https://github.com/GoogleCloudPlatform/devrel-demos.git cd devrel-demos # Specify and download only the folder we need for this lab git sparse-checkout set data-analytics/programmatic-dq cd data-analytics/programmatic-dqDirektori ini adalah area kerja aktif Anda.
Membuat profil data bertingkat
Dengan pembuatan profil data, Knowledge Catalog menemukan statistik untuk kolom tingkat teratas, seperti persentase null, keunikan, dan distribusi nilai dalam data Anda untuk membantu Anda memahaminya.
Untuk mendapatkan statistik kolom bertingkat, Anda dapat meratakan data menggunakan serangkaian tampilan terwujud. Tindakan ini mengubah setiap kolom bertingkat menjadi kolom tingkat teratas yang dapat diprofilkan oleh Knowledge Catalog.
Mendapatkan skema bertingkat
Dapatkan skema lengkap tabel sumber Anda, termasuk semua struktur bertingkat, dan simpan output sebagai file JSON:
bq show --schema --format=json $PROJECT_ID:$DATASET_ID.$TABLE_ID > bq_schema.json
Melihat skema:
jq < bq_schema.json
File bq_schema.json mengungkapkan struktur yang kompleks.
Meratakan data dengan tampilan terwujud
Saat Anda meratakan data bertingkat, penting untuk tidak memisahkan beberapa array independen dalam tampilan yang sama. Melakukannya akan melakukan gabungan silang implisit (produk Cartesian) antara array, yang mengalikan baris secara tidak benar dan merusak data Anda.
Sebaiknya buat beberapa tampilan, yang masing-masing dibuat untuk tujuan tertentu. Setiap tampilan harus mempertahankan satu tingkat detail yang jelas. Pada langkah ini, Anda akan membuat tampilan terwujud berikut:
- Tampilan datar sesi (
mv_ga4_user_session_flat.sql): satu baris per peristiwa. - Tampilan transaksi (
mv_ga4_ecommerce_transactions.sql): satu baris per transaksi. - Tampilan item (
mv_ga4_ecommerce_items.sql): satu baris per item.
Repositori project menyediakan tiga file SQL dalam direktori devrel-demos/data-analytics/programmatic-dq yang menentukan tampilan ini.
Jalankan file ini dari Cloud Shell menggunakan perintah BigQuery berikut.
envsubst < mv_ga4_user_session_flat.sql | bq query --use_legacy_sql=false
envsubst < mv_ga4_ecommerce_transactions.sql | bq query --use_legacy_sql=false
envsubst < mv_ga4_ecommerce_items.sql | bq query --use_legacy_sql=false
Menjalankan pemindaian profil dengan klien Python
Sekarang Anda dapat membuat dan menjalankan pemindaian profil data Knowledge Catalog untuk setiap tampilan terwujud. Skrip Python berikut menggunakan library klien google-cloud-dataplex untuk mengotomatiskan proses ini.
Sebelum menjalankan skrip, buat lingkungan virtual Python yang terisolasi di direktori project Anda.
# Create the virtual environment
python3 -m venv dq_venv
# Activate the environment
source dq_venv/bin/activate
Instal library klien Knowledge Catalog di dalam lingkungan virtual.
# Install the Dataplex client library
pip install google-cloud-dataplex
Setelah menyiapkan lingkungan dan menginstal library, Anda siap menggunakan skrip 1_run_dataplex_scans.py. Skrip ini memprofilkan tiga tampilan terwujud Anda dengan membuat dan menjalankan pemindaian untuk setiap tampilan. Setelah selesai, ringkasan statistik lengkap akan ditampilkan dan Anda dapat menggunakannya pada langkah berikutnya untuk membuat aturan kualitas data yang didukung AI.
Jalankan skrip dari terminal Cloud Shell Anda.
python3 1_run_dataplex_scans.py
Memeriksa hasil pindaian profil Anda
Anda dapat melihat hasil pemindaian profil baru di konsol Google Cloud .
- Di menu navigasi, buka Knowledge Catalog, lalu pilih Data profiling & quality di bagian Govern.
- Temukan tiga pemindaian profil Anda yang tercantum, beserta status tugas terbarunya. Klik pemindaian untuk menjelajahi hasil mendetailnya.
Mengekspor hasil pembuatan profil ke JSON
Agar Gemini dapat membaca hasil pemindaian profil Anda, Anda harus mengekstrak isinya ke dalam file lokal.
Gunakan skrip 2_dq_profile_save.py untuk menemukan pemindaian berhasil terbaru untuk tampilan mv_ga4_user_session_flat, mendownload data profil, dan menyimpannya ke file bernama dq_profile_results.json.
python3 2_dq_profile_save.py
Setelah skrip selesai, skrip akan membuat file dq_profile_results.json di direktori. File ini berisi metadata statistik mendetail yang Anda perlukan untuk membuat aturan kualitas data. Lihat isinya dengan menjalankan perintah berikut:
cat dq_profile_results.json
Membuat aturan kualitas data dengan Gemini CLI
Sekarang Anda dapat menggunakan Gemini CLI untuk membaca hasil pemindaian profil lokal.
Menulis aturan kualitas data secara manual untuk set data yang kompleks memakan waktu dan rentan terhadap error. AI generatif mempercepat alur kerja ini dengan membuat konfigurasi kualitas data awal yang komprehensif dalam hitungan detik. Hal ini membantu Anda beralih dari eksekusi tugas manual ke pengawasan tingkat tinggi.
Untuk memulai Gemini CLI, gunakan perintah berikut:
gemini
Sekarang Anda siap membuat aturan kualitas. Karena CLI dapat membaca file di direktori saat ini, CLI dapat menggunakan data pemindaian profil baru Anda secara langsung.
Meminta Gemini untuk membuat rencana
Minta Gemini bertindak sebagai analis ahli dan mengusulkan rencana untuk membuat aturan kualitas data Anda. Minta Gemini untuk tidak menulis file YAML terlebih dahulu agar berfokus pada analisis. Gemini menganalisis file JSON dan menampilkan rencana terstruktur
You are an expert Google Cloud Dataplex engineer.
Your first task is to create a plan. I have a file in the current directory named ./dq_profile_results.json.
Based on the statistical data within that file, propose a step-by-step plan to create a Dataplex data quality rules file.
Your plan should identify which specific columns are good candidates for rules like nonNullExpectation, setExpectation, or rangeExpectation, and explain why based on the metrics (for example, "Plan to create a nonNullExpectation for column X because its null percentage is 0%").
Do not write the YAML file yet. Just provide the plan.
Membuat aturan kualitas data
Rencana Gemini sepenuhnya mengandalkan pola statistik dan tidak memiliki pengetahuan bisnis spesifik Anda.
Tinjau rencana dan tanyakan pertanyaan berikut kepada diri Anda sendiri:
- Apakah model ini selaras dengan sasaran dan konteks bisnis Anda?
- Apakah ada aturan yang valid secara statistik yang sebenarnya tidak praktis (seperti rowCount yang ketat untuk tabel yang terus bertambah)?
Sempurnakan rencana dengan Gemini, atau setujui apa adanya menggunakan contoh perintah berikut. Perintah dimulai dengan memberikan beberapa masukan, lalu menginstruksikan Gemini untuk membuat file dq_rules.yaml di direktori kerja Anda dan sesuai dengan spesifikasi DataQualityRule karena Knowledge Catalog memerlukan struktur YAML yang tepat. Hal ini membantu mencegah error sintaksis atau penggunaan versi skema yang sudah tidak berlaku.
- "The plan looks good. Please proceed."
- "The rowCount rule is not necessary, as the table size changes daily. The rest of the plan is approved. Please proceed."
- "For the setExpectation on the geo_continent column, please also include 'Antarctica'."
Once you have incorporated my feedback, please generate the `dq_rules.yaml` file.
You must adhere to the following strict requirements:
- Schema Compliance: The YAML structure must strictly conform to the DataQualityRule specification. For a definitive source of truth, you must refer to the sample_rule.yaml file in the current directory and the DataQualityRule class definition. Search for the `data_quality.py` file inside the `./dq_venv/lib/` directory to read this class definition.
- Data-Driven Values: All rule parameters, such as thresholds or expected values, must be derived directly from the statistical metrics in dq_profile_results.json.
- Rule Justification: For each rule, add a comment (#) on the line above explaining the justification, as you outlined in your plan.
- Output Purity: The final output must only be the raw YAML code block, perfectly formatted and ready for immediate deployment.
Membuat dan menjalankan pemindaian kualitas data
Sekarang Anda memiliki kumpulan aturan kualitas data yang dihasilkan agen yang dapat Anda daftarkan dan deploy sebagai pemindaian.
Keluar dari Gemini CLI dengan memasukkan
/quitatau menekanCtrl+Cdua kali.Kemudian, buat pemindaian data di Knowledge Catalog:
export DQ_SCAN="dq-scan" gcloud dataplex datascans create data-quality $DQ_SCAN \ --project=$PROJECT_ID \ --location=$LOCATION \ --data-quality-spec-file=dq_rules.yaml \ --data-source-resource="//bigquery.googleapis.com/projects/$PROJECT_ID/datasets/$DATASET_ID/tables/mv_ga4_user_session_flat"Terakhir, jalankan pemindaian:
gcloud dataplex datascans run $DQ_SCAN --location=$LOCATION --project=$PROJECT_IDPerintah ini akan membuat pemindaian kualitas data bernama
dq-scan.Periksa progres pemindaian Anda di bagian Katalog Pengetahuan pada konsol Google Cloud .
- Di menu navigasi, buka Knowledge Catalog, lalu pilih Data profiling & quality di bagian Govern.
- Temukan
dq-scan. Setelah pemindaian selesai, klik pemindaian untuk melihat hasilnya.
Pembersihan
Untuk menghindari biaya penagihan berulang untuk resource yang Anda buat dalam tutorial ini, hapus resource tersebut.
Menghapus pemindaian Knowledge Catalog
Hapus profil dan pemindaian kualitas Anda menggunakan nama pemindaian tertentu dari codelab ini:
# Delete the Data Quality Scan
gcloud dataplex datascans delete dq-scan \
--location=us-central1 \
--project=$PROJECT_ID --quiet
# Delete the Data Profile Scans
gcloud dataplex datascans delete profile-scan-mv-ga4-user-session-flat \
--location=us-central1 \
--project=$PROJECT_ID --quiet
gcloud dataplex datascans delete profile-scan-mv-ga4-ecommerce-transactions \
--location=us-central1 \
--project=$PROJECT_ID --quiet
gcloud dataplex datascans delete profile-scan-mv-ga4-ecommerce-items \
--location=us-central1 \
--project=$PROJECT_ID --quiet
Menghapus set data sampel
Hapus set data BigQuery sementara dan tabelnya.
bq rm -r -f --dataset $PROJECT_ID:dataplex_dq_codelab
Menghapus file lokal
Nonaktifkan lingkungan virtual Python dan hapus repositori yang di-clone beserta isinya:
deactivate
cd ../../..
rm -rf devrel-demos
Kesimpulan
Selamat, Anda baru saja membangun alur kerja tata kelola data end-to-end yang terprogram.
Dengan menyandingkan Gemini dengan Knowledge Catalog, Anda telah membangun fondasi untuk tata kelola yang dibantu AI. Pendekatan ini tidak menggantikan loop tata kelola, tetapi mempercepat proses pembuatan aturan sehingga Anda dapat berfokus pada validasi dan penyempurnaan aturan berdasarkan logika bisnis Anda.
Langkah berikutnya
- Baca selengkapnya tentang filosofi di balik arsitektur ini dalam Tata Kelola yang Dibantu AI: Mempercepat Kualitas Data dengan Pengawasan Manusia.
- Kelola kualitas data sebagai kode dengan membuat pipeline CI/CD.
- Pelajari penggunaan aturan SQL kustom untuk menerapkan logika spesifik per bisnis.
- Optimalkan pemindaian Anda dengan filter dan pengambilan sampel untuk mengurangi biaya.
- Otomatiskan infrastruktur Anda dengan menyediakan resource Knowledge Catalog menggunakan Terraform untuk mengelola tata kelola data dalam skala besar.
- Pelajari lebih lanjut agen AI open source Gemini CLI.
- Coba kasus penggunaan Knowledge Catalog lainnya