Agen Data Engineering memungkinkan Anda membangun, mengubah, dan memecahkan masalah pipeline data di BigQuery menggunakan perintah bahasa alami. Agen Data Engineering menawarkan kemampuan berikut untuk menyederhanakan alur kerja data engineering Anda guna 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 dibuat untuk memastikan pipeline data berfungsi
- Penanganan Data Otomatis: Agen melakukan penanganan data dan mengubah data mentah menjadi tabel terstruktur tanpa intervensi manual.
- Petunjuk Kustom: Agen mendukung petunjuk agen kustom yang memungkinkan Anda menentukan aturan tertentu dan panduan yang dapat digunakan kembali dalam bahasa alami
- Konteks Eksternal: Agen terintegrasi 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 dalam pipeline data Anda
- Pemecahan Masalah dan Perbaikan: Agen dapat memecahkan masalah kegagalan pipeline dan memperbaiki kodenya.
Tempat Anda dapat menggunakan Agen Data Engineering
Anda dapat menggunakan Agen Data Engineering dengan metode berikut:
- Membangun pipeline data dari antarmuka pipeline BigQuery atau di Dataform.
- Menginstal ekstensi Google Cloud Data Agent Kit di Visual Studio Code untuk membangun pipeline data dari lingkungan pengembangan terintegrasi (IDE).
- Menggunakan 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 sebagai konteks tambahan selama percakapan agen untuk menginformasikan responsnya.
Tempat Agen Data Engineering memproses data Anda
Untuk mengetahui informasi selengkapnya tentang lokasi tempat Agen Data Engineering 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 flag
hasOutputyang ditetapkan ketrue. - Agen Data Engineering tunduk pada batasan umum teknologi AI.
Fitur dan penyesuaian agen
Bagian berikut menjelaskan kemampuan agen tambahan dan metode lain untuk menyesuaikan Agen Data Engineering.
Petunjuk agen
Petunjuk agen adalah petunjuk bahasa alami untuk Agen Data Engineering yang memungkinkan Anda menyimpan petunjuk persisten sehingga agen mengikuti serangkaian aturan kustom yang telah ditentukan. 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 Data Engineering, buat file
GEMINI.MDkonteks
sebagai file petunjuk agen.
Praktik terbaik dengan file petunjuk agen
Saat 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 dengan benar keGEMINI.md. - File yang diimpor di
GEMINI.mddapat berisi impor itu sendiri, yang dapat membuat struktur bertingkat. Untuk mencegah rekursi tak terbatas,GEMINI.mdmemiliki kedalaman impor maksimum lima level. - Untuk membagikan petunjuk di seluruh pipeline data, simpan petunjuk di repositori Dataform pusat dan tautkan ke repositori Dataform yang berfungsi. Anda dapat menggunakan petunjuk lokal untuk mengganti aturan pusat untuk perilaku khusus pipeline.
- Untuk memastikan konsistensi dalam project Anda, 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 judul dan daftar dalam file petunjuk agen dapat membantu mengatur dan mengklarifikasi petunjuk untuk Agen Data Engineering.
- Berikan nama file yang bermakna dan kelompokkan petunjuk serupa dalam satu file. Atur aturan secara logis berdasarkan kategori, fitur, atau fungsi dengan judul 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 dari waktu ke 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 petunjuk agen bernama GEMINI.md yang menggunakan praktik terbaik kami untuk penggunaan Agen Data Engineering 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 Data Engineering ke dalam file GEMINI.md dengan sintaksis @file.md. Untuk mengetahui informasi selengkapnya, lihat Pemroses Impor Memori.
Penanganan data otomatis
Anda dapat menggunakan Agen Data Engineering untuk mengubah data mentah yang tidak diproses menjadi tabel terstruktur yang sesuai untuk analisis data. Jika diminta, agen akan mengambil sampel hingga 1.000.000 data dari setiap tabel standar atau eksternal. Agen kemudian melakukan analisis data mendalam dengan menjalankan kueri pembuatan profil pada sampel ini. Setelah membuat transformasi data, agen akan mengulangi proses pengambilan sampel dan pembuatan profil ini untuk menilai kualitas transformasi. Transformasi penanganan data ini dapat mencakup perbaikan inkonsistensi data, anomali, atau ketidakcocokan jenis. Agen Data Engineering kemudian membuat rencana yang menguraikan langkah-langkah penanganan yang diusulkan untuk Anda tinjau dan sempurnakan sebelum tindakan apa pun terjadi.
Agen Data Engineering juga memulai analisis penanganan data setiap kali Anda menambahkan tabel mentah, seperti tabel eksternal berbasis CSV. Anda dapat meninjau rencana penanganan data dan menyesuaikannya dengan perintah percakapan.
Pengambilan sampel dan pembuatan profil data menggunakan resource BigQuery dan tunduk pada harga BigQuery.
Agen Data Engineering mendukung transformasi penanganan data 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 menstandarkan format data—misalnya, nomor telepon atau alamat
- Transformasi struktural. Jika skema target diberikan, agen dapat membatalkan atau mengekstrak nilai dari jenis
JSON,ARRAY, atauSTRUCT; menggabungkan beberapa kolom menjadi satu; atau membagi satu kolom menjadi beberapa kolom - Deteksi dan konversi jenis data. Agen dapat menganalisis data untuk menentukan jenis kolom yang sesuai. Agen kemudian dapat melakukan transmisi jenis yang aman untuk mengatasi inkonsistensi pemformatan dalam kolom tanggal, waktu, datetime, atau stempel waktu.
- Konversi unit. Agen dapat otomatis mengonversi berbagai unit dalam kolom menjadi satu unit yang konsisten untuk menstandarkan data Anda.
Untuk memastikan akurasi, agen menggunakan sampel representatif 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 tentang tujuan dan langkah-langkah yang diperlukan untuk menyelesaikan permintaan. Saat Anda meminta agen dengan permintaan kompleks yang memerlukan banyak perubahan, sebaiknya minta agen untuk memberi Anda rencana agen sehingga Anda dapat meninjau niat agen sebelum mengambil tindakan apa pun. Rencana Agen Data Engineering umumnya terdiri dari hal berikut:
- Tujuan agen untuk permintaan tertentu
- Ringkasan tingkat tinggi tentang langkah-langkah yang direncanakan agen
- Asumsi apa pun yang dibuat agen
- File yang direncanakan agen untuk diubah
- Langkah pengoptimalan atau pembersihan apa pun yang direncanakan
- Rencana eksekusi bertahap
Dalam perintah, Anda dapat menyertakan kebutuhan untuk meninjau dan menyetujui rencana sehingga 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 lebih banyak kejelasan 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 menandai 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 menggunakan pembuatan profil data, yang memberi agen pemahaman yang lebih baik tentang distribusi data dalam kolom tabel dan membantu agen membuat pernyataan kualitas data yang lebih spesifik
Menambahkan pemeriksaan kualitas data ke tabel yang ada
Saat Anda meminta agen untuk menambahkan pemeriksaan kualitas, agen akan menyimpulkan pemeriksaan yang wajar untuk tabel berdasarkan skema dan sampel. Anda juga dapat menambahkan pernyataan yang berpendapat sebagai bagian dari perintah. Misalnya:
Add data quality checks for bigquery-public-data.thelook_ecommerce.users.
Mengoptimalkan pipeline data
Anda dapat meminta agen untuk mengoptimalkan pipeline data Anda. Saat membuat DDL untuk tabel baru, Agen Data Engineering merekomendasikan partisi dan clustering berdasarkan pola penggunaan data yang dianalisis. Selain itu, agen dapat otomatis menerapkan pengoptimalan pipeline lainnya. Contoh pengoptimalan yang mungkin mencakup hal berikut:
- Pemangkasan kolom untuk mengurangi data yang dibaca dari penyimpanan agar bertindak sebagai pendorong biaya dan performa utama.
- Predicate pushdown 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 hanya memproses data baru atau yang diubah sejak proses terakhir, bukan membangun ulang seluruh tabel dengan setiap proses.
Praktik terbaik
Untuk meningkatkan hasil saat menggunakan Agen Data Engineering 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 memecah tugas pipeline yang kompleks. Rencana agen juga dapat menunjukkan asumsi dan niat agen kepada Anda, jadi sebaiknya tinjau rencana tersebut untuk memastikan agen diberi konteks yang benar.
Setelah meninjau rencana, Anda dapat mengedit rencana dengan meminta Agen Data Engineering untuk memberikan masukan dan perubahan. Misalnya:
In the plan, ensure that all of the intermediate tables are views.
Dalam beberapa kasus, sebaiknya minta agen untuk membuat rencana yang tidak memerlukan persetujuan eksplisit Anda. Tindakan membuat rencana agen memaksa Agen Data Engineering untuk memecah tindakannya, yang sering kali menghasilkan hasil yang lebih baik. Anda dapat memaksa agen untuk membuat rencana dan menjalankannya secara otomatis. Misalnya:
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 ketidakjelasan. Jika memungkinkan, berikan sumber data sumber dan tujuan saat meminta, 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 tercakup. Ajukan satu pertanyaan dalam satu waktu, dan buat perintah tetap ringkas. Untuk perintah dengan lebih dari satu pertanyaan, buat daftar setiap bagian pertanyaan yang berbeda 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 eksplisit dan tekankan istilah utama. Anda dapat menambahkan penekanan pada istilah atau konsep utama 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 diurutkan, 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 frasa dan pendekatan yang berbeda untuk melihat mana yang menghasilkan hasil terbaik. Jika agen membuat 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).