Panoramica di Data Engineering Agent

L'agente di data engineering ti consente di creare, modificare e risolvere i problemi delle pipeline di dati in BigQuery utilizzando prompt in linguaggio naturale. L'agente Data Engineering offre le seguenti funzionalità per semplificare i flussi di lavoro di data engineering per importare i dati in BigQuery:

  • Integrazione di Dataform: l'agente genera e organizza il codice della pipeline di dati direttamente nei repository e negli spazi di lavoro Dataform
  • Generazione del piano: l'agente può riassumere il suo ragionamento e generare un piano che ti consente di rivedere 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 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 rivedere e personalizzare i piani degli agenti generati prima che vengano eseguite 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 relativo codice.
  • Consigli interattivi: l'agente fornisce consigli 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 l'agente Data Engineering 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 informare le sue risposte.

Dove Data Engineering Agent elabora i tuoi dati

Per saperne di più 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
  • L'agente Data Engineering non può eseguire pipeline. Devi rivedere ed eseguire o pianificare le pipeline.
  • 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 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 runtime Lakehouse (in precedenza metastore BigLake), si applicano tutte le limitazioni del catalogo 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) nelle tabelle Iceberg. Per saperne di più, consulta Concetti relativi agli endpoint del catalogo REST di Apache Iceberg.

Funzionalità e personalizzazioni dell'agente

Le sezioni seguenti descrivono funzionalità aggiuntive dell'agente e altri metodi per personalizzarlo.

Istruzioni agente

Le istruzioni dell'agente sono istruzioni in linguaggio naturale per l'agente Data Engineering che ti consentono di memorizzare 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 l'agente di Data Engineering, 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 per l'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 a loro volta contenere importazioni, il che può creare una struttura nidificata. Per evitare la ricorsione infinita, GEMINI.md ha 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.
  • Per garantire la coerenza del progetto, puoi collegarti a file di convenzioni di denominazione o guide di stile e chiedere 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ò contribuire 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, funzionalità o caratteristica con 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 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

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 con la sintassi @file.md. Per saperne di più, consulta Processore di importazione della memoria.

Wrangling automatico dei dati

Puoi utilizzare Data Engineering Agent per trasformare i dati non elaborati in tabelle strutturate adatte all'analisi dei dati. Se richiesto, l'agente esegue prima il campionamento di un massimo di 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 possono includere la correzione di incoerenze, outlier o mancate corrispondenze dei tipi di dati. Data Engineering Agent crea quindi un piano che delinea i passaggi di wrangling proposti da rivedere e perfezionare prima che venga eseguita qualsiasi azione.

L'agente Data Engineering avvia anche l'analisi del data wrangling ogni volta che aggiungi una tabella non elaborata, ad esempio una tabella esterna basata su CSV. Puoi rivedere il piano di manipolazione dei dati 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, 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, ARRAY o STRUCT; 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 sicuro dei tipi per risolvere eventuali incoerenze di formattazione all'interno dei campi data, ora, data e 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 problemi e convalidare la logica di trasformazione.

Generare e rivedere i piani dell'agente

L'agente di Data Engineering può generare piani che forniscono un riepilogo e una panoramica degli obiettivi e dei passaggi necessari per completare una richiesta. Quando chiedi all'agente di eseguire richieste complesse che richiedono molte modifiche, ti consigliamo di chiedere all'agente di fornirti un piano in modo da poter esaminare le intenzioni dell'agente prima che intraprenda qualsiasi azione. Un piano Data Engineering Agent in genere è costituito da quanto segue:

  • L'obiettivo dell'agente per una determinata richiesta
  • Una panoramica generale dei passaggi che l'agente intende intraprendere
  • Qualsiasi ipotesi formulata dall'agente
  • File che l'agente prevede di modificare
  • Eventuali passaggi di ottimizzazione o pulizia che prevede di eseguire
  • Un piano di esecuzione in più 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 dell'agente, consulta Best practice.

Aggiungere contesto da Knowledge Catalog

L'agente Data Engineering utilizza Knowledge Catalog collegando i termini del glossario a tabelle e colonne BigQuery e generando scansioni del profilo 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 Creare pipeline sulle tabelle Apache Iceberg.

Aggiungere 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 asserzioni basate su opinioni 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 qualsiasi asserzione Dataform vengono pubblicati automaticamente in Knowledge Catalog (anteprima). Questi risultati vengono inseriti nel prospetto della qualità dei dati di Knowledge Catalog con uno stato di superamento o non superamento. Ogni esecuzione sovrascrive le schede di valutazione della qualità dei dati esistenti pubblicate dalle esecuzioni precedenti di Dataform, ma non influisce sulle schede di valutazione create dalle scansioni dei dati di Knowledge Catalog.

Arricchimento automatico dei dati

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

