Panoramica di Data Engineering Agent

L'agente Data Engineering ti consente di creare, modificare e risolvere i problemi delle pipeline di dati in BigQuery utilizzando prompt in linguaggio naturale. L'agente di data engineering offre le seguenti funzionalità per semplificare i flussi di lavoro di data engineering per l'importazione 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 di Dataform.
  • Generazione di piani: l'agente può riassumere il suo ragionamento e generare un piano che ti consente di esaminarlo e verificarlo 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 ti 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 degli agenti generati prima che vengano eseguite le azioni.
  • Ottimizzazione: l'agente può ottimizzare le prestazioni nella pipeline di dati.
  • Risoluzione dei problemi e riparazione: l'agente può risolvere i problemi relativi agli errori della pipeline e correggere il codice.
  • Suggerimenti interattivi: l'agente fornisce suggerimenti interattivi e sensibili al contesto all'inizio e durante la sessione.
  • Arricchimento dei metadati di Knowledge Catalog: l'agente può generare automaticamente i metadati di Knowledge Catalog dalle configurazioni delle tabelle e può inviarli a Knowledge Catalog durante l'esecuzione della pipeline.

Dove puoi utilizzare l'agente di data engineering

Puoi utilizzare l'agente di data engineering con i seguenti metodi:

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 per fornire risposte.

Dove il Data Engineering Agent elabora i tuoi dati

Per ulteriori informazioni sulle località in cui l'agente di data engineering elabora i tuoi dati, consulta Dove Gemini in BigQuery elabora 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:
    • Notebook
    • Preparazione dei dati
  • Il Data Engineering Agent non può eseguire pipeline. Devi esaminare ed eseguire o pianificare le pipeline.
  • Il Data Engineering Agent non può eseguire ricerche in 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 hasOutput impostato su true.
  • 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, DELETE o MERGE) o istruzioni DDL (come CREATE TABLE o DROP TABLE) sulle tabelle Iceberg. Per saperne di più, consulta Concetti relativi agli endpoint del catalogo REST Apache Iceberg.

Funzionalità e personalizzazioni degli agenti

Le sezioni seguenti descrivono funzionalità aggiuntive dell'agente e altri metodi per personalizzare Data Engineering Agent.

Istruzioni agente

Le istruzioni per l'agente sono istruzioni in linguaggio naturale per il Data Engineering Agent 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.

Per creare istruzioni per l'agente di data engineering, crea un file di contesto GEMINI.MD come file di istruzioni per l'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 percorsi relativi per qualsiasi sintassi @file.md per importare correttamente le istruzioni in GEMINI.md.
  • I file importati in GEMINI.md possono contenere a loro volta importazioni, che possono creare una struttura nidificata. Per evitare la ricorsione infinita, GEMINI.md ha 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 eseguire l'override delle regole centrali per il comportamento specifico della pipeline.
  • Per garantire la coerenza nel progetto, puoi collegare file di convenzioni di denominazione o guide di stile e indicare all'agente di seguire queste linee guida quando lavora 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ò aiutare a organizzare e chiarire le istruzioni per l'agente di data engineering.
  • Fornisci nomi file significativi e raggruppa istruzioni simili in un file. Organizza le regole in modo logico per categoria, caratteristica 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 workflow. Il comportamento dell'agente cambia nel tempo con i rollout degli agenti e gli upgrade dei modelli, 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 del 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 per l'agente

Puoi anche importare altri file di istruzioni per l'agente di data engineering nel file GEMINI.md con la sintassi @file.md. Per saperne di più, consulta Processore di importazione della memoria.

Data wrangling automatico

Puoi utilizzare l'agente di data engineering 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 incoerenze dei dati, outlier o mancate corrispondenze dei tipi. L'agente di data engineering crea quindi un piano che delinea i passaggi di wrangling proposti per consentirti di esaminarli e perfezionarli prima che venga eseguita qualsiasi azione.

L'agente di data engineering avvia anche l'analisi di data wrangling ogni volta che aggiungi una tabella non elaborata, ad esempio una tabella esterna basata su CSV. Puoi rivedere il piano di data wrangling e modificarlo con comandi conversazionali.

