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. Data Engineering Agent 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 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 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 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 dell'esecuzione di qualsiasi azione.
  • 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.

Dove puoi utilizzare l'agente di data engineering

Puoi utilizzare Data Engineering Agent con i seguenti metodi:

In che modo l'agente Data Engineering utilizza i tuoi dati

Per produrre risposte 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 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
  • L'agente Data Engineering non può eseguire pipeline. Devi esaminare 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.

Funzionalità e personalizzazioni dell'agente

Le sezioni seguenti 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 l'agente Data Engineering che ti consentono di memorizzare istruzioni permanenti in modo che l'agente segua una serie 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 file di contesto GEMINI.MD 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 Data Engineering.
  • Fornisci nomi file significativi e raggruppa istruzioni simili in un file. Organizza le regole in modo logico per categoria, funzionalità o funzionalità 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 l'implementazione 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 che puoi 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 Data Engineering può generare piani dell'agente 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
  • 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 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 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

Data Engineering Agent 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.

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.

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 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.

Best practice

Per migliorare i risultati quando lavori con l'agente Data Engineering e Dataform, ti consigliamo di procedere nel seguente modo:

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, pertanto 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 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, 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 piccoli passaggi 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).