Data Engineering Agent consente di creare, modificare e risolvere i problemi delle pipeline di dati in BigQuery utilizzando prompt in linguaggio naturale. Data Engineering Agent offre le seguenti funzionalità per semplificare i flussi di lavoro di data engineering per l'inserimento dei dati in BigQuery:
- Integrazione di Dataform: l'agente genera e organizza il codice della pipeline di dati direttamente all'interno dei repository e degli spazi di lavoro Dataform
- Generazione del piano: l'agente può riassumere il suo ragionamento e generare un piano che ti consente di esaminare e verificare il piano dell'agente prima di procedere
- Convalida del codice: l'agente convalida e corregge automaticamente gli errori di compilazione di qualsiasi codice generato per garantire che la pipeline di dati sia funzionale
- Data wrangling automatico: l'agente esegue il data wrangling e trasforma i dati non elaborati in tabelle strutturate senza intervento manuale.
- Istruzioni personalizzate: l'agente supporta istruzioni personalizzate che consentono di definire regole specifiche e linee guida riutilizzabili in linguaggio naturale
- Contesto esterno: l'agente è integrato con Knowledge Catalog per un contesto aggiuntivo
- Controllo della pipeline: puoi esaminare e personalizzare i piani dell'agente generati prima dell'esecuzione di qualsiasi azione.
- Ottimizzazione: l'agente può ottimizzare il rendimento della pipeline di dati
- Risoluzione dei problemi e riparazione: l'agente può risolvere i problemi relativi agli errori della pipeline e correggere il codice.
- Consigli interattivi: l'agente fornisce consigli interattivi e sensibili al contesto all'inizio e durante la sessione.
Dove puoi utilizzare Data Engineering Agent
Puoi utilizzare Data Engineering Agent con i seguenti metodi:
- Crea pipeline di dati dall'interfaccia delle pipeline di BigQuery o in Dataform.
- Installa l'estensione Google Cloud Data Agent Kit in Visual Studio Code per creare pipeline di dati dall'ambiente di sviluppo integrato (IDE).
- Utilizza l'API Data Engineering Agent.
In che modo Data Engineering Agent utilizza i tuoi dati
Per produrre risposte dell'agente di qualità superiore, Data Engineering Agent può recuperare dati e metadati aggiuntivi da BigQuery e Knowledge Catalog, incluse righe di esempio dalle tabelle BigQuery e profili di scansione dei dati generati in Knowledge Catalog. L'agente non utilizza questi dati per l'addestramento, ma solo come contesto aggiuntivo durante le conversazioni con l'agente per informare le risposte.
Dove Data Engineering Agent tratta i tuoi dati
Per ulteriori informazioni sulle località in cui Data Engineering Agent tratta i tuoi dati, vedi Dove Gemini in BigQuery tratta i tuoi dati.
Limitazioni
Data Engineering Agent presenta le seguenti limitazioni:
- Data Engineering Agent non supporta i comandi in linguaggio naturale per i seguenti tipi di file:
- Notebooks
- Preparazione dei dati
- Data Engineering Agent non può eseguire pipeline. Devi esaminare ed eseguire o pianificare le pipeline.
- Data Engineering Agent 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. - Data Engineering Agent è soggetto alle limitazioni generali della tecnologia AI.
- Quando crei pipeline su tabelle esterne Apache Iceberg gestite dal catalogo di runtime Lakehouse (in precedenza metastore BigLake), si applicano tutte le limitazioni del catalogo di runtime Lakehouse. In particolare, l'agente non può generare mutazioni di scrittura (come
INSERT,UPDATE,DELETEoMERGE) o istruzioni DDL (comeCREATE TABLEoDROP TABLE) nelle tabelle Iceberg. Per ulteriori informazioni, vedi Concetti relativi all'endpoint del catalogo REST Apache Iceberg.
Funzionalità e personalizzazioni dell'agente
Le seguenti sezioni descrivono funzionalità aggiuntive dell'agente e altri metodi per personalizzare Data Engineering Agent.
Istruzioni agente
Le istruzioni dell'agente sono istruzioni in linguaggio naturale per Data Engineering Agent che 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.
Per creare istruzioni dell'agente per Data Engineering Agent, crea un
GEMINI.MD file
di contesto
come file di istruzioni dell'agente.
Best practice per i file di istruzioni dell'agente
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 contenere a loro volta 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.
- Per garantire la coerenza del progetto, puoi collegarti ai file delle convenzioni di denominazione o alle guide di stile e chiedere all'agente di seguire queste linee guida quando lavori con le pipeline di dati.
- Puoi suggerire livelli di dati nel file di istruzioni per raggruppare diversi tipi di dati.
- L'utilizzo di intestazioni ed elenchi nel file di istruzioni dell'agente può aiutarti a organizzare e chiarire le istruzioni per Data Engineering Agent.
- Fornisci nomi file significativi e raggruppa le istruzioni simili in un file. Organizza le regole in modo logico per categoria, funzionalità o funzionalità con 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 dell'agente cambia nel tempo con i rollout dell'agente e gli upgrade del modello, pertanto ti consigliamo di eseguire iterazioni sulle regole con prompt diversi per identificare le aree che potrebbero richiedere miglioramenti. Mantieni il file delle regole sincronizzato 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 un utilizzo efficace di Data Engineering Agent:
### 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
Importa altri file locali come istruzioni dell'agente
Puoi anche importare altri file di istruzioni per Data Engineering Agent nel file GEMINI.md con la sintassi @file.md. Per ulteriori informazioni, vedi Processore di importazione in memoria.
Data wrangling automatico
Puoi utilizzare Data Engineering Agent per trasformare i dati non elaborati in tabelle strutturate adatte all'analisi dei dati. Quando richiesto, l'agente campiona innanzitutto fino a 1.000.000 di record da ogni tabella standard o esterna. L'agente esegue quindi un'analisi approfondita dei dati eseguendo query di profilazione su questo campione. Dopo aver generato le trasformazioni dei dati, l'agente ripete questo processo di campionamento e profilazione per valutare la qualità delle trasformazioni. Queste trasformazioni di data wrangling potrebbero includere la correzione di incongruenze, outlier o mancate corrispondenze di tipo dei dati. Data Engineering Agent crea quindi un piano che delinea i passaggi di wrangling proposti da esaminare e perfezionare prima di qualsiasi azione.
Data Engineering Agent avvia anche l'analisi di data wrangling ogni volta che aggiungi una tabella non elaborata, ad esempio una tabella esterna basata su CSV. Puoi esaminare il piano di data wrangling e modificarlo con i comandi conversazionali.
Il campionamento dei dati e la profilazione utilizzano le risorse BigQuery e sono soggetti a prezzi BigQuery.
Data Engineering Agent supporta le seguenti trasformazioni di data wrangling:
- Pulizia dei dati. L'agente può analizzare i dati non elaborati e suggerire opportunità di pulizia, ad esempio rimuovere gli outlier, compilare valori mancanti o incoerenti (imputazione dei dati), correggere i dati duplicati o standardizzare i formati dei dati, ad esempio numeri di telefono o indirizzi
- Trasformazioni strutturali. Quando viene fornito uno schema di destinazione, l'agente può annidare o estrarre valori dai tipi
JSON,ARRAYoSTRUCT; unire più colonne in una o dividere una colonna in più colonne - Rilevamento e conversione del tipo di dati. L'agente può analizzare i dati per determinare i tipi di campi appropriati. L'agente può quindi eseguire il casting di tipo sicuro per risolvere eventuali incongruenze di formattazione all'interno dei campi di data, ora, data/ora o timestamp.
- Conversioni di unità di misura. L'agente può convertire automaticamente varie unità all'interno di un campo in un'unità coerente per standardizzare i dati.
Per garantire l'accuratezza, l'agente utilizza campioni rappresentativi dei dati per rilevare i problemi e convalidare la logica di trasformazione.
Genera ed esamina i piani dell'agente
Data Engineering Agent può generare piani dell'agente che forniscono un riepilogo e una panoramica degli obiettivi e dei passaggi necessari per completare una richiesta. Quando richiedi all'agente richieste complesse che richiedono molte modifiche, ti consigliamo di chiedere all'agente di fornirti un piano dell'agente in modo da poter esaminare le intenzioni dell'agente prima che intraprenda qualsiasi azione. Un piano di Data Engineering Agent in genere è costituito da:
- L'obiettivo dell'agente per una determinata richiesta
- Una panoramica di alto livello dei passaggi che l'agente prevede di eseguire
- Eventuali ipotesi formulate dall'agente
- File che l'agente prevede di modificare
- Eventuali passaggi di ottimizzazione o pulizia che prevede di eseguire
- Un piano di esecuzione graduale
Nel prompt puoi includere la necessità di esaminare e approvare il piano in modo che l'agente non intraprenda alcuna azione senza la tua approvazione esplicita. Ad esempio:
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.
L'agente potrebbe anche generare automaticamente un piano dell'agente e richiedere la tua approvazione. Questo risultato può verificarsi quando un prompt è troppo ambiguo o se l'agente ha bisogno di maggiore chiarezza per soddisfare la tua richiesta.
Per le best practice sull'utilizzo dei piani dell'agente, vedi Best practice.
Aggiungi contesto da Knowledge Catalog
Data Engineering Agent utilizza Knowledge Catalog collegando i termini del glossario alle tabelle e alle colonne BigQuery e generando scansioni dei profili dei dati. I termini del glossario possono 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 tra le tabelle.
Knowledge Catalog utilizza anche la profilazione dei dati, che fornisce all'agente una migliore comprensione della distribuzione dei dati all'interno delle colonne della tabella e lo aiuta a creare asserzioni di qualità dei dati più specifiche.
L'agente può anche utilizzare Knowledge Catalog per scoprire ed eseguire query sulle tabelle Apache Iceberg. Per ulteriori informazioni, vedi Creare pipeline su tabelle Apache Iceberg.
Aggiungi controlli di qualità dei dati a una tabella esistente
Quando chiedi all'agente di aggiungere controlli di qualità, l'agente deduce controlli ragionevoli per la tabella in base allo schema e ai campioni. Puoi anche aggiungere asserzioni di opinione come parte del prompt. Ad esempio:
Add data quality checks for bigquery-public-data.thelook_ecommerce.users.
Ottimizza le pipeline di dati
Puoi chiedere all'agente di ottimizzare le pipeline di dati. Quando genera DDL per le nuove tabelle, Data Engineering Agent consiglia il partizionamento e il clustering in base ai pattern di utilizzo dei dati analizzati. Inoltre, l'agente può applicare automaticamente altre ottimizzazioni della pipeline. Ecco alcuni esempi di possibili ottimizzazioni:
- Eliminazione delle colonne per ridurre i dati letti dallo spazio di archiviazione e fungere da driver principale di costi e rendimento.
- Pushdown dei predicati per filtrare i dati all'inizio del piano di esecuzione per ridurre significativamente il volume elaborato dalle operazioni successive.
- Eliminazione delle sottoespressioni comuni per migliorare l'efficienza identificando e calcolando la logica di trasformazione condivisa una sola volta, evitando pratiche inefficienti come la scansione e l'unione di tabelle di grandi dimensioni più volte.
- Modelli incrementali per elaborare solo i dati nuovi o modificati dall'ultima esecuzione anziché ricompilare intere tabelle a ogni esecuzione.
Crea pipeline su tabelle Apache Iceberg
Data Engineering Agent supporta la generazione e la compilazione di pipeline Dataform su tabelle Apache Iceberg gestite dal catalogo di runtime Lakehouse (in precedenza metastore BigLake). Questa funzionalità ti consente di eseguire query e unire direttamente le tabelle in formato open source regionali (archiviate in Cloud Storage) insieme alle tabelle BigQuery. Per ulteriori informazioni, vedi Concetti relativi all'endpoint del catalogo REST Apache Iceberg.
Ad esempio, puoi chiedere all'agente di eseguire una query su una tabella Apache Iceberg nel catalogo di runtime Lakehouse:
Include the stackoverflow_post_history_iceberg table in this pipeline.
Nei prompt non è necessario specificare percorsi in quattro parti completi, ad esempio project.catalog.dataset.table. Puoi fare riferimento alle tabelle Apache Iceberg utilizzando nomi in linguaggio naturale standard o identificatori logici, ad esempio the StackOverflow post history table o post_history. L'agente richiama automaticamente le ricerche nel catalogo semantico utilizzando Knowledge Catalog per risolvere e associare le tabelle Apache Iceberg corrette allo spazio di lavoro della pipeline.
Per utilizzare questa funzionalità, il repository Dataform deve utilizzare Dataform Core versione 3.0.33 o successive.
Consigli interattivi
Data Engineering Agent analizza lo stato di compilazione dello spazio di lavoro, la cronologia di esecuzione e lo stato della conversazione attiva per fornire consigli strategici direttamente nell'interfaccia di chat. Questi suggerimenti vengono visualizzati automaticamente quando apri uno spazio di lavoro e durante la sessione per fornire consigli su configurazione, risoluzione dei problemi e ottimizzazioni per guidare il flusso di lavoro.
Per utilizzare un consiglio, fai clic su uno dei suggerimenti in Consigli AI, che carica il prompt nella barra di input della chat, che puoi modificare o personalizzare prima di inviarlo all'agente. Puoi anche passare il mouse sopra un suggerimento per visualizzare il prompt esatto.
Best practice
Per migliorare i risultati quando lavori con Data Engineering Agent e Dataform, ti consigliamo di:
Utilizzare 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.
Utilizzare i piani dell'agente. I piani dell'agente possono essere utili per suddividere le attività complesse della pipeline. I piani dell'agente possono anche mostrare le ipotesi e le intenzioni dell'agente, pertanto ti consigliamo di esaminarli per assicurarti che all'agente venga fornito il contesto corretto.
Dopo aver esaminato un piano, puoi modificarlo chiedendo a Data Engineering Agent di fornire feedback e modifiche. Ad esempio:
In the plan, ensure that all of the intermediate tables are views.
In alcuni casi, può essere utile chiedere all'agente di generare un piano che non richieda la tua approvazione esplicita. L'atto di creare il piano dell'agente costringe Data Engineering Agent a suddividere le sue azioni, il che spesso porta a risultati migliori. Puoi forzare l'agente a generare un piano ed eseguirlo automaticamente. Ad esempio:
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.
Scrivi in modo chiaro. Indica chiaramente la tua richiesta ed evita di essere vago. Se possibile, fornisci le origini dati di origine e di destinazione quando richiedi, 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 definito. Fai una domanda alla volta e mantieni i prompt concisi. Per i prompt con più di una domanda, elenca 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, struttura il prompt negli 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 con 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).