Il campionamento e la profilazione dei dati utilizzano le risorse BigQuery e sono soggetti ai prezzi di 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, come la rimozione di outlier, la compilazione di valori mancanti o incoerenti (imputazione dei dati), la correzione di dati duplicati o la standardizzazione dei formati dei dati, ad esempio numeri di telefono o indirizzi.
  • Trasformazioni strutturali. Quando viene fornito uno schema di destinazione, l'agente può unnestare o estrarre valori dai tipi JSON, ARRAY o STRUCT, unire più colonne in una o suddividere una colonna in più colonne.
  • Rilevamento e conversione dei tipi di dati. L'agente può analizzare i dati per determinare i tipi di campi appropriati. L'agente può quindi eseguire il type casting sicuro per risolvere eventuali incoerenze di formattazione nei 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 tuoi dati per rilevare i problemi e convalidare la logica di trasformazione.

Genera ed esamina i piani degli agenti

Il 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 invii all'agente prompt con richieste complesse che richiedono molte modifiche, ti consigliamo di chiedere all'agente di fornirti un piano in modo da poter esaminare le sue intenzioni prima che intraprenda qualsiasi azione. Un piano di Data Engineering Agent generalmente è composto da:

  • L'obiettivo dell'agente per una richiesta specifica
  • Una panoramica generale dei passaggi che l'agente intende intraprendere
  • 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 in fasi

Nel prompt, puoi includere la necessità di rivedere 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 degli agenti, consulta Best practice.

Aggiungi contesto da Knowledge Catalog

L'agente Data Engineering utilizza Knowledge Catalog collegando i termini del glossario alle tabelle BigQuery e alle colonne e generando scansioni di profilazione 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 nelle 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 sulla qualità dei dati più specifiche.

L'agente può anche utilizzare Knowledge Catalog per scoprire ed eseguire query sulle tabelle Apache Iceberg. Per saperne di più, consulta Crea pipeline su tabelle Apache Iceberg.

Aggiungi controlli della 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 affermazioni soggettive come parte del prompt. Ad esempio:

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

Durante l'esecuzione della pipeline, i risultati di tutte le asserzioni Dataform vengono pubblicati automaticamente in Knowledge Catalog. Questi risultati vengono inseriti nel prospetto di valutazione della qualità dei dati di Knowledge Catalog con uno stato di superamento o mancato superamento. Ogni esecuzione sovrascrive i prospetti di valutazione della qualità dei dati esistenti pubblicati dalle esecuzioni Dataform precedenti, ma non influisce sui prospetti di valutazione creati dalle scansioni dei dati di Knowledge Catalog.

Genera mappatura dello schema

Puoi chiedere al Data Engineering Agent di generare una mappatura tra uno schema di origine e uno di destinazione:

  Create a Dataform pipeline to map the tables from schema
  SOURCE_SCHEMA to schema TARGET_SCHEMA. Give me the plan.

Sostituisci quanto segue:

  • SOURCE_SCHEMA: il nome dello schema per le tabelle di origine.
  • TARGET_SCHEMA: il nome dello schema per le tabelle di destinazione.

L'agente genera quindi un piano seguendo questi passaggi:

  • Selezione della tabella di ancoraggio: determina la tabella di origine principale per ogni tabella di destinazione.
  • Ottimizzazione del join graph: mappa i percorsi di join direttamente allineati alle definizioni degli archi del grafo delle proprietà, evitando esplosioni cartesiane e mancate corrispondenze dei tipi.
  • Analisi dei gap a livello di campo: classifica ogni mappatura in un tipo di mappatura, Direct, Derived, Joined o Aggregated, quindi verifica l'integrità dei vincoli NOT NULL e REQUIRED.

Dopo aver esaminato il piano e confermato la logica di mappatura, puoi chiedere all'agente di creare la pipeline in base alla mappatura dello schema.

Mappatura dello schema con BigQuery Graph

Se nel tuo progetto è presente un grafo BigQuery, l'agente lo rileva e lo legge automaticamente per fornire un contesto aggiuntivo e migliorare l'accuratezza della mappatura dello schema. L'agente può leggere un grafo BigQuery per comprendere le relazioni semantiche tra le tabelle di origine e di destinazione, il che gli consente di generare mappature più accurate e riduce l'intervento manuale dell'utente durante la migrazione o la trasformazione di set di dati complessi. Quando chiedi all'agente di generare una mappatura dello schema, l'agente scansiona automaticamente il set di dati e utilizza un grafo BigQuery se esiste un grafo pertinente.