Puoi anche definire metadati personalizzati per tabelle e viste direttamente nel blocco di configurazione dei file .sqlx. Al termine 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 il Knowledge Catalog. Il processo di arricchimento supporta i seguenti costrutti di metadati:

  • Panoramica: documentazione e testo riepilogativo per la voce. Richiede Dataform Core versione 3.0.37 o successive.
  • Aspetti generici: dettagli semantici come informazioni sul sistema e sul tipo di tabella. Richiede Dataform Core versione 3.0.52 o successive.

La seguente configurazione di esempio mostra come aggiungere una panoramica e aspetti generici dei metadati 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 Esaminare i log di esecuzione dello spazio di lavoro per i workflow Dataform o Visualizzare le esecuzioni manuali precedenti per le pipeline BigQuery.

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

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 la lettura dei dati dallo spazio di archiviazione e fungere da fattore principale di costo 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 sulle 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à consente di eseguire query e unire tabelle in formato open source regionali (archiviate in Cloud Storage) direttamente insieme alle tabelle BigQuery. Per saperne di più, consulta Concetti relativi agli endpoint del catalogo REST di Apache Iceberg.

Ad esempio, puoi chiedere all'agente di eseguire una query su una tabella Apache Iceberg nel catalogo 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.

Suggerimenti interattivi

L'agente Data Engineering analizza lo stato di compilazione dello spazio di lavoro, la cronologia di esecuzione e lo stato della conversazione attiva per fornire consigli pratici 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 tuo flusso di lavoro.

Per utilizzare un consiglio, fai clic su uno dei suggerimenti nella sezione Consigli dell'AI, che carica il prompt nella barra di input della chat. Puoi modificarlo o personalizzarlo 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 procedere come segue:

Utilizza le istruzioni per gli agenti per le richieste comuni. Se applichi spesso determinate tecniche o se apporti frequentemente 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 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 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 richieda la tua approvazione esplicita. L'atto di pianificare l'agente costringe l'agente di Data Engineering 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 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, 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 evidenzia i termini chiave. Puoi dare risalto a 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, 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 frasi e approcci diversi 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).

Valutare le pipeline di dati

Per valutare l'efficacia di una pipeline di dati generata da Data Engineering Agent, utilizza lo strumento EvalBench. EvalBench è un framework open source che supporta le valutazioni agentiche multi-turno. EvalBench funge da suite di test unitari automatizzati, consentendoti di configurare scenari multiturno, aggiungere marcatori deterministici e basati su LLM e gestire il ciclo di vita delle pipeline Dataform.

Simulando 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 nel seguente modo:

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

Esegui una valutazione della pipeline di dati

Puoi eseguire EvalBench nelle due modalità seguenti:

  • Sandbox dinamica: EvalBench esegue il provisioning di un repository e di uno spazio di lavoro Dataform temporanei e nuovi all'inizio di un'esecuzione di valutazione, esegue gli scenari di test e distrugge automaticamente tutte le risorse create al termine. Questa modalità non modifica il codice di produzione, i repository di produzione o i 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 valutazione di benchmark oggettivi in cui è richiesto un isolamento rigoroso dell'ambiente.

  • Workspace statico: EvalBench si connette a un repository e a un workspace Dataform preesistenti e gestiti dall'utente e ignora gli script di creazione ed eliminazione automatizzati. Questa modalità consente all'agente in 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 statica è adatta per l'ingegneria dei prompt attiva, l'iterazione delle rubriche e il debug locale in cui devi esaminare 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 le dipendenze di EvalBench. Per ulteriori informazioni, vedi Guida introduttiva.
  2. Nella directory datasets/dea-tools/, verifica che il file di configurazione di esempio dell'esecuzione (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 uno spazio di lavoro di valutazione statica

Per valutare la pipeline di dati in modalità spazio di lavoro statico:

  1. Segui i passaggi per clonare il repository, configurare l'ambiente virtuale e installare le dipendenze. Per ulteriori informazioni, vedi Guida introduttiva.
  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 dello spazio di lavoro 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 scenari di valutazione principali in sequenza con l'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 il rendimento e l'accuratezza delle valutazioni della pipeline di dati utilizzando EvalBench, ti consigliamo di procedere nel seguente modo:

  • Cerca l'invocazione del workflow Dataform e gli ID job BigQuery nei log di valutazione. Utilizza questi ID per fare un controllo incrociato e ispezionare gli artefatti di esecuzione generati, i risultati della compilazione e i log delle query nella console Google Cloud .
  • Esegui sempre la suite di valutazione principale (--suite_config) prima di rilasciare il modello o le modifiche ai prompt per garantire una copertura completa della regressione in diversi scenari di ingegneria dei dati.
  • 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, nel workspace di test. Questi file di configurazione assicurano che l'agente si basi su ambienti esistenti realistici anziché su spazi di lavoro 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 conservare lo spazio 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 i criteri binari basati su LLM per identificare sia gli errori di sintassi o di runtime sia i difetti logici di alto livello.
  • Attiva i report 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.