Menggunakan Agen Data Engineering untuk membangun dan mengubah pipeline data

Dengan Agen Data Engineering, Anda dapat menggunakan Gemini di BigQuery untuk membangun, mengubah, dan mengelola pipeline data guna memuat dan memproses data di BigQuery. Dengan Agen Rekayasa Data, Anda dapat menggunakan perintah bahasa natural untuk membuat pipeline data dari berbagai sumber data atau menyesuaikan pipeline data yang ada agar sesuai dengan kebutuhan rekayasa data Anda. Agen Data Engineering memiliki fitur berikut:

  • Bahasa alami untuk pembuatan pipeline: Agen menggunakan Gemini untuk memahami data Anda dan menafsirkan petunjuk bahasa sederhana Anda. Anda dapat menggunakan petunjuk bahasa sederhana untuk meminta Agen Data Engineering membuat atau mengedit pipeline data.

  • Integrasi Dataform: Agen membuat dan mengatur kode pipeline yang diperlukan ke dalam file SQLX dalam repositori Dataform. Agen beroperasi di ruang kerja Dataform, sehingga pipeline Dataform otomatis tersedia untuk agen.

  • Petunjuk agen kustom: Buat petunjuk agen dalam bahasa yang mudah dipahami untuk menentukan aturan kustom bagi Agen Data Engineering. Petunjuk agen bersifat persisten di seluruh organisasi Anda, dan dapat berguna untuk menerapkan aturan di seluruh organisasi, seperti konvensi penamaan atau panduan gaya.

  • Validasi pipeline: Agen memvalidasi kode yang dihasilkan untuk memastikan bahwa pipeline data berfungsi.

Anda dapat menggunakan perintah bahasa natural dengan Agen Data Engineering untuk membuat file SQLX tabel, tampilan, pernyataan, deklarasi, dan operasi. Misalnya, Anda dapat menggunakan Agen Rekayasa Data untuk melakukan hal berikut:

  • Memuat data dari sumber data eksternal seperti Cloud Storage dalam berbagai format, seperti CSV, AVRO, atau PARQUET.
  • Buat atau gunakan rutinitas BigQuery (UDF) yang ada untuk melakukan analisis dan transformasi kustom pada data Anda.
  • Tentukan pedoman yang dapat digunakan kembali untuk agen dalam bahasa alami.

Untuk contoh perintah lainnya yang dapat Anda gunakan dengan Agen Rekayasa Data, lihat Contoh perintah.

Batasan

Agen Data Engineering memiliki batasan berikut:

  • Agen Data Engineering adalah penawaran pra-GA dan tidak ditujukan untuk penggunaan produksi.
  • Agen Data Engineering tidak mendukung perintah bahasa alami untuk jenis file berikut:
    • Notebook
    • Persiapan data
    • JavaScript dalam SQLx apa pun
  • Agen Data Engineering tidak dapat menjalankan pipeline. Pengguna perlu meninjau dan menjalankan atau menjadwalkan pipeline.
  • Agen Data Engineering tidak dapat memvalidasi SQL yang bergantung pada resource perantara yang tidak ada tanpa pemanggilan pipeline penuh (dipicu pengguna).
  • Agen Rekayasa Data tidak dapat menelusuri link web atau URL apa pun yang diberikan melalui petunjuk atau perintah langsung.
  • Saat mengimpor file dalam file instruksi agen, sintaksis impor @ hanya mendukung jalur yang dimulai dengan ./, /, atau huruf.
  • Fitur pratinjau data hanya didukung untuk tabel, deklarasi, atau kueri dengan tanda hasOutput yang ditetapkan ke true.

Region yang didukung

Gemini di BigQuery menggunakan Google Cloud untuk load balancing, sehingga beroperasi secara global. Karena Gemini di BigQuery beroperasi secara global, Anda tidak dapat memilih region yang akan digunakan.

Semua permintaan Dataform dan BigQuery ditujukan ke endpoint regional masing-masing, sehingga semua data dan kode tetap berada dalam regionnya.

Gemini in BigQuery ditayangkan dari region berikut:

Amerika

  • Iowa (us-central1)

Eropa

  • Finlandia (europe-north1)
  • Frankfurt (europe-west3)

Cara Agen Data Engineering menggunakan data Anda

Untuk menghasilkan respons agen yang berkualitas lebih tinggi, Agen Rekayasa Data dapat mengambil data dan metadata tambahan dari BigQuery dan Dataplex Universal Catalog, termasuk baris sampel dari tabel BigQuery dan profil pemindaian data yang dibuat di Dataplex Universal Catalog. Data ini tidak digunakan untuk melatih agen rekayasa data, dan hanya digunakan selama percakapan agen sebagai konteks tambahan untuk menginformasikan respons agen.