Per ulteriori informazioni sulle funzionalità, sulle versioni e sui prezzi di BigQuery Graph, consulta la panoramica di BigQuery Graph. Per saperne di più sul controllo degli accessi e sulla creazione di un grafo BigQuery, consulta Crea ed esegui query su un grafo BigQuery.

Integrazione di Google Drive

Il Data Engineering Agent può leggere e caricare file da Google Drive per includerli nelle pipeline di dati. Quando invii un prompt all'agente, fornisci un link al file su Drive e concedi all'agente l'accesso OAuth a Drive quando richiesto. L'agente è in grado di leggere il file fornito, creare una tabella esterna per leggere dal file di Drive attivo e caricare il file tramite una query della pipeline di Dataform. Per abilitare l'accesso a Drive per la tabella esterna, consulta Autentica e abilita l'accesso a Drive.

L'agente supporta i seguenti tipi di file su Drive:

  • CSV
  • Fogli Google
  • JSONL (JSON delimitato da nuova riga)

Arricchimento automatico dei dati

I metadati standard di BigQuery, ad esempio set di dati, tabelle e viste, sono automaticamente disponibili in Knowledge Catalog.

Puoi anche definire metadati personalizzati per le tabelle e le viste direttamente nel blocco di configurazione dei file .sqlx. Al completamento di un'azione, Dataform avvia automaticamente una sincronizzazione dei metadati con Knowledge Catalog. Questo processo di arricchimento aggiorna Knowledge Catalog con i metadati semantici definiti nella configurazione SQLX.

Utilizza la chiave dei metadati per specificare le informazioni per Knowledge Catalog. Il processo di arricchimento supporta i seguenti costrutti di metadati:

  • Panoramica: documentazione e testo di riepilogo della voce. Richiede Dataform core versione 3.0.37 o successive.
  • Aspetti generici: dettagli semantici come informazioni sul tipo e sul sistema della tabella. Richiede Dataform core versione 3.0.52 o successive.

La seguente configurazione di esempio mostra come aggiungere una panoramica e aspetti dei metadati generici a una configurazione della tabella per Knowledge Catalog:

config {
  type: "table",
  metadata: {
    overview: "This table provides standardized trip data.",
    extraProperties: {
        generic: {
              system: "BigQuery",
              type: "table"
        }
      }
  }
}

Per controllare lo stato di un aggiornamento dei metadati, consulta Ispeziona i log di esecuzione del workspace per i workflow di Dataform o Visualizza le esecuzioni manuali precedenti per le pipeline di BigQuery.

Per verificare i metadati sincronizzati, puoi cercare l'asset in Knowledge Catalog. Per saperne di più, consulta Cerca risorse.

Ottimizza le pipeline di dati

Puoi chiedere all'agente di ottimizzare le pipeline di dati. Quando genera il DDL per le nuove tabelle, l'agente di data engineering 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, in modo da fungere da fattore principale di costo e prestazioni.
  • Pushdown dei predicati per filtrare i dati in anticipo nel piano di esecuzione per ridurre in modo significativo il volume elaborato dalle operazioni successive.
  • Eliminazione di 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é ricostruire 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 tabelle in formato open source regionale (archiviate in Cloud Storage) direttamente alle tue tabelle BigQuery. Per saperne di più, consulta Concetti relativi agli 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 completi in quattro parti, ad esempio project.catalog.dataset.table. Puoi fare riferimento alle tabelle Apache Iceberg utilizzando nomi standard in linguaggio naturale o identificatori logici, ad esempio the StackOverflow post history table o post_history. L'agente richiama automaticamente le ricerche semantiche nel catalogo 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.

Contenuti consigliati interattivi

Il Data Engineering Agent analizza lo stato di compilazione del workspace, la cronologia delle esecuzioni e lo stato della conversazione attiva per fornire suggerimenti utili direttamente nell'interfaccia di chat. Questi suggerimenti vengono visualizzati automaticamente quando apri un workspace e durante la sessione per fornire consigli su configurazione, risoluzione dei problemi e ottimizzazioni per guidare il tuo flusso di lavoro.

Per utilizzare un suggerimento, fai clic su uno dei suggerimenti in Suggerimenti AI, che carica il prompt nella barra di inserimento 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 utilizzi l'agente di data engineering e Dataform, ti consigliamo di seguire questi passaggi:

Utilizza le istruzioni dell'agente per le richieste comuni. Se applichi comunemente 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.

