Agen Data Engineering memungkinkan Anda membuat, mengubah, dan memecahkan masalah pipeline data di BigQuery menggunakan perintah bahasa alami. Agen Data Engineering menawarkan kemampuan berikut untuk menyederhanakan alur kerja rekayasa data Anda dalam menyerap data ke BigQuery:
- Integrasi Dataform: Agen membuat dan mengatur kode pipeline data langsung dalam repositori dan ruang kerja Dataform
- Pembuatan rencana: Agen dapat meringkas pemikirannya dan membuat rencana yang memungkinkan Anda meninjau dan memverifikasi rencana agen sebelum melanjutkan
- Validasi kode: Agen secara otomatis memvalidasi dan memperbaiki error kompilasi kode yang dihasilkan untuk memastikan pipeline data berfungsi
- Data wrangling otomatis: Agen melakukan data wrangling dan mengubah data mentah menjadi tabel terstruktur tanpa intervensi manual.
- Petunjuk kustom: Agen mendukung petunjuk agen kustom yang memungkinkan Anda menentukan aturan khusus dan pedoman yang dapat digunakan kembali dalam bahasa alami
- Konteks eksternal: Agen diintegrasikan dengan Knowledge Catalog untuk konteks tambahan
- Kontrol pipeline: Anda dapat meninjau dan menyesuaikan rencana agen yang dibuat sebelum tindakan apa pun dieksekusi.
- Pengoptimalan: Agen dapat mengoptimalkan performa di pipeline data Anda
- Memecahkan masalah dan memperbaiki: Agen dapat memecahkan masalah kegagalan pipeline dan memperbaiki kodenya.
- Rekomendasi Interaktif: Agen memberikan rekomendasi interaktif dan kontekstual di awal dan sepanjang sesi.
- Pengayaan metadata Knowledge Catalog: Agen dapat membuat metadata Knowledge Catalog secara otomatis dari konfigurasi tabel Anda, dan dapat mengirim metadata ke Knowledge Catalog selama eksekusi pipeline.
Tempat Anda dapat menggunakan Agen Data Engineering
Anda dapat menggunakan Agen Rekayasa Data dengan metode berikut:
- Buat pipeline data dari antarmuka pipeline BigQuery atau di Dataform.
- Instal ekstensi Google Cloud Data Agent Kit di Visual Studio Code untuk membuat pipeline data dari lingkungan pengembangan terintegrasi (IDE).
- Gunakan Data Engineering Agent API.
Cara Agen Data Engineering menggunakan data Anda
Untuk menghasilkan respons agen yang berkualitas lebih tinggi, Agen Data Engineering dapat mengambil data dan metadata tambahan dari BigQuery dan Knowledge Catalog, termasuk baris contoh dari tabel BigQuery dan profil pemindaian data yang dibuat di Knowledge Catalog. Agen tidak menggunakan data ini untuk pelatihan; agen hanya menggunakan data ini sebagai konteks tambahan selama percakapan agen untuk menentukan responsnya.
Tempat Agen Data Engineering memproses data Anda
Untuk mengetahui informasi selengkapnya tentang lokasi tempat Agen Rekayasa Data memproses data Anda, lihat Tempat Gemini di BigQuery memproses data Anda.
Batasan
Agen Data Engineering memiliki batasan berikut:
- Agen Data Engineering tidak mendukung perintah bahasa alami untuk jenis file berikut:
- Notebook
- Persiapan data
- Agen Data Engineering tidak dapat menjalankan pipeline. Anda harus meninjau dan menjalankan atau menjadwalkan pipeline.
- Agen Data Engineering tidak dapat menelusuri link web atau URL yang diberikan melalui petunjuk atau perintah langsung.
- Saat mengimpor file dalam
file petunjuk agen,
sintaksis impor
@hanya mendukung jalur yang dimulai dengan./,/, atau huruf. - Fitur pratinjau data hanya didukung untuk
tabel, deklarasi, atau kueri dengan tanda
hasOutputyang ditetapkan ketrue. - Agen Data Engineering tunduk pada batasan umum teknologi AI.
- Saat membuat pipeline melalui tabel eksternal Apache Iceberg yang dikelola oleh katalog runtime Lakehouse (sebelumnya BigLake metastore), semua batasan katalog runtime Lakehouse berlaku. Terutama, agen tidak dapat membuat mutasi tulis (seperti
INSERT,UPDATE,DELETE, atauMERGE) atau pernyataan DDL (sepertiCREATE TABLEatauDROP TABLE) pada tabel Iceberg. Untuk mengetahui informasi selengkapnya, lihat Konsep endpoint katalog REST Apache Iceberg.
Fitur dan penyesuaian agen
Bagian berikut menjelaskan kemampuan agen tambahan dan metode lain untuk menyesuaikan Agen Rekayasa Data.
Petunjuk agen
Petunjuk agen adalah petunjuk bahasa alami untuk Agen Rekayasa Data yang memungkinkan Anda menyimpan petunjuk persisten sehingga agen mengikuti serangkaian aturan kustom yang telah ditentukan sebelumnya. Gunakan petunjuk agen jika Anda ingin hasil agen konsisten di seluruh organisasi Anda—misalnya, dengan konvensi penamaan atau untuk menerapkan panduan gaya.
Untuk membuat petunjuk agen bagi Agen Rekayasa Data, buat file
konteks GEMINI.MD
sebagai file petunjuk agen.
Praktik terbaik dengan file instruksi agen
Saat Anda menggunakan petunjuk agen, sebaiknya lakukan hal berikut:
- Semua jalur file di Dataform bersifat relatif terhadap root
repositori. Gunakan jalur relatif untuk sintaksis
@file.mdguna mengimpor petunjuk keGEMINI.mddengan benar. - File yang diimpor di
GEMINI.mdsendiri dapat berisi impor, yang dapat membuat struktur bertingkat. Untuk mencegah rekursi tak terbatas,GEMINI.mdmemiliki kedalaman impor maksimum lima tingkat. - Untuk membagikan petunjuk di seluruh pipeline data, simpan petunjuk di repositori Dataform pusat dan tautkan ke repositori Dataform yang sedang digunakan. Anda dapat menggunakan petunjuk lokal untuk mengganti aturan pusat untuk perilaku khusus pipeline.
- Untuk memastikan konsistensi dalam project, Anda dapat menautkan ke file konvensi penamaan atau panduan gaya dan menginstruksikan agen untuk mengikuti panduan ini saat bekerja dengan pipeline data Anda.
- Anda dapat menyarankan lapisan data dalam file petunjuk untuk mengelompokkan berbagai jenis data.
- Menggunakan heading dan daftar dalam file petunjuk agen dapat membantu mengatur dan memperjelas petunjuk untuk Agen Rekayasa Data.
- Berikan nama file yang bermakna dan kelompokkan petunjuk serupa dalam satu file. Atur aturan secara logis menurut kategori, fitur, atau fungsi dengan heading Markdown.
- Untuk menghindari petunjuk yang bertentangan, tentukan dengan jelas kondisi spesifik yang berlaku untuk setiap petunjuk.
- Lakukan iterasi dan sempurnakan perintah dan alur kerja Anda. Perilaku agen berubah seiring waktu dengan peluncuran agen dan upgrade model, jadi sebaiknya lakukan iterasi pada aturan Anda dengan perintah yang berbeda untuk mengidentifikasi area yang mungkin perlu ditingkatkan. Pastikan file aturan Anda tetap sinkron dengan perubahan apa pun pada pipeline data Anda.
Contoh berikut menunjukkan file instruksi agen bernama GEMINI.md yang
memanfaatkan praktik terbaik kami untuk penggunaan Agen Rekayasa Data yang efektif:
### Naming Conventions
* Datasets: [business_domain]_[use_case] (e.g., ecommerce_sales)
* Tables:
- Raw/External: raw_[source_name]
- Staging: stg_[business_entity]
- Dimension: dim_[dimension_name]
- Fact: fct_[fact_name]
* Dataform Folders:
- sources
- staging
- marts
- dataProducts
* Views: vw_[view_name]
* Columns: snake_case (e.g., order_id, customer_name)
## Cloud Storage data load
* When ingesting data from Cloud Storage, create external tables.
## Null handling
* Filter out null id values
## String normalization
* Standardize string columns by converting to lower case
## Data Cleaning Guidelines
@./generic_cleaning.md
Mengimpor file lokal tambahan sebagai petunjuk agen
Anda juga dapat mengimpor file petunjuk lain untuk Agen Rekayasa Data ke dalam
file GEMINI.md dengan sintaksis @file.md. Untuk mengetahui informasi selengkapnya, lihat Memory Import Processor.
Data wrangling otomatis
Anda dapat menggunakan Agen Data Engineering untuk mengubah data mentah yang belum diproses menjadi tabel terstruktur yang cocok untuk analisis data. Jika diminta, agen akan mengambil sampel hingga 1.000.000 data terlebih dahulu dari setiap tabel standar atau eksternal. Kemudian, agen akan melakukan analisis data mendalam dengan menjalankan kueri pembuatan profil pada sampel ini. Setelah membuat transformasi data, agen mengulangi proses pengambilan sampel dan pembuatan profil ini untuk menilai kualitas transformasi. Transformasi data wrangling ini dapat mencakup memperbaiki inkonsistensi data, anomali, atau ketidakcocokan jenis. Kemudian, Agen Rekayasa Data akan membuat rencana yang menguraikan langkah-langkah penyiapan data yang diusulkan untuk Anda tinjau dan sempurnakan sebelum tindakan apa pun dilakukan.
Agen Data Engineering juga memulai analisis data wrangling setiap kali Anda menambahkan tabel mentah, seperti tabel eksternal berbasis CSV. Anda dapat meninjau rencana penataan data dan menyesuaikannya dengan perintah percakapan.
Pembuatan sampel dan pembuatan profil data menggunakan resource BigQuery dan tunduk pada harga BigQuery.
Agen Data Engineering mendukung transformasi data wrangling berikut:
- Pembersihan data. Agen dapat menganalisis data mentah dan menyarankan peluang pembersihan, seperti menghapus anomali, mengisi nilai yang hilang atau tidak konsisten (imputasi data), memperbaiki data duplikat, atau menstandardisasi format data—misalnya, nomor telepon atau alamat
- Transformasi struktural. Jika skema target disediakan, agen
dapat memisahkan atau mengekstrak nilai dari jenis
JSON,ARRAY, atauSTRUCT; menggabungkan beberapa kolom menjadi satu; atau memisahkan satu kolom menjadi beberapa kolom - Deteksi dan konversi jenis data. Agen dapat menganalisis data untuk menentukan jenis kolom yang sesuai. Kemudian, agen dapat melakukan transmisi jenis yang aman untuk menyelesaikan inkonsistensi pemformatan dalam kolom tanggal, waktu, tanggal waktu, atau stempel waktu.
- Konversi satuan. Agen dapat otomatis mengonversi berbagai satuan dalam kolom menjadi satu satuan yang konsisten untuk menstandardisasi data Anda.
Untuk memastikan akurasi, agen menggunakan sampel representatif dari data Anda untuk mendeteksi masalah dan memvalidasi logika transformasinya.
Membuat dan meninjau rencana agen
Agen Data Engineering dapat membuat rencana agen yang memberikan ringkasan dan gambaran umum tujuan dan langkah-langkah yang diperlukan untuk menyelesaikan permintaan. Saat Anda memberikan perintah yang kompleks kepada agen yang memerlukan banyak perubahan, sebaiknya minta agen untuk memberi Anda rencana agen sehingga Anda dapat meninjau maksud agen sebelum agen melakukan tindakan apa pun. Paket Agen Data Engineering biasanya terdiri dari hal berikut:
- Tujuan agen untuk permintaan tertentu
- Ringkasan tingkat tinggi langkah-langkah yang akan dilakukan agen
- Asumsi apa pun yang dibuat agen
- File yang akan diubah oleh agen
- Langkah-langkah pengoptimalan atau pembersihan yang akan dilakukan
- Rencana eksekusi bertahap
Dalam perintah, Anda dapat menyertakan kebutuhan untuk meninjau dan menyetujui rencana agar agen tidak mengambil tindakan apa pun tanpa persetujuan eksplisit Anda. Misalnya:
Create a plan for a pipeline that finds the top N pick up and drop off locations in NYC. I want to review the plan and approve it before you create the pipeline.
Agen juga dapat membuat rencana agen secara otomatis dan meminta persetujuan Anda. Hasil ini dapat terjadi jika perintah terlalu ambigu, atau jika agen memerlukan kejelasan lebih lanjut untuk memenuhi permintaan Anda.
Untuk mengetahui praktik terbaik tentang penggunaan rencana agen, lihat Praktik terbaik.
Menambahkan konteks dari Knowledge Catalog
Agen Data Engineering menggunakan Knowledge Catalog dengan melampirkan istilah glosarium ke tabel dan kolom BigQuery serta membuat pemindaian profil data. Istilah glosarium dapat memberi tag pada kolom yang memerlukan konteks tambahan, seperti kolom yang berisi informasi identitas pribadi (PII) yang memerlukan petunjuk penanganan khusus, atau untuk mengidentifikasi kolom yang cocok dengan penamaan yang berbeda di seluruh tabel.
Knowledge Catalog juga memanfaatkan pemrofilan data, yang memberikan pemahaman yang lebih baik kepada agen tentang distribusi data dalam kolom tabel dan membantu agen membuat pernyataan kualitas data yang lebih spesifik.
Agen juga dapat menggunakan Knowledge Catalog untuk menemukan dan membuat kueri tabel Apache Iceberg. Untuk mengetahui informasi selengkapnya, lihat Membuat pipeline di tabel Apache Iceberg.
Menambahkan pemeriksaan kualitas data ke tabel yang ada
Saat Anda meminta agen untuk menambahkan pemeriksaan kualitas, agen menyimpulkan pemeriksaan yang wajar untuk tabel berdasarkan skema dan sampel. Anda juga dapat menambahkan pernyataan yang kuat sebagai bagian dari perintah. Contoh:
Add data quality checks for bigquery-public-data.thelook_ecommerce.users.
Selama eksekusi pipeline, hasil pernyataan Dataform apa pun akan otomatis dipublikasikan ke Knowledge Catalog (Pratinjau). Hasil ini mengisi kartu skor kualitas data Knowledge Catalog dengan status lulus atau gagal. Setiap eksekusi akan menimpa kartu skor kualitas data yang ada yang dipublikasikan oleh eksekusi Dataform sebelumnya, tetapi tidak memengaruhi kartu skor yang dibuat oleh pemindaian data Knowledge Catalog.
Pengayaan data otomatis
Metadata standar dari BigQuery—misalnya, set data, tabel, dan tabel virtual—otomatis tersedia di Knowledge Catalog.
Anda juga dapat menentukan metadata kustom untuk tabel dan tampilan secara langsung di
blok config file .sqlx. Setelah berhasil menyelesaikan tindakan,
Dataform otomatis memulai sinkronisasi metadata ke
Knowledge Catalog. Proses pengayaan ini memperbarui
Knowledge Catalog dengan metadata semantik yang ditentukan dalam
konfigurasi SQLX Anda.
Gunakan kunci metadata untuk menentukan informasi bagi Knowledge Catalog. Proses pengayaan mendukung konstruksi metadata berikut:
- Ringkasan: dokumentasi dan teks ringkasan untuk entri. Memerlukan Dataform core versi 3.0.37 atau yang lebih baru.
- Aspek generik: detail semantik seperti informasi sistem dan jenis tabel. Memerlukan Dataform core versi 3.0.52 atau yang lebih baru.
Konfigurasi contoh berikut menunjukkan cara menambahkan ringkasan dan aspek metadata generik ke konfigurasi tabel untuk Knowledge Catalog:
config {
type: "table",
metadata: {
overview: "This table provides standardized trip data.",
extraProperties: {
generic: {
system: "BigQuery",
type: "table"
}
}
}
}
Untuk memeriksa status update metadata, lihat Memeriksa log eksekusi ruang kerja untuk alur kerja Dataform atau Melihat eksekusi manual sebelumnya untuk pipeline BigQuery.
Untuk memverifikasi metadata yang disinkronkan, Anda dapat menelusuri aset di Knowledge Catalog. Untuk mengetahui informasi selengkapnya, lihat Menelusuri resource.
Optimalkan pipeline data
Anda dapat meminta agen untuk mengoptimalkan pipeline data. Saat membuat DDL untuk tabel baru, Agen Rekayasa Data merekomendasikan partisi dan pengelompokan berdasarkan pola penggunaan data yang dianalisis. Selain itu, agen dapat menerapkan pengoptimalan pipeline lainnya secara otomatis. Contoh pengoptimalan yang mungkin dilakukan meliputi:
- Penghapusan kolom untuk mengurangi data yang dibaca dari penyimpanan agar berfungsi sebagai pendorong biaya dan performa utama.
- Penerapan predikat untuk memfilter data lebih awal dalam rencana eksekusi guna mengurangi volume yang diproses oleh operasi berikutnya secara signifikan.
- Penghapusan subekspresi umum untuk meningkatkan efisiensi dengan mengidentifikasi dan menghitung logika transformasi bersama hanya sekali, sehingga mencegah praktik yang tidak efisien seperti memindai dan menggabungkan tabel besar beberapa kali.
- Model inkremental untuk memproses hanya data baru atau yang berubah sejak dijalankan terakhir, bukan membangun ulang seluruh tabel setiap kali dijalankan.
Membuat pipeline melalui tabel Apache Iceberg
Agen Data Engineering mendukung pembuatan dan kompilasi pipeline Dataform melalui tabel Apache Iceberg yang dikelola oleh katalog runtime Lakehouse (sebelumnya BigLake metastore). Fitur ini memungkinkan Anda membuat kueri dan menggabungkan tabel format open source regional (yang disimpan di Cloud Storage) secara langsung bersama tabel BigQuery Anda. Untuk mengetahui informasi selengkapnya, lihat Konsep endpoint katalog REST Apache Iceberg.
Misalnya, Anda dapat meminta agen untuk membuat kueri tabel Apache Iceberg di katalog runtime Lakehouse:
Include the stackoverflow_post_history_iceberg table in this pipeline.
Dalam perintah, Anda tidak perlu menentukan jalur empat bagian yang sepenuhnya memenuhi syarat—misalnya, project.catalog.dataset.table. Anda dapat merujuk ke tabel Apache Iceberg menggunakan nama bahasa alami standar atau ID logis—misalnya, the StackOverflow post history table atau post_history. Agen secara otomatis memanggil penelusuran katalog semantik menggunakan Knowledge Catalog untuk menyelesaikan dan mengikat tabel Apache Iceberg yang benar ke ruang kerja pipeline Anda.
Untuk menggunakan fitur ini, repositori Dataform Anda harus menggunakan Dataform Core versi 3.0.33 atau yang lebih baru.
Rekomendasi interaktif
Agen Data Engineering menganalisis status kompilasi ruang kerja, histori eksekusi, dan status percakapan aktif Anda untuk memberikan rekomendasi yang dapat ditindaklanjuti langsung di antarmuka chat. Saran ini akan otomatis muncul saat Anda membuka ruang kerja dan selama sesi untuk memberikan rekomendasi penyiapan, pemecahan masalah, dan pengoptimalan untuk memandu alur kerja Anda.
Untuk menggunakan rekomendasi, klik salah satu saran di bagian Rekomendasi AI, yang akan memuat perintah ke dalam kolom input chat Anda, yang dapat Anda edit atau sesuaikan sebelum mengirimkannya ke agen. Anda juga dapat mengarahkan kursor ke saran untuk melihat perintah yang tepat.
Praktik terbaik
Untuk meningkatkan hasil saat menggunakan Agen Rekayasa Data dan Dataform, sebaiknya lakukan hal berikut:
Gunakan petunjuk agen untuk permintaan umum. Jika Anda biasanya menerapkan teknik tertentu, atau jika Anda sering melakukan koreksi yang sama pada agen, gunakan petunjuk agen sebagai lokasi terpusat untuk menyimpan petunjuk dan permintaan umum.
Manfaatkan rencana agen. Rencana agen dapat membantu menguraikan tugas pipeline yang kompleks. Rencana agen juga dapat menunjukkan asumsi dan niat agen, jadi sebaiknya tinjau rencana tersebut untuk memastikan agen diberi konteks yang benar.
Setelah meninjau rencana, Anda dapat mengedit rencana dengan memberikan masukan dan perubahan kepada Agen Rekayasa Data. Contoh:
In the plan, ensure that all of the intermediate tables are views.
Terkadang, Anda dapat meminta agen untuk membuat rencana yang tidak memerlukan persetujuan eksplisit Anda. Tindakan membuat rencana agen memaksa Agen Data Engineering untuk menguraikan tindakannya, yang sering kali menghasilkan hasil yang lebih baik. Anda dapat memaksa agen untuk membuat rencana dan mengeksekusinya secara otomatis. Contoh:
Create a plan for a pipeline that finds the
top N pick up and drop off locations in NYC. You have my explicit pre-approval
to go ahead and execute this plan.
Tulis dengan jelas. Nyatakan permintaan Anda dengan jelas dan hindari permintaan yang tidak jelas. Jika memungkinkan, berikan sumber data sumber dan tujuan saat memberikan perintah, seperti yang ditunjukkan dalam contoh berikut:
Extract data from the sales.customers table in the us_west_1 region, and load
it into the reporting.dim_customers table in BigQuery. Match the schema of the
destination table.
Berikan permintaan langsung dan dalam cakupan. Ajukan satu pertanyaan dalam satu waktu, dan buat perintah tetap ringkas. Untuk perintah dengan lebih dari satu pertanyaan, buat setiap bagian pertanyaan yang berbeda dalam bentuk item untuk meningkatkan kejelasan, seperti yang ditunjukkan dalam contoh berikut:
1. Create a new table named staging.events_cleaned. Use raw.events as the
source. This new table should filter out any records where the user_agent
matches the pattern '%bot%'. All original columns should be included.
2. Next, create a table named analytics.user_sessions. Use
staging.events_cleaned as the source. This table should calculate the
duration for each session by grouping by session_id and finding the
difference between the MAX(event_timestamp) and MIN(event_timestamp).
Berikan petunjuk yang jelas dan tekankan istilah-istilah penting. Anda dapat menambahkan penekanan pada istilah atau konsep penting dalam perintah dan memberi label persyaratan tertentu sebagai penting, seperti yang ditunjukkan dalam contoh berikut:
When creating the staging.customers table, it is *VERY IMPORTANT* that you
transform the email column from the source table bronze.raw_customers.
Coalesce any NULL values in the email column to an empty string ''.
Tentukan urutan operasi. Untuk tugas yang berurutan, susun perintah Anda dalam daftar, dengan item yang tercantum dibagi menjadi langkah-langkah kecil yang terfokus, seperti yang ditunjukkan dalam contoh berikut:
Create a pipeline with the following steps:
1. Extract data from the ecomm.orders table.
2. Join the extracted data with the marts.customers table on customer_id.
3. Load the final result into the reporting.customer_orders table.
Sempurnakan dan lakukan iterasi. Terus coba berbagai frasa dan pendekatan untuk melihat mana yang memberikan hasil terbaik. Jika agen menghasilkan SQL yang tidak valid atau kesalahan lainnya, pandu agen dengan contoh atau dokumentasi publik.
The previous query was incorrect because it removed the timestamp. Please
correct the SQL. Use the TIMESTAMP_TRUNC function to truncate the
event_timestamp to the nearest hour, instead of casting it as a DATE. For
example: TIMESTAMP_TRUNC(event_timestamp, HOUR).
Mengevaluasi pipeline data
Untuk mengevaluasi efektivitas pipeline data yang dihasilkan oleh Agen Data Engineering, gunakan alat EvalBench. EvalBench adalah framework open source yang mendukung evaluasi agentik multi-giliran. EvalBench berfungsi sebagai rangkaian pengujian unit otomatis, yang memungkinkan Anda menyiapkan skenario multi-turn, menambahkan pemberi skor deterministik dan yang didukung LLM, serta mengelola siklus proses pipeline Dataform.
Dengan menyimulasikan perintah bahasa alami di sandbox terisolasi, EvalBench mengukur seberapa efektif agen memahami petunjuk, memanggil alat yang tepat, dan membuat kode pipeline yang benar. EvalBench dapat memeriksa pipeline data Anda dengan melakukan hal berikut:
- Memvalidasi aturan kustom: Verifikasi bahwa agen mematuhi secara ketat panduan coding, konvensi penamaan, dan praktik terbaik khusus organisasi Anda.
- Mencegah regresi kode: Uji perubahan pipeline sebelum deployment untuk memastikan bahwa update agen atau modifikasi skema tidak merusak fungsi yang ada.
- Membuat tolok ukur kualitas: Dapatkan skor otomatis yang objektif untuk kebenaran SQL, akurasi eksekusi alat, dan keandalan pipeline.
Menjalankan evaluasi pipeline data
Anda dapat menjalankan EvalBench dalam dua mode berikut:
Sandbox dinamis: EvalBench menyediakan repositori dan ruang kerja Dataform baru yang bersifat sementara di awal proses evaluasi, menjalankan skenario pengujian, dan otomatis menghapus semua resource yang dibuat setelah selesai. Mode ini tidak mengubah kode produksi, repositori produksi, atau set data BigQuery, dan tidak meninggalkan artefak sisa di project Google Cloud Anda. Mode sandbox dinamis cocok untuk pipeline CI/CD otomatis, pengujian regresi malam, dan pemberian skor tolok ukur objektif yang memerlukan isolasi lingkungan yang ketat.
Ruang kerja statis: EvalBench terhubung ke ruang kerja dan repositori Dataform yang sudah ada dan dikelola pengguna, serta melewati skrip pembuatan dan penghapusan otomatis. Mode ini memungkinkan agen yang sedang dievaluasi mengubah dan membuat file SQLX baru dalam ruang kerja yang ada saat memproses kasus evaluasi. Mode ruang kerja statis cocok untuk rekayasa perintah aktif, iterasi rubrik, dan proses debug lokal tempat Anda perlu memeriksa file SQLX yang dihasilkan secara langsung di ruang kerja Dataform setelah eksekusi.
Sebelum memulai
Untuk mendapatkan izin yang Anda perlukan untuk menjalankan EvalBench, minta administrator untuk memberi Anda peran IAM berikut pada akun layanan atau identitas pengguna yang menjalankan EvalBench:
- Dataform Admin (
roles/dataform.admin) - BigQuery Data Editor (
roles/bigquery.dataEditor) - BigQuery Job User (
roles/bigquery.jobUser) -
Mengekspor hasil evaluasi sebagai paket ZIP:
Storage Object Admin (
roles/bigquery.objectAdmin)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Menjalankan evaluasi di sandbox dinamis
Untuk mengevaluasi pipeline data dalam mode sandbox dinamis, lakukan hal berikut:
- Ikuti langkah-langkah untuk meng-clone repositori, menyiapkan lingkungan virtual, dan menginstal dependensi EvalBench. Untuk mengetahui informasi selengkapnya, lihat Mulai.
Di direktori
datasets/dea-tools/, verifikasi bahwa file konfigurasi contoh run (example_run_config.yaml) menyertakan baris berikut:set_up_script: datasets/dea-tools/scripts/setup_dataform.sh tear_down_script: datasets/dea-tools/scripts/teardown_dataform.sh
Jalankan EvalBench dengan perintah berikut:
EVAL_GCP_PROJECT_ID=PROJECT_ID \ EVAL_GCP_PROJECT_REGION=REGION \ .venv/bin/python3 evalbench/evalbench.py --experiment_config=datasets/dea-tools/example_run_config.yaml
Ganti kode berikut:
PROJECT_ID: ID project Google Cloud tersebut.REGION: region Google Cloud project.
Menjalankan evaluasi di ruang kerja evaluasi statis
Untuk mengevaluasi pipeline data dalam mode ruang kerja statis, lakukan hal berikut:
- Ikuti langkah-langkah untuk meng-clone repositori, menyiapkan lingkungan virtual, dan menginstal dependensi. Untuk mengetahui informasi selengkapnya, lihat Mulai.
Di direktori
datasets/dea-tools/, edit file contoh konfigurasi run (example_run_config.yaml) untuk mengomentari barisset_up_scriptdantear_down_scriptserta menambahkan konfigurasidataform_repositorydandataform_workspace:... # set_up_script: datasets/dea-tools/scripts/setup_dataform.sh # tear_down_script: datasets/dea-tools/scripts/teardown_dataform.sh dataform_repository: !ENV ${EVAL_DEA_REPOSITORY_ID} dataform_workspace: !ENV ${EVAL_DEA_WORKSPACE_ID} ...
Jalankan EvalBench dengan perintah berikut:
EVAL_GCP_PROJECT_ID=PROJECT_ID \ EVAL_GCP_PROJECT_REGION=REGION \ EVAL_DEA_REPOSITORY_ID=REPOSITORY_ID \ EVAL_DEA_WORKSPACE_ID=WORKSPACE_ID \ .venv/bin/python3 evalbench/evalbench.py --experiment_config=datasets/dea-tools/example_run_config.yaml
Ganti kode berikut:
PROJECT_ID: ID project Google Cloud tersebut.REGION: region Google Cloud project.REPOSITORY_ID: ID repositori yang berisi pipeline data.WORKSPACE_ID: ID ruang kerja yang berisi pipeline data.
Opsional: Anda juga dapat menjalankan EvalBench dengan
core_10_cases_suite.yamluntuk menguji pipeline data terhadap 10 kasus evaluasi inti secara berurutan dengan isolasi lingkungan dengan membuat repositori baru untuk setiap kasus pengujian. Untuk melakukannya, jalankan perintah berikut:EVAL_GCP_PROJECT_ID=PROJECT_ID \ EVAL_GCP_PROJECT_REGION=REGION \ .venv/bin/python3 evalbench/evalbench.py --suite_config=datasets/dea-tools/core_10_cases_suite.yaml
Praktik terbaik evaluasi pipeline data
Untuk meningkatkan performa dan akurasi evaluasi pipeline data Anda menggunakan EvalBench, sebaiknya lakukan hal berikut:
- Cari pemanggilan alur kerja Dataform dan ID tugas BigQuery di log evaluasi. Gunakan ID ini untuk referensi silang dan memeriksa artefak eksekusi yang dihasilkan, hasil kompilasi, dan log kueri di konsol Google Cloud .
- Selalu jalankan rangkaian evaluasi inti (
--suite_config) sebelum merilis model atau perubahan perintah untuk memastikan cakupan regresi penuh di berbagai skenario rekayasa data. - Gunakan
EVAL_DATAFORM_SETUP_ENV_FILES_DIRuntuk memuat file penyiapan lingkungan terlebih dahulu, sepertiworkflow_settings.yamldan definisi skema dasar, ke dalam ruang kerja pengujian. File penyiapan ini memastikan bahwa agen dibangun di lingkungan yang ada dan realistis, bukan ruang kerja kosong. - Saat memecahkan masalah kasus evaluasi yang gagal dalam mode sandbox dinamis, beri komentar
pada
tear_down_scriptdalam konfigurasi run Anda untuk mempertahankan target ruang kerja untuk analisis post-mortem. - Selalu pasangkan verifier kompilasi dan eksekusi cloud
(
dataform_cloud_compile,dataform_cloud_run) dengan rubrik biner berbasis LLM untuk mengidentifikasi error sintaksis atau runtime dan kekurangan logika tingkat tinggi. - Aktifkan pelaporan BigQuery (
<PROJECT_ID>.evalbench.results) dan gunakan link Data Studio yang dihasilkan untuk melacak tingkat kelulusan, akurasi penggunaan alat, dan efisiensi perintah dari waktu ke waktu.