Dengan menggunakan pendekatan Human-in-the-Loop, tempat AI membuat draf aturan awal dan Anda meninjau, menyempurnakan, dan 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.
- Menjalankan pemindaian profil Knowledge Catalog menggunakan library klien Python.
- Menggunakan Gemini CLI untuk membuat aturan kualitas data berdasarkan statistik profil.
- Memvalidasi dan men-deploy aturan yang dibuat 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 yang 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 penyediaan 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 contoh:
bq --location=us mk --dataset $PROJECT_ID:$DATASET_IDSiapkan data contoh, 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, perintah ini hanya menyalin data dari satu hari (2021-01-31).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 atas, seperti persentase null, keunikan, dan distribusi nilai dalam data Anda untuk membantu Anda memahaminya.
Untuk mendapatkan statistik kolom bertingkat, Anda dapat meratakan data menggunakan kumpulan tampilan terwujud. Tindakan ini mengubah setiap kolom bertingkat menjadi kolom tingkat atas 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
Lihat skema:
jq < bq_schema.json
File bq_schema.json menampilkan struktur yang kompleks.
Meratakan data dengan tampilan terwujud
Saat meratakan data bertingkat, penting untuk tidak membatalkan nesting beberapa array independen dalam tampilan yang sama. Jika melakukannya, Anda akan melakukan cross join implisit (produk Cartesian) antara array, yang akan mengalikan baris secara salah 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 di 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 membuat profil tiga tampilan terwujud Anda dengan membuat dan menjalankan pemindaian untuk setiap tampilan. Setelah selesai, skrip ini akan menampilkan ringkasan statistik lengkap yang Anda gunakan 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 pemindaian profil
Anda dapat memeriksa pemindaian profil baru di Google Cloud konsol.
- Di menu navigasi, buka Knowledge Catalog dan pilih Data profiling &quality di bagian Govern.
- Temukan tiga pemindaian profil Anda yang tercantum, beserta status tugas terbarunya. Klik pemindaian untuk melihat hasil detailnya.
Mengekspor hasil profil ke JSON
Agar Gemini dapat membaca pemindaian profil Anda, Anda harus mengekstrak kontennya ke dalam file lokal.
Gunakan skrip 2_dq_profile_save.py untuk menemukan pemindaian terbaru yang berhasil 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 selesai, skrip akan membuat file dq_profile_results.json di direktori. File ini menyimpan metadata statistik mendetail yang Anda perlukan untuk membuat aturan kualitas data. Lihat kontennya 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 memerlukan waktu dan rentan 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 membuat rencana
Minta Gemini untuk bertindak sebagai analis ahli dan mengusulkan rencana untuk membuat aturan kualitas data Anda. Beri tahu Gemini untuk tidak menulis file YAML terlebih dahulu agar Gemini 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 bergantung pada pola statistik dan tidak memiliki pengetahuan bisnis spesifik Anda.
Tinjau rencana dan tanyakan pertanyaan berikut kepada diri Anda sendiri:
- Apakah rencana tersebut selaras dengan sasaran dan konteks bisnis Anda?
- Apakah ada aturan yang secara statistik valid tetapi sebenarnya tidak praktis (seperti rowCount yang ketat untuk tabel yang berkembang)?
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 mematuhi spesifikasi DataQualityRule karena Knowledge Catalog memerlukan struktur YAML yang presisi. 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 dibuat 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 membuat pemindaian kualitas data bernama
dq-scan.Periksa progres pemindaian Anda di bagian Knowledge Catalog di Google Cloud konsol.
- Di menu navigasi, buka Knowledge Catalog dan 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 pemindaian profil dan 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 contoh
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 kontennya:
deactivate
cd ../../..
rm -rf devrel-demos
Kesimpulan
Selamat, Anda baru saja membuat alur kerja tata kelola data terprogram dan menyeluruh.
Dengan menggabungkan 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 lebih lanjut filosofi di balik arsitektur ini di 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 sampling untuk mengurangi biaya.
- Otomatiskan infrastruktur Anda dengan menyediakan resource Knowledge Catalog menggunakan Terraform untuk mengelola tata kelola data Anda dalam skala besar.
- Pelajari lebih lanjut agen AI open source Gemini CLI.
- Coba kasus penggunaan Knowledge Catalog lainnya