Sebelum memulai

Pastikan Gemini di BigQuery diaktifkan untuk project Google Cloud Anda. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan Gemini di BigQuery.

Anda juga harus mengaktifkan Gemini Data Analytics API.

Roles required to enable APIs

To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

Enable the API

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan guna menggunakan Agen Data Engineering, minta administrator Anda untuk memberi Anda peran IAM berikut di project:

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.

Membuat pipeline data dengan Agen Data Engineering

Untuk menggunakan Agen Data Engineering di BigQuery, pilih salah satu opsi berikut:

Pipeline BigQuery

Anda dapat menggunakan Agen Data Engineering di antarmuka pipeline BigQuery dengan melakukan hal berikut:

  1. Buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, klik arrow_drop_down Create new > Pipeline.

  3. Pilih opsi untuk kredensial eksekusi, lalu klik Mulai. Kredensial ini tidak digunakan oleh agen, tetapi diperlukan agar Anda dapat menjalankan pipeline data yang dihasilkan.

  4. Klik Coba pengalaman agen untuk pipeline data.

  5. Di kolom Ask agent, masukkan perintah bahasa natural untuk membuat pipeline data. Contoh:

      Create dimension tables for a taxi trips star schema from
      new_york_taxi_trips.tlc_green_trips_2022. Generate surrogate keys and all
      the descriptive attributes.
    

    Setelah Anda memasukkan perintah, klik Kirim.

  6. Agen Data Engineering membuat pipeline data berdasarkan perintah Anda.

Pipeline data yang dihasilkan oleh Agen Data Engineering adalah draf usulan pipeline data. Anda dapat mengklik node pipeline untuk meninjau kueri SQLX yang dihasilkan. Untuk menerapkan pipeline data yang disarankan agen, klik Terapkan.

Terapkan perubahan yang disarankan oleh Agen Rekayasa Data pada pipeline data Anda.

Dataform

Anda dapat menggunakan Agen Rekayasa Data di Dataform dengan melakukan hal berikut:

  1. Buka halaman Dataform.

    Buka Dataform

  2. Pilih repositori.

  3. Pilih atau buat ruang kerja pengembangan.

  4. Di ruang kerja, klik Tanya Agen.

  5. Di perintah Tanya agen yang muncul, masukkan perintah bahasa alami untuk membuat pipeline data. Contoh:

      Create dimension tables for a taxi trips star schema from
      new_york_taxi_trips.tlc_green_trips_2022. Generate surrogate keys and all
      the descriptive attributes.
    

    Setelah Anda memasukkan perintah, klik Kirim.

Setelah perintah Anda dikirim, Agen Rekayasa Data akan membuat pipeline data dan mengubah file SQLX Dataform berdasarkan perintah Anda. Agen menerapkan perubahan ini langsung ke file ruang kerja Anda.

Meninjau pipeline data

Di pipeline data yang dihasilkan oleh Agen Data Engineering, Anda dapat mengklik node pipeline untuk meninjaunya.

  • Tab Configuration menampilkan kueri SQLX yang dihasilkan dan terkait dengan node.
  • Tab Pratinjau data menampilkan tabel input dan output file. Anda dapat melihat pratinjau transformasi data melalui node ini dengan mengklik Jalankan tugas untuk menjalankan tugas dengan atau tanpa dependensi.

Mengedit pipeline data

Anda dapat mengedit pipeline data menggunakan Agen Data Engineering dengan mengklik Tanya agen dan memasukkan perintah yang menyarankan perubahan pada pipeline data.

Klik Ask Agent untuk menggunakan Agen Rekayasa Data di pipeline data Anda.

Tinjau perubahan yang diusulkan oleh Agen Data Engineering, lalu klik Terapkan untuk menerapkan perubahan.

Anda juga dapat mengedit kueri SQLX secara manual dengan memilih node pipeline, lalu mengklik Buka.

Membuat petunjuk agen untuk Agen Rekayasa Data

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 Anda konsisten di seluruh organisasi, misalnya dengan konvensi penamaan atau untuk menerapkan panduan gaya.

Anda dapat membuat file konteks GEMINI.MD sebagai file instruksi agen untuk Agen Data Engineering. Anda dapat membuat file instruksi agen untuk digunakan di ruang kerja lokal, atau Anda dapat menggunakan file instruksi yang sama di beberapa pipeline data menggunakan repositori eksternal.