Utilizza i piani degli agenti. I piani degli agenti possono essere utili per suddividere le attività complesse della pipeline. I piani dell'agente possono anche mostrare le ipotesi e le intenzioni dell'agente, quindi ti consigliamo di esaminarli per assicurarti che all'agente venga fornito il contesto corretto.

Dopo aver esaminato un piano, puoi modificarlo fornendo all'agente di data engineering 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 richiede la tua approvazione esplicita. L'atto di far pianificare l'agente costringe il 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. Formula la tua richiesta in modo chiaro ed evita di essere vago. Se possibile, fornisci le origini dati di origine e di destinazione quando esegui il 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 mirate. Fai una domanda alla volta e utilizza 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 enfatizzare i termini o i 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 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 diverse frasi e approcci per vedere cosa produce 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).

Valuta le pipeline di dati

Per valutare l'efficacia di una pipeline di dati generata dall'agente di data engineering, utilizza lo strumento EvalBench. EvalBench è un framework open source che supporta valutazioni agentiche multi-turno. EvalBench funge da suite di test delle unità automatizzata, consentendoti di configurare scenari a più turni, aggiungere valutatori deterministici e supportati da LLM e gestire il ciclo di vita delle tue pipeline Dataform.

Simulando i prompt in linguaggio naturale in una sandbox isolata, EvalBench misura l'efficacia con cui l'agente comprende le istruzioni, chiama gli strumenti giusti e genera il codice della pipeline corretto. EvalBench può controllare le pipeline di dati eseguendo le seguenti operazioni:

  • Convalida delle regole personalizzate: verifica che l'agente segua rigorosamente le linee guida di programmazione, le convenzioni di denominazione e le best practice specifiche della tua organizzazione.
  • Prevenzione delle regressioni del codice: testa le modifiche alla pipeline prima del deployment per assicurarti che gli aggiornamenti degli agenti o le modifiche allo schema non interrompano le funzionalità esistenti.
  • Generazione di benchmark di qualità: ottieni punteggi oggettivi e automatizzati per la correttezza SQL, l'accuratezza dell'esecuzione degli strumenti e l'affidabilità della pipeline.

Esegui una valutazione della pipeline di dati

Puoi eseguire EvalBench nelle seguenti due modalità:

  • Sandbox dinamica: EvalBench esegue il provisioning di un repository e di un workspace Dataform temporanei nuovi all'inizio di un'esecuzione di valutazione, esegue gli scenari di test e rimuove automaticamente tutte le risorse create al termine. Questa modalità non modifica alcun codice di produzione, repository di produzione o set di dati BigQuery e non lascia artefatti residui nel tuo progetto Google Cloud . La modalità sandbox dinamica è adatta per pipeline CI/CD automatizzate, test di regressione notturni e punteggi di benchmark oggettivi in cui è richiesto un isolamento rigoroso dell'ambiente.

  • Area di lavoro statica: EvalBench si connette a un repository e a un'area di lavoro Dataform preesistenti e gestiti dall'utente e ignora gli script di creazione ed eliminazione automatiche. Questa modalità consente all'agente in fase di valutazione di modificare e creare nuovi file SQLX all'interno dello spazio di lavoro esistente durante l'elaborazione dei casi di valutazione. La modalità workspace statico è adatta per il prompt engineering attivo, l'iterazione delle rubriche e il debug locale in cui devi ispezionare i file SQLX generati direttamente nel tuo workspace Dataform dopo l'esecuzione.

Prima di iniziare

Per ottenere le autorizzazioni necessarie per eseguire EvalBench, chiedi all'amministratore di concederti i seguenti ruoli IAM sul account di servizio o sull'identità utente che esegue EvalBench:

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.

Esegui la valutazione in una sandbox dinamica

Per valutare la pipeline di dati in modalità sandbox dinamica:

  1. Segui i passaggi per clonare il repository, configurare l'ambiente virtuale e installare eventuali dipendenze di EvalBench. Per saperne di più, consulta Inizia.
  2. Nella directory datasets/dea-tools/, verifica che il file di configurazione di esecuzione di esempio (example_run_config.yaml) includa le seguenti righe:

    set_up_script: datasets/dea-tools/scripts/setup_dataform.sh
    tear_down_script: datasets/dea-tools/scripts/teardown_dataform.sh
  3. Esegui EvalBench con il seguente comando:

    EVAL_GCP_PROJECT_ID=PROJECT_ID \
    EVAL_GCP_PROJECT_REGION=REGION \
    .venv/bin/python3 evalbench/evalbench.py --experiment_config=datasets/dea-tools/example_run_config.yaml

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto Google Cloud.
    • REGION: la regione del progetto Google Cloud.

