Utilizzare l'agente di data engineering per creare e modificare pipeline di dati
L'agente di data engineering ti consente di utilizzare Gemini in BigQuery per creare, modificare e gestire pipeline di dati per caricare ed elaborare i dati in BigQuery. Con l'agente di data engineering, puoi utilizzare prompt in linguaggio naturale per generare pipeline di dati da varie origini dati o adattare le pipeline di dati esistenti in base alle tue esigenze di data engineering. L'agente di data engineering ha le seguenti funzionalità:
Linguaggio naturale per la creazione di pipeline: l'agente utilizza Gemini per comprendere i tuoi dati e interpretare le istruzioni in linguaggio semplice. Puoi utilizzare istruzioni in linguaggio semplice per chiedere all'agente di data engineering di creare o modificare le pipeline di dati.
Integrazione di Dataform: l'agente genera e organizza il codice della pipeline necessario in file SQLX all'interno di un repository Dataform. L'agente opera nell'area di lavoro Dataform, quindi le pipeline Dataform sono disponibili automaticamente per l'agente.
Istruzioni personalizzate per l'agente: crea istruzioni per l'agente in linguaggio semplice per definire regole personalizzate per l'agente di data engineering. Le istruzioni dell'agente sono persistenti in tutta l'organizzazione e possono essere utili per applicare regole a livello di organizzazione, come convenzioni di denominazione o guide di stile.
Convalida della pipeline: l'agente convalida il codice generato per assicurarsi che le pipeline di dati siano funzionali.
Puoi utilizzare prompt in linguaggio naturale con l'agente di data engineering per creare file SQLX di tabelle, viste, asserzioni, dichiarazioni e operazioni. Ad esempio, puoi utilizzare l'agente di data engineering per:
- Caricare dati da origini dati esterne come Cloud Storage in vari formati, ad esempio CSV, AVRO o PARQUET.
- Creare o utilizzare routine BigQuery esistenti (funzioni definite dall'utente) per eseguire analisi e trasformazioni personalizzate sui dati.
- Definire linee guida riutilizzabili per l'agente in linguaggio naturale.
Per altri esempi di prompt che puoi utilizzare con l'agente di data engineering, consulta Prompt di esempio.
Limitazioni
L'agente di data engineering presenta le seguenti limitazioni:
- L'agente di data engineering è un'offerta pre-GA e non è destinato all'uso in produzione.
- L'agente di data engineering non supporta i comandi in linguaggio naturale per i seguenti tipi di file:
- Notebooks
- Preparazione dei dati
- JavaScript all'interno di qualsiasi SQLx
- L'agente di data engineering non può eseguire pipeline. Gli utenti devono esaminare ed eseguire o pianificare le pipeline.
- L'agente di data engineering non può convalidare SQL che dipende da risorse intermedie inesistenti senza l'invocazione completa della pipeline (attivata dall'utente).
- L'agente di data engineering non può cercare link web o URL forniti tramite istruzioni o prompt diretti.
- Quando importi file in un file
di istruzioni dell'agente, la sintassi di importazione
@supporta solo i percorsi che iniziano con./,/o una lettera. - La funzionalità di anteprima dei dati è supportata solo per
tabelle, dichiarazioni o query con il flag
hasOutputimpostato sutrue.
Aree geografiche supportate
Gemini in BigQuery viene fornito dalle seguenti regioni:
Americhe
- Iowa (
us-central1)
Europa
- Finlandia (
europe-north1) - Francoforte (
europe-west3)
Modificare la regione di trattamento
Puoi modificare la regione di trattamento per l'agente di data engineering utilizzando una delle seguenti opzioni:
Pipeline BigQuery
Se utilizzi le pipeline BigQuery, puoi aggiornare la regione di trattamento impostando la regione predefinita per gli asset di codice. Per saperne di più, consulta Impostare la regione predefinita per gli asset di codice.
Se la regione predefinita non è impostata, l'agente di data engineering tratta i dati a livello globale.
Dataform
Se utilizzi Dataform, puoi aggiornare la regione di elaborazione modificando il valore defaultLocation nel file delle impostazioni del workflow Dataform o workflow_settings.yaml. Per saperne di più, consulta
Configurare le impostazioni del flusso di lavoro Dataform.
Se il valore defaultLocation non è impostato, l'agente di data engineering tratta i dati a livello globale.
In che modo l'agente di data engineering utilizza i tuoi dati
Per produrre risposte di qualità superiore, l'agente di data engineering può recuperare dati e metadati aggiuntivi da BigQuery e Dataplex Universal Catalog, incluse righe di esempio dalle tabelle BigQuery e profili di scansione dei dati generati in Dataplex Universal Catalog. Questi dati non vengono utilizzati per addestrare l'agente di data engineering e vengono utilizzati solo durante le conversazioni dell'agente come contesto aggiuntivo per informare le risposte dell'agente.
Prima di iniziare
Assicurati che Gemini in BigQuery sia abilitato per il tuo Google Cloud progetto. Per saperne di più, consulta Configurare Gemini in BigQuery.
Devi anche abilitare l'API Gemini Data Analytics.
Ruoli necessari per abilitare le API
Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo servizi (roles/serviceusage.serviceUsageAdmin), che
contiene l'autorizzazione serviceusage.services.enable. Scopri come concedere
i ruoli.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per utilizzare l'agente di data engineering, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:
-
Editor di codice Dataform (
roles/dataform.codeEditor) -
Utente job BigQuery (
roles/bigquery.jobuser)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Generare una pipeline di dati con l'agente di data engineering
Per utilizzare l'agente di data engineering in BigQuery, seleziona una delle seguenti opzioni:
Pipeline BigQuery
Puoi utilizzare l'agente di data engineering nell'interfaccia delle pipeline BigQuery procedendo nel seguente modo:
Vai alla pagina BigQuery.
Nell'editor di query, fai clic su arrow_drop_down Crea nuovo > Pipeline.
Seleziona un'opzione per le credenziali di esecuzione e fai clic su Inizia. Queste credenziali non vengono utilizzate dall'agente, ma sono necessarie per eseguire la pipeline di dati generata.
Fai clic su Prova l'esperienza dell'agente per la pipeline di dati.
Nel campo Chiedi all'agente, inserisci un prompt in linguaggio naturale per generare una pipeline di dati. Ad esempio:
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.Dopo aver inserito un prompt, fai clic su Invia.
L'agente di data engineering genera una pipeline di dati in base al prompt.
La pipeline di dati generata dall'agente di data engineering è una bozza proposta di una pipeline di dati. Puoi fare clic su un nodo della pipeline per esaminare la query SQLX generata. Per applicare la pipeline di dati suggerita dall'agente, fai clic su Applica.
Dataform
Puoi utilizzare l'agente di data engineering in Dataform procedendo nel seguente modo:
Vai alla pagina Dataform.
Seleziona un repository.
Seleziona o crea un'area di lavoro di sviluppo.
Nell'area di lavoro, fai clic su Chiedi all'agente.
Nel prompt Chiedi all'agente visualizzato, inserisci un prompt in linguaggio naturale per generare una pipeline di dati. Ad esempio:
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.Dopo aver inserito un prompt, fai clic su Invia.
Una volta inviato il prompt, l'agente di data engineering genera una pipeline di dati e modifica i file SQLX di Dataform in base al prompt. L'agente applica queste modifiche direttamente ai file dell'area di lavoro.
Esaminare una pipeline di dati
In una pipeline di dati generata dall'agente di data engineering, puoi fare clic su un nodo della pipeline per esaminarlo.
- La scheda Configurazione mostra la query SQLX generata associata al nodo.
- La scheda Anteprima dati mostra la tabella di input e output del file. Puoi visualizzare un'anteprima della trasformazione dei dati tramite questo nodo facendo clic su Esegui attività per eseguire l'attività con o senza dipendenze.
Modificare una pipeline di dati
Puoi modificare la pipeline di dati utilizzando l'agente di data engineering facendo clic su Chiedi all'agente e inserendo un prompt che suggerisce una modifica alla pipeline di dati.
Esamina le modifiche proposte dall'agente di data engineering, quindi fai clic su Applica per applicarle.
Puoi anche modificare manualmente una query SQLX selezionando un nodo della pipeline e poi facendo clic su Apri.
Creare istruzioni per l'agente di data engineering
Le istruzioni dell'agente sono istruzioni in linguaggio naturale per l'agente di data engineering che ti consentono di archiviare istruzioni persistenti in modo che l'agente segua un insieme di regole personalizzate e predefinite. Utilizza le istruzioni dell'agente se vuoi che i risultati dell'agente siano coerenti in tutta l'organizzazione, ad esempio con le convenzioni di denominazione o per applicare una guida di stile.
Puoi creare un file di contesto GEMINI.MD
come file di istruzioni dell'agente per l'agente di data engineering. Puoi creare file di istruzioni dell'agente da utilizzare nel tuo workspace locale oppure puoi utilizzare gli stessi file di istruzioni in più pipeline di dati utilizzando un repository esterno.
Per creare istruzioni dell'agente:
- In Chiedi all'agente, fai clic su Istruzioni della pipeline.
- Nel riquadro Istruzioni per la pipeline, fai clic su Crea file di istruzioni.
Nel file
GEMINI.MDvisualizzato, inserisci le istruzioni in linguaggio naturale.L'esempio seguente mostra un file di istruzioni dell'agente con diverse regole:
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.Fai clic su Salva.
Per informazioni su come strutturare al meglio i file di istruzioni dell'agente, consulta Best practice per i file di istruzioni dell'agente.
Caricare le istruzioni dell'agente da un repository esterno
Puoi specificare un insieme di istruzioni dell'agente da riutilizzare in più pipeline di dati collegando un repository esterno:
- In Chiedi all'agente, fai clic su Istruzioni della pipeline.
- In Repository esterno, seleziona Usa le istruzioni del repository esterno.
- Nei campi forniti, specifica un repository che contiene le istruzioni dell'agente che vuoi utilizzare con la pipeline di dati.
- Fai clic su Salva.
Importare altri file locali come istruzioni dell'agente
Puoi anche importare altri file di istruzioni per l'agente di data engineering nel file GEMINI.md utilizzando la sintassi @file.md. Per saperne di più, consulta Processore di importazione della memoria.
Risolvere i problemi relativi agli errori della pipeline di dati
Se riscontri errori durante la generazione della pipeline di dati, verifica di aver completato tutti i prerequisiti necessari per eseguire l'agente di data engineering. Per saperne di più, consulta Prima di iniziare.
Se la pipeline di dati generata riscontra errori, puoi chiedere all'agente di data engineering di diagnosticare eventuali errori della pipeline di dati e proporre consigli per la risoluzione dei problemi seguendo questi passaggi:
- Nella pipeline o nell'area di lavoro di sviluppo, fai clic sulla scheda Esecuzioni.
Nell'elenco delle esecuzioni, trova l'esecuzione della pipeline di dati non riuscita. Puoi identificare le esecuzioni non riuscite nella colonna Stato dell'esecuzione.
Passa il mouse sopra l'icona, quindi fai clic su Analizza. L'agente di data engineering esegue un'analisi sull'esecuzione della pipeline di dati per rilevare eventuali errori.
Al termine dell'analisi, l'agente di data engineering genera un report nella sezione Osservazioni e ipotesi. Questo report include:
- Osservazioni e punti dati estratti dai log di esecuzione della pipeline di dati
- Cause probabili dell'errore
- Un insieme di passaggi o consigli pratici per risolvere il problema identificato
Con il report di risoluzione dei problemi dell'agente di data engineering, puoi implementare manualmente i consigli. Puoi anche chiedere all'agente di data engineering di applicare la correzione seguendo questi passaggi:
- Copia i suggerimenti nel report di risoluzione dei problemi.
- Torna all'agente di data engineering:
- Se utilizzi le pipeline BigQuery, vai alla pagina delle pipeline e poi fai clic su Chiedi all'agente.
- Se utilizzi Dataform, fai clic su Chiedi all'agente.
- Incolla i suggerimenti nel prompt e chiedi all'agente di data engineering di apportare le correzioni direttamente alla pipeline di dati.
- Fai clic su Invia.
Prompt di esempio
Le sezioni seguenti mostrano alcuni prompt di esempio che puoi utilizzare con l'agente di data engineering per sviluppare la pipeline di dati.
Aggregare i dati esistenti in una nuova tabella
Con questo prompt, l'agente di data engineering utilizza lo schema e gli esempi per dedurre il raggruppamento dei dati per chiave. In genere, l'agente configura una nuova tabella con descrizioni di tabelle e colonne.
Create a daily sales report from the
bigquery-public-data.thelook_ecommerce.order_items table into a
reporting.daily_sales_aggregation table.
Aggiungere controlli di qualità dei dati a una tabella esistente
Con questo prompt, l'agente deduce controlli di qualità ragionevoli per la tabella in base allo schema e agli esempi. Puoi anche aggiungere alcune asserzioni di opinione come parte del prompt.
Add data quality checks for bigquery-public-data.thelook_ecommerce.users.
Creare una nuova colonna derivata e aggiungere controlli di qualità dei dati alla nuova tabella
Il seguente prompt mostra come aggiungere una tabella e una colonna e specificare contemporaneamente i controlli di qualità per la tabella.
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'.
Creare funzioni definite dall'utente come parte della definizione del modello
L'agente di data engineering può anche configurare il DDL per creare funzioni definite dall'utente. Anche se l'agente non creerà effettivamente la funzione definita dall'utente, puoi crearla eseguendo la pipeline di dati. Queste funzioni definite dall'utente possono essere utilizzate nelle definizioni dei modelli nella pipeline di dati.
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.
Best practice
Le sezioni seguenti suggeriscono le best practice per lavorare con l'agente di data engineering e Dataform.
Best practice con l'agente di data engineering
Utilizza le istruzioni dell'agente per le richieste comuni. Se applichi spesso determinate tecniche o se apporti spesso le stesse correzioni all'agente, utilizza le istruzioni dell'agente come posizione centralizzata per archiviare istruzioni e richieste comuni.
Fornisci all'agente più contesto. Puoi fornire all'agente un contesto aggiuntivo da Dataplex Universal Catalog collegando i termini del glossario a tabelle e colonne BigQuery e generando scansioni del profilo dei dati. I termini del glossario possono essere utilizzati per taggare le colonne che richiedono un contesto aggiuntivo, ad esempio le colonne contenenti informazioni che consentono l'identificazione personale (PII) che richiedono istruzioni di gestione speciali, o per identificare le colonne corrispondenti con nomi diversi nelle tabelle. Le scansioni del profilo dei dati forniscono all'agente una migliore comprensione della distribuzione dei dati all'interno delle colonne di una tabella e possono aiutarlo a creare asserzioni di qualità dei dati più specifiche. Per saperne di più, consulta Informazioni sulla profilazione dei dati.
Scrivi con chiarezza. Indica chiaramente la tua richiesta ed evita di essere vago. Se possibile, fornisci le origini dati di origine e di destinazione quando inserisci un prompt, come mostrato nell'esempio seguente:
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.
Fornisci richieste dirette e con ambito specifico. Fai una domanda alla volta e mantieni i prompt concisi. Per i prompt con più di una domanda, puoi elencare ogni parte distinta della domanda per migliorare la chiarezza, come mostrato nell'esempio seguente:
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).
Fornisci istruzioni esplicite ed enfatizza i termini chiave. Puoi aggiungere enfasi ai termini o ai concetti chiave nei prompt ed etichettare determinati requisiti come importanti, come mostrato nell'esempio seguente:
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 ''.
Specifica l'ordine delle operazioni. Per le attività ordinate, puoi strutturare il prompt in elenchi, in cui gli elementi elencati sono suddivisi in passaggi piccoli e mirati, come mostrato nell'esempio seguente:
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.
Perfeziona ed esegui l'iterazione. Continua a provare frasi e approcci diversi per vedere quali producono i risultati migliori. Se l'agente genera SQL non valido o altri errori, guidalo utilizzando esempi o documentazione pubblica.
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).
Best practice per i file di istruzioni dell'agente
Crea file di istruzioni dell'agente per personalizzare l'agente di data engineering in base alle tue esigenze. Quando utilizzi le istruzioni dell'agente, ti consigliamo di:
- Tutti i percorsi dei file in Dataform sono relativi alla radice del repository. Utilizza i percorsi relativi per qualsiasi sintassi
@file.mdper importare correttamente le istruzioni inGEMINI.md. - I file importati in
GEMINI.mdpossono a loro volta contenere importazioni, che possono creare una struttura nidificata. Per evitare la ricorsione infinita,GEMINI.mdha una profondità di importazione massima di cinque livelli. - Per condividere le istruzioni tra le pipeline di dati, archiviale in un repository Dataform centrale e collegale al repository Dataform di lavoro. Puoi utilizzare le istruzioni locali per sostituire le regole centrali per un comportamento specifico della pipeline.
- L'utilizzo di intestazioni ed elenchi nel file di istruzioni dell'agente può aiutarti a organizzare e chiarire le istruzioni per l'agente di data engineering.
- Assegna nomi di file significativi e raggruppa le istruzioni simili in un file. Organizza le regole in modo logico per categoria, funzionalità o funzionalità utilizzando le intestazioni Markdown.
- Per evitare istruzioni in conflitto, definisci chiaramente le condizioni specifiche in cui si applica ogni istruzione.
- Esegui l'iterazione e perfeziona i prompt e il flusso di lavoro. Il comportamento dell'agente cambia nel tempo con i rollout dell'agente e gli upgrade del modello, pertanto ti consigliamo di eseguire l'iterazione delle regole con prompt diversi per identificare le aree che potrebbero richiedere miglioramenti. Mantieni il file delle regole sincronizzato con eventuali modifiche alla pipeline di dati.
L'esempio seguente mostra un file di istruzioni dell'agente denominato GEMINI.md che utilizza le nostre best practice per un utilizzo efficace dell'agente di data engineering:
### 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