Buat petunjuk agen dengan melakukan hal berikut:

  1. Di bagian Tanya agen, klik Petunjuk pipeline.
  2. Di panel Instructions for pipeline, klik Create instructions file.
  3. Di file GEMINI.MD yang muncul, masukkan petunjuk Anda dalam bahasa alami.

    Contoh berikut menunjukkan file instruksi agen dengan beberapa aturan:

      1. All event-specific tables MUST be prefixed with `cs_event_`.
      2. The primary key for any player activity table is a composite key of `player_id` and `event_timestamp_micros`.
      3. Filter out any player actions where `mana_spent` is greater than `max_mana_pool`. This is considered a data anomaly.
    
  4. Klik Simpan.

Untuk mengetahui informasi tentang cara terbaik menyusun file petunjuk agen, lihat Praktik terbaik dengan file petunjuk agen.

Memuat petunjuk agen dari repositori eksternal

Anda dapat menentukan serangkaian petunjuk agen untuk digunakan kembali di beberapa pipeline data dengan menautkan repositori eksternal:

  1. Di bagian Tanya agen, klik Petunjuk pipeline.
  2. Di bagian External repository, pilih Use instructions from external repository
  3. Di kolom yang disediakan, tentukan repositori yang berisi petunjuk agen yang ingin Anda gunakan dengan pipeline data.
  4. Klik Simpan.

Mengimpor file lokal tambahan sebagai petunjuk agen

Anda juga dapat mengimpor file petunjuk lain untuk Agen Rekayasa Data ke dalam file GEMINI.md menggunakan sintaksis @file.md. Untuk mengetahui informasi selengkapnya, lihat Memory Import Processor.

Memecahkan masalah error pipeline data

Jika Anda mengalami error selama pembuatan pipeline data, pastikan Anda telah melakukan semua prasyarat yang diperlukan untuk menjalankan Agen Data Engineering. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.

Jika pipeline data yang dihasilkan mengalami error, Anda dapat meminta agen data engineering untuk mendiagnosis kegagalan pipeline data dan memberikan rekomendasi pemecahan masalah dengan langkah-langkah berikut:

  1. Di pipeline atau ruang kerja pengembangan, klik tab Eksekusi.
  2. Dari daftar eksekusi, temukan eksekusi pipeline data yang gagal. Anda dapat mengidentifikasi eksekusi yang gagal di kolom Status pada eksekusi.

    Temukan eksekusi yang gagal di kolom status pipeline Anda.

  3. Arahkan kursor ke ikon, lalu klik Selidiki. Agen Data Engineering menjalankan analisis pada eksekusi pipeline data Anda untuk menemukan error.

    Minta Agen Data Engineering untuk mendiagnosis error pada pipeline Anda.

  4. Setelah analisis selesai, Agen Rekayasa Data akan membuat laporan di bagian Pengamatan dan Hipotesis. Laporan ini mencakup:

    • Pengamatan dan titik data yang diekstrak dari log eksekusi pipeline data
    • Kemungkinan penyebab kegagalan
    • Serangkaian langkah atau rekomendasi yang dapat ditindaklanjuti untuk menyelesaikan masalah yang teridentifikasi

Dengan laporan pemecahan masalah oleh Agen Data Engineering, Anda dapat menerapkan rekomendasi secara manual. Anda juga dapat menginstruksikan Agen Data Engineering untuk menerapkan perbaikan bagi Anda dengan langkah-langkah berikut:

  1. Salin saran dalam laporan pemecahan masalah.
  2. Kembali ke Agen Data Engineering:
    1. Jika Anda menggunakan pipeline BigQuery, buka halaman pipeline Anda, lalu klik Tanya agen.
    2. Jika Anda menggunakan Dataform, klik Tanya agen.
  3. Tempelkan saran ke dalam perintah, dan instruksikan agen rekayasa data untuk melakukan perbaikan langsung pada pipeline data Anda.
  4. Klik Kirim.

Contoh perintah

Bagian berikut menunjukkan beberapa contoh perintah yang dapat Anda gunakan dengan Agen Data Engineering untuk mengembangkan pipeline data Anda.

Menggabungkan data yang ada ke dalam tabel baru

Dengan perintah ini, Agen Data Engineering menggunakan skema dan sampel untuk menyimpulkan pengelompokan data menurut kunci. Agen biasanya menyiapkan konfigurasi tabel baru dengan deskripsi tabel dan kolom.

  Create a daily sales report from the
  bigquery-public-data.thelook_ecommerce.order_items table into a
  reporting.daily_sales_aggregation table.

Menambahkan pemeriksaan kualitas data ke tabel yang ada