Esegui la valutazione in un workspace di valutazione statico

Per valutare la pipeline di dati in modalità workspace statico, segui questi passaggi:

  1. Segui i passaggi per clonare il repository, configurare l'ambiente virtuale e installare eventuali dipendenze. Per saperne di più, consulta Inizia.
  2. Nella directory datasets/dea-tools/, modifica il file di configurazione di esecuzione di esempio (example_run_config.yaml) per commentare le righe set_up_script e tear_down_script e aggiungi le configurazioni dataform_repository e dataform_workspace:

    ...
    # set_up_script: datasets/dea-tools/scripts/setup_dataform.sh
    # tear_down_script: datasets/dea-tools/scripts/teardown_dataform.sh
    dataform_repository: !ENV ${EVAL_DEA_REPOSITORY_ID}
    dataform_workspace: !ENV ${EVAL_DEA_WORKSPACE_ID}
    ...
  3. Esegui EvalBench con il seguente comando:

    EVAL_GCP_PROJECT_ID=PROJECT_ID \
    EVAL_GCP_PROJECT_REGION=REGION \
      EVAL_DEA_REPOSITORY_ID=REPOSITORY_ID \
      EVAL_DEA_WORKSPACE_ID=WORKSPACE_ID \
      .venv/bin/python3 evalbench/evalbench.py --experiment_config=datasets/dea-tools/example_run_config.yaml

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto Google Cloud.
    • REGION: la regione del progetto Google Cloud.
    • REPOSITORY_ID: l'ID del repository che contiene la pipeline di dati.
    • WORKSPACE_ID: l'ID del workspace che contiene la pipeline di dati.
  4. (Facoltativo) Puoi anche eseguire EvalBench con core_10_cases_suite.yaml per testare la pipeline di dati rispetto a 10 casi di valutazione principali in sequenza con isolamento dell'ambiente creando un nuovo repository per ogni scenario di test. Per farlo, esegui questo comando:

    EVAL_GCP_PROJECT_ID=PROJECT_ID \
    EVAL_GCP_PROJECT_REGION=REGION \
    .venv/bin/python3 evalbench/evalbench.py --suite_config=datasets/dea-tools/core_10_cases_suite.yaml

Best practice per la valutazione delle pipeline di dati

Per migliorare le prestazioni e l'accuratezza delle valutazioni della pipeline di dati utilizzando EvalBench, ti consigliamo di seguire questi passaggi:

  • Cerca gli ID delle chiamate dei workflow Dataform e gli ID job BigQuery nei log di valutazione. Utilizza questi ID per fare un controllo incrociato ed esaminare gli artefatti di esecuzione generati, i risultati della compilazione e i log delle query nella console Google Cloud .
  • Esegui sempre la suite di valutazione di base (--suite_config) prima di rilasciare modifiche al modello o ai prompt per garantire una copertura completa della regressione in diversi scenari di data engineering.
  • Utilizza EVAL_DATAFORM_SETUP_ENV_FILES_DIR per precaricare i file di configurazione dell'ambiente, come workflow_settings.yaml e le definizioni dello schema di base, nell'area di lavoro di test. Questi file di configurazione assicurano che l'agente si basi su ambienti esistenti realistici anziché su workspace vuoti.
  • Quando risolvi i problemi relativi ai casi di valutazione non riusciti in modalità sandbox dinamica, commenta tear_down_script nella configurazione di esecuzione per mantenere l'area di lavoro di destinazione per l'analisi post-mortem.
  • Abbina sempre i verificatori di compilazione ed esecuzione cloud (dataform_cloud_compile, dataform_cloud_run) con rubriche binarie basate su LLM per identificare sia gli errori di sintassi o di runtime sia i difetti logici di alto livello.
  • Attiva i report di BigQuery (<PROJECT_ID>.evalbench.results) e utilizza i link di Data Studio generati per monitorare i tassi di superamento, l'accuratezza dell'utilizzo degli strumenti e l'efficienza dei prompt nel tempo.