Utilizza Data Engineering Agent per creare e modificare pipeline di dati
Data Engineering Agent 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 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 tue istruzioni in linguaggio semplice. Puoi utilizzare istruzioni in linguaggio naturale 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 nello spazio di lavoro Dataform, quindi le pipeline Dataform sono disponibili automaticamente per l'agente.
Istruzioni per l'agente personalizzato: crea istruzioni per l'agente in linguaggio naturale 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 garantire che le pipeline di dati siano funzionali.
Puoi utilizzare prompt in linguaggio naturale con l'agente Data Engineering per creare file SQLX di tabelle, viste, asserzioni, dichiarazioni e operazioni. Ad esempio, puoi utilizzare l'agente di Data Engineering per:
- Carica i dati da origini dati esterne come Cloud Storage in vari formati, ad esempio CSV, AVRO o PARQUET.
- Crea o utilizza routine BigQuery (UDF) esistenti per eseguire analisi e trasformazioni personalizzate sui tuoi dati.
- Definisci linee guida riutilizzabili per l'agente in linguaggio naturale.
Per altri esempi di prompt che puoi utilizzare con l'agente di Data Engineering, consulta Esempi di prompt.
Limitazioni
L'agente Data Engineering presenta le seguenti limitazioni:
- Data Engineering Agent è un'offerta pre-GA e non è destinata all'uso in produzione.
- Data Engineering Agent non supporta i comandi in linguaggio naturale per i seguenti tipi di file:
- Notebook
- Preparazione dei dati
- JavaScript in qualsiasi SQLx
- L'agente Data Engineering non può eseguire pipeline. Gli utenti devono esaminare ed eseguire o programmare le pipeline.
- L'agente Data Engineering non può convalidare SQL che dipende da risorse intermedie inesistenti senza l'invocazione completa della pipeline (attivata dall'utente).
- L'agente 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à Anteprima dei dati è supportata solo per
tabelle, dichiarazioni o query con il flag
hasOutputimpostato sutrue.
Aree geografiche supportate
Gemini in BigQuery utilizza Google Cloud per il bilanciamento del carico, quindi opera a livello globale. Poiché Gemini in BigQuery opera a livello globale, non puoi scegliere la regione da utilizzare.
Tutte le richieste Dataform e BigQuery vengono inviate ai rispettivi endpoint regionali, quindi tutti i dati e il codice rimangono all'interno della regione.
Gemini in BigQuery viene pubblicato dalle seguenti regioni:
Americhe
- Iowa (
us-central1)
Europa
- Finlandia (
europe-north1) - Francoforte (
europe-west3)
In che modo l'agente Data Engineering utilizza i tuoi dati
Per produrre risposte dell'agente 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 ingegneria dei dati e vengono utilizzati solo durante le conversazioni con l'agente come contesto aggiuntivo per informare le risposte dell'agente.
Prima di iniziare
Assicurati che Gemini in BigQuery sia abilitato per il tuo progetto Google Cloud . Per ulteriori informazioni, vedi Configurare Gemini in BigQuery.
Devi anche abilitare l'API Gemini Data Analytics.
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.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per utilizzare Data Engineering Agent, chiedi all'amministratore di concederti i seguenti ruoli IAM sul 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.
Genera 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 nel seguente modo:
Vai alla pagina BigQuery.
Nell'editor di query, fai clic sulla 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 Data Engineering Agent in Dataform nel seguente modo:
Vai alla pagina Dataform.
Seleziona un repository.
Seleziona o crea un workspace 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 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 del tuo spazio 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 Data Engineering Agent facendo clic su Chiedi all'agente e inserendo un prompt che suggerisca 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.
Crea istruzioni per l'agente 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 memorizzare istruzioni permanenti in modo che l'agente segua un insieme di regole personalizzate 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 nello spazio di lavoro locale oppure puoi utilizzare gli stessi
file di istruzioni in più pipeline di dati utilizzando un repository esterno.
Crea le istruzioni dell'agente nel seguente modo:
- Nella sezione 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.Il seguente esempio 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:
- Nella sezione 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 contenente le istruzioni dell'agente che vuoi utilizzare con la pipeline di dati.
- Fai clic su Salva.
Importare file locali aggiuntivi 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 gli errori della pipeline di dati
Se si verificano errori durante la generazione della pipeline di dati, verifica di aver soddisfatto tutti i prerequisiti necessari per eseguire l'agente Data Engineering. Per ulteriori informazioni, consulta Prima di iniziare.
Se la pipeline di dati generata rileva 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 Esamina. Data Engineering Agent esegue un'analisi dell'esecuzione della pipeline di dati per rilevare eventuali errori.
Una volta completata l'analisi, Data Engineering Agent genera un report nella sezione Osservazioni e ipotesi. Questo report include:
- Osservazioni e punti dati estratti dai log di esecuzione della pipeline di dati
- Probabili cause dell'errore
- Una serie di passaggi o consigli pratici per risolvere il problema identificato
Con il report per la risoluzione dei problemi dell'agente Data Engineering, puoi implementare i consigli manualmente. Puoi anche chiedere all'agente Data Engineering di applicare la correzione per te seguendo questi passaggi:
- Copia i suggerimenti nel report sulla risoluzione dei problemi.
- Torna all'agente di data engineering:
- Se utilizzi le pipeline BigQuery, vai alla pagina delle pipeline e 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 i campioni per dedurre il raggruppamento dei dati per chiave. L'agente in genere 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 della 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 ai campioni. Puoi anche aggiungere alcune asserzioni basate su opinioni come parte del prompt.
Add data quality checks for bigquery-public-data.thelook_ecommerce.users.
Crea una nuova colonna derivata e aggiungi controlli della qualità dei dati alla nuova tabella
Il seguente prompt mostra come aggiungere una tabella e una colonna e specificare i controlli di qualità alla tabella contemporaneamente.
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'.
Crea UDF come parte della definizione del modello
L'agente Data Engineering può anche configurare il DDL per creare funzioni definite dall'utente (UDF). Anche se l'agente non creerà effettivamente la UDF, 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 best practice per l'utilizzo di Data Engineering Agent e Dataform.
Best practice per l'utilizzo dell'agente Data Engineering
Utilizza le istruzioni per gli agenti per le richieste comuni. Se ci sono tecniche che applichi spesso o se apporti frequentemente 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 analisi dei profili 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 la sezione Informazioni sulla profilazione dei dati.
Scrivi in modo chiaro. Formula la tua richiesta in modo chiaro ed evita di essere vago. Se possibile, fornisci le origini dati di origine e di destinazione quando richiesto, 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 mirate. 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 nel seguente esempio:
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 evidenzia i termini chiave. Puoi mettere in evidenza termini o 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 nel seguente esempio:
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 cosa produce 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 Data Engineering Agent in base alle tue esigenze. Quando utilizzi le istruzioni per l'agente, ti consigliamo di procedere come segue:
- Tutti i percorsi dei file in Dataform sono relativi alla radice del
repository. Utilizza percorsi relativi per qualsiasi sintassi
@file.mdper importare correttamente le istruzioni inGEMINI.md. - I file importati in
GEMINI.mdpossono a loro volta contenere importazioni, il che può creare una struttura nidificata. Per evitare la ricorsione infinita,GEMINI.mdha una profondità massima di importazione di cinque livelli. - Per condividere le istruzioni tra le pipeline di dati, memorizzale in un repository Dataform centrale e collegale al repository Dataform di lavoro. Puoi utilizzare le istruzioni locali per ignorare le regole centrali per un comportamento specifico della pipeline.
- L'utilizzo di intestazioni ed elenchi nel file di istruzioni dell'agente può contribuire a organizzare e chiarire le istruzioni per l'agente di Data Engineering.
- Assegna nomi di file significativi e raggruppa istruzioni simili in un file. Organizza le regole in modo logico per categoria, funzionalità o caratteristica utilizzando le intestazioni Markdown.
- Per evitare istruzioni in conflitto, definisci chiaramente le condizioni specifiche in cui si applica ogni istruzione.
- Esegui iterazioni e perfeziona i prompt e il flusso di lavoro. Il comportamento degli agenti cambia nel tempo con i rollout degli agenti e gli upgrade dei modelli, pertanto ti consigliamo di iterare le regole con prompt diversi per identificare le aree che potrebbero richiedere miglioramenti. Mantieni sincronizzato il file di regole con le modifiche apportate alla pipeline di dati.
L'esempio seguente mostra un file di istruzioni dell'agente denominato GEMINI.md che
utilizza le nostre best practice per l'uso 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