Dengan perintah ini, agen menyimpulkan pemeriksaan kualitas yang wajar untuk tabel berdasarkan skema dan sampel. Anda juga dapat menambahkan beberapa pernyataan yang kuat sebagai bagian dari perintah.

  Add data quality checks for bigquery-public-data.thelook_ecommerce.users.

Membuat kolom turunan baru dan menambahkan pemeriksaan kualitas data ke tabel baru

Perintah berikut menunjukkan cara menambahkan tabel dan kolom, serta menentukan pemeriksaan kualitas ke tabel secara bersamaan.

  Create a new table named staging.products from
  bigquery-public-data.thelook_ecommerce.products and add a calculated column
  named gross_profit, which is the retail_price minus the cost.


  Also, add the following assertions: ID must not be null and must be unique.
  The retail_price must be greater than or equal to the cost. The department
  column can only contain 'Men' or 'Women'.

Membuat UDF sebagai bagian dari definisi model

Agen Data Engineering juga dapat menyiapkan DDL untuk membuat fungsi yang ditentukan pengguna (UDF). Meskipun agen tidak akan benar-benar membuat UDF, Anda dapat membuat UDF dengan menjalankan pipeline data. UDF ini dapat digunakan dalam definisi model di pipeline data Anda.

  Create a user-defined function (UDF) named get_age_group that takes an integer
  age as input and returns a string representing the age group ('Gen Z',
  'Millennial', 'Gen X', 'Baby Boomer').


  Use this UDF on the age column from the
  bigquery-public-data.thelook_ecommerce.users table to create a new view called
  reporting.user_age_demographics that includes user_id, age, and the calculated
  age_group.

Praktik terbaik

Bagian berikut menyarankan praktik terbaik untuk menggunakan Agen Data Engineering dan Dataform.

Praktik terbaik dengan Agen Rekayasa Data

Memanfaatkan petunjuk agen untuk permintaan umum. Jika ada teknik yang sering Anda terapkan, atau jika Anda sering melakukan koreksi yang sama pada agen, gunakan petunjuk agen sebagai lokasi terpusat untuk menyimpan petunjuk dan permintaan umum.

Berikan lebih banyak konteks kepada agen. Anda dapat memberikan konteks tambahan kepada agen dari Dataplex Universal Catalog dengan melampirkan istilah glosarium ke tabel dan kolom BigQuery serta membuat pemindaian profil data. Istilah glosarium dapat digunakan untuk 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. Pemindaian profil data memberikan pemahaman yang lebih baik kepada agen tentang distribusi data dalam kolom tabel dan dapat membantu agen membuat pernyataan kualitas data yang lebih spesifik. Untuk mengetahui informasi selengkapnya, lihat Tentang pembuatan profil data.

Tulis dengan jelas. Nyatakan permintaan Anda dengan jelas dan hindari kata-kata yang tidak jelas. Jika memungkinkan, berikan sumber data sumber dan tujuan saat memberikan perintah, seperti yang terlihat 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 pertanyaan satu per satu, dan buat perintah tetap ringkas. Untuk perintah dengan lebih dari satu pertanyaan, Anda dapat mengelompokkan setiap bagian pertanyaan yang berbeda untuk meningkatkan kejelasan, seperti yang terlihat pada 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 utama dalam perintah dan memberi label persyaratan tertentu sebagai penting, seperti yang terlihat 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, Anda dapat menyusun perintah dalam daftar, dengan item yang tercantum dibagi menjadi langkah-langkah kecil yang terfokus, seperti yang terlihat 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 menggunakan 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).

Praktik terbaik dengan file instruksi agen

Buat file instruksi agen untuk menyesuaikan Agen Data Engineering agar sesuai dengan kebutuhan Anda. Saat menggunakan petunjuk agen, sebaiknya lakukan hal berikut:

  • Semua jalur file di Dataform bersifat relatif terhadap root repositori. Gunakan jalur relatif untuk sintaksis @file.md guna mengimpor petunjuk dengan benar ke GEMINI.md.
  • File yang diimpor dalam GEMINI.md itu sendiri dapat berisi impor, yang dapat membuat struktur bertingkat. Untuk mencegah rekursi tak terbatas, GEMINI.md memiliki kedalaman impor maksimum sebanyak 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.
  • Menggunakan heading dan daftar dalam file petunjuk agen dapat membantu mengatur dan memperjelas petunjuk untuk Agen Rekayasa Data.
  • Beri nama file yang bermakna dan kelompokkan petunjuk yang serupa dalam satu file. Atur aturan secara logis menurut kategori, fitur, atau fungsi menggunakan 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