Mit dem Data-Engineering-Agenten können Sie Datenpipelines in BigQuery mithilfe von Prompts in natürlicher Sprache erstellen, ändern und Fehler beheben. Der Data Engineering-Agent bietet die folgenden Funktionen, um Ihre Data Engineering-Workflows für die Aufnahme von Daten in BigQuery zu optimieren:
- Dataform-Integration: Der KI-Agent generiert und organisiert Datenpipeline-Code direkt in Dataform-Repositories und ‑Arbeitsbereichen.
- Planerstellung: Der Agent kann seine Überlegungen zusammenfassen und einen Plan erstellen, den Sie prüfen und bestätigen können, bevor Sie fortfahren.
- Codevalidierung: Der Agent validiert und behebt automatisch Kompilierungsfehler im generierten Code, um sicherzustellen, dass die Datenpipeline funktioniert.
- Automatische Datenaufbereitung: Der Agent führt die Datenaufbereitung durch und wandelt Rohdaten ohne manuelles Eingreifen in strukturierte Tabellen um.
- Benutzerdefinierte Anweisungen: Der KI-Agent unterstützt benutzerdefinierte Anweisungen, mit denen Sie bestimmte Regeln und wiederverwendbare Richtlinien in natürlicher Sprache definieren können.
- Externer Kontext: Der Agent ist in Knowledge Catalog eingebunden, um zusätzlichen Kontext zu erhalten.
- Pipeline-Steuerung: Sie können generierte Agentenpläne prüfen und anpassen, bevor Aktionen ausgeführt werden.
- Optimierung: Der KI-Agent kann die Leistung Ihrer Datenpipeline optimieren.
- Fehlerbehebung und Reparatur: Der Agent kann Pipelinefehler beheben und den Code korrigieren.
- Interaktive Empfehlungen: Der Agent bietet zu Beginn und während der gesamten Sitzung interaktive, kontextsensitive Empfehlungen.
- Anreicherung von Knowledge Catalog-Metadaten: Der Agent kann automatisch Knowledge Catalog-Metadaten aus Ihren Tabellenkonfigurationen generieren und die Metadaten während der Pipelineausführung an Knowledge Catalog senden.
Wo Sie den Data Engineering Agent verwenden können
Sie können den Data Engineering-Agenten mit den folgenden Methoden verwenden:
- Datenpipelines über die BigQuery-Pipeline-Oberfläche oder in Dataform erstellen
- Installieren Sie die Google Cloud Data Agent Kit-Erweiterung in Visual Studio Code, um Datenpipelines in Ihrer integrierten Entwicklungsumgebung (IDE) zu erstellen.
- Verwenden Sie die Data Engineering Agent API.
So verwendet der Data Engineering-Agent Ihre Daten
Um qualitativ hochwertigere Antworten des KI-Agenten zu generieren, kann der Data Engineering Agent zusätzliche Daten und Metadaten aus BigQuery und Knowledge Catalog abrufen, einschließlich Beispielzeilen aus BigQuery-Tabellen und in Knowledge Catalog generierten Datenscanprofilen. Der KI-Agent verwendet diese Daten nicht für das Training, sondern nur als zusätzlichen Kontext während der Unterhaltungen, um seine Antworten zu verbessern.
Wo der Data Engineering-Agent Ihre Daten verarbeitet
Weitere Informationen zu den Standorten, an denen der Data Engineering Agent Ihre Daten verarbeitet, finden Sie unter Wo Gemini in BigQuery Ihre Daten verarbeitet.
Beschränkungen
Für den Data Engineering-Agenten gelten die folgenden Einschränkungen:
- Der Data-Engineering-Agent unterstützt keine Befehle in natürlicher Sprache für die folgenden Dateitypen:
- Notebooks
- Datenvorbereitung
- Der Data Engineering-Agent kann keine Pipelines ausführen. Sie müssen Pipelines prüfen und ausführen oder planen.
- Der Data Engineering-Agent kann keine Weblinks oder URLs durchsuchen, die über Anweisungen oder direkte Prompts bereitgestellt werden.
- Beim Importieren von Dateien in einer Agent-Anweisungsdatei unterstützt die
@-Importsyntax nur Pfade, die mit./,/oder einem Buchstaben beginnen. - Die Datenvorschau wird nur für Tabellen, Deklarationen oder Abfragen unterstützt, bei denen das Flag
hasOutputauftruegesetzt ist. - Der Data Engineering Agent unterliegt den allgemeinen Einschränkungen der KI-Technologie.
- Wenn Sie Pipelines über externe Apache Iceberg-Tabellen erstellen, die vom Lakehouse-Laufzeitkatalog (ehemals BigLake Metastore) verwaltet werden, gelten alle Einschränkungen des Lakehouse-Laufzeitkatalogs. Insbesondere kann der Agent keine Schreibmutationen (wie
INSERT,UPDATE,DELETEoderMERGE) oder DDL-Anweisungen (wieCREATE TABLEoderDROP TABLE) für Iceberg-Tabellen generieren. Weitere Informationen finden Sie unter Konzepte für Apache Iceberg REST-Katalogendpunkte.
Agentenfunktionen und ‑anpassungen
In den folgenden Abschnitten werden zusätzliche KI-Agentenfunktionen und andere Methoden zum Anpassen des Data Engineering-Agenten beschrieben.
Anweisungen für KI-Agenten
Agentenanweisungen sind Anweisungen in natürlicher Sprache für den Data-Engineering-Agenten, mit denen Sie persistente Anweisungen speichern können, damit der Agent eine Reihe von benutzerdefinierten, vordefinierten Regeln befolgt. Verwenden Sie Agentenanweisungen, wenn die Ergebnisse des KI-Agenten in Ihrer Organisation einheitlich sein sollen, z. B. bei Namenskonventionen oder zur Durchsetzung eines Styleguides.
Wenn Sie Agentenanweisungen für den Data Engineering-Agenten erstellen möchten, erstellen Sie eine GEMINI.MD-Kontextdatei als Agentenanweisungsdatei.
Best Practices für Anweisungsdateien für Agenten
Wenn Sie KI-Agentenanweisungen verwenden, empfehlen wir Folgendes:
- Alle Dateipfade in Dataform sind relativ zum Stammverzeichnis des Repositorys. Verwenden Sie relative Pfade für die
@file.md-Syntax, um Anweisungen ordnungsgemäß inGEMINI.mdzu importieren. - In
GEMINI.mdimportierte Dateien können selbst Importe enthalten, wodurch eine verschachtelte Struktur entstehen kann. Um eine unendliche Rekursion zu verhindern, hatGEMINI.mdeine maximale Importtiefe von fünf Ebenen. - Wenn Sie Anleitungen für mehrere Datenpipelines freigeben möchten, speichern Sie sie in einem zentralen Dataform-Repository und verknüpfen Sie sie mit dem Arbeits-Repository von Dataform. Sie können lokale Anweisungen verwenden, um zentrale Regeln für pipelinespezifisches Verhalten zu überschreiben.
- Um die Konsistenz in Ihrem Projekt zu gewährleisten, können Sie Dateien mit Namenskonventionen oder Styleguides verlinken und den Agenten anweisen, diese Richtlinien bei der Arbeit mit Ihren Datenpipelines zu befolgen.
- Sie können in der Anleitungsdatei Datenebenen vorschlagen, um verschiedene Datentypen zu gruppieren.
- Durch die Verwendung von Überschriften und Listen in der Datei mit den Agentenanweisungen können Sie die Anweisungen für den Data-Engineering-Agenten besser strukturieren und verständlicher machen.
- Verwenden Sie aussagekräftige Dateinamen und fassen Sie ähnliche Anweisungen in einer Datei zusammen. Organisieren Sie Regeln logisch nach Kategorie, Funktion oder Funktionalität mit Markdown-Überschriften.
- Um widersprüchliche Anweisungen zu vermeiden, definieren Sie klar die spezifischen Bedingungen, unter denen die einzelnen Anweisungen gelten.
- Iterieren und optimieren Sie Ihre Prompts und Ihren Workflow. Das Verhalten des KI-Agenten ändert sich im Laufe der Zeit durch Rollouts und Modellupgrades. Wir empfehlen daher, Ihre Regeln mit verschiedenen Prompts zu iterieren, um Bereiche zu identifizieren, die möglicherweise verbessert werden müssen. Halten Sie Ihre Regeldatei mit allen Änderungen an Ihrer Datenpipeline synchron.
Das folgende Beispiel zeigt eine Agent-Anweisungsdatei mit dem Namen GEMINI.md, die unsere Best Practices für die effektive Nutzung des Data Engineering-Agenten verwendet:
### 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
Zusätzliche lokale Dateien als Agent-Anweisungen importieren
Sie können auch andere Anweisungsdateien für den Data Engineering-Agenten mit der Syntax @file.md in die Datei GEMINI.md importieren. Weitere Informationen finden Sie unter Memory Import Processor.
Automatische Datenaufbereitung
Mit dem Data-Engineering-Agenten können Sie unstrukturierte Rohdaten in strukturierte Tabellen umwandeln, die sich für die Datenanalyse eignen. Bei einer Anfrage nimmt der Agent zuerst eine Stichprobe von bis zu 1.000.000 Datensätzen aus jeder Standard- oder externen Tabelle. Der Agent führt dann eine umfassende Datenanalyse durch, indem er Profilerstellungsabfragen für diese Stichprobe ausführt. Nachdem der Agent Datentransformationen generiert hat, wiederholt er diesen Stichproben- und Profilerstellungsprozess, um die Qualität der Transformationen zu bewerten. Diese Transformationen zur Datenaufbereitung können das Beheben von Dateninkonsistenzen, Ausreißern oder Typkonflikten umfassen. Der Data Engineering Agent erstellt dann einen Plan, in dem die vorgeschlagenen Schritte zur Datenaufbereitung beschrieben werden. Sie können diesen Plan prüfen und optimieren, bevor Maßnahmen ergriffen werden.
Der Data Engineering-Agent initiiert die Datenaufbereitungsanalyse auch, wenn Sie eine Rohtabelle hinzufügen, z. B. eine CSV-basierte externe Tabelle. Sie können den Plan zur Datenaufbereitung prüfen und mit Befehlen in natürlicher Sprache anpassen.
Für die Stichprobenerhebung und Profilerstellung werden BigQuery-Ressourcen verwendet. Es gelten die BigQuery-Preise.
Der Data Engineering Agent unterstützt die folgenden Transformationen zur Datenaufbereitung:
- Datenbereinigung Der Agent kann Rohdaten analysieren und Bereinigungsmöglichkeiten vorschlagen, z. B. das Entfernen von Ausreißern, das Auffüllen fehlender oder inkonsistenter Werte (Datenimputation), das Beheben doppelter Daten oder das Standardisieren von Datenformaten, z. B. Telefonnummern oder Adressen.
- Strukturelle Transformationen. Wenn ein Zielschema angegeben ist, kann der Agent Werte aus den Typen
JSON,ARRAYoderSTRUCTextrahieren oder die Verschachtelung aufheben, mehrere Spalten zu einer zusammenführen oder eine Spalte in mehrere Spalten aufteilen. - Datentyperkennung und ‑konvertierung. Der Agent kann die Daten analysieren, um die geeigneten Feldtypen zu bestimmen. Der KI-Agent kann dann eine sichere Typumwandlung durchführen, um Formatierungsinkonsistenzen in den Feldern für Datum, Uhrzeit, Datum/Uhrzeit oder Zeitstempel zu beheben.
- Umrechnung von Maßeinheiten Der Agent kann verschiedene Einheiten innerhalb eines Felds automatisch in eine einheitliche Einheit umwandeln, um Ihre Daten zu standardisieren.
Um die Genauigkeit zu gewährleisten, verwendet der Agent repräsentative Stichproben Ihrer Daten, um Probleme zu erkennen und die Transformationslogik zu validieren.
Agentenpläne erstellen und prüfen
Der Data Engineering-Agent kann Agentenpläne generieren, die eine Zusammenfassung und Übersicht der Ziele und Schritte enthalten, die zum Erfüllen einer Anfrage erforderlich sind. Wenn Sie dem KI-Agenten komplexe Anfragen stellen, die viele Änderungen erfordern, empfehlen wir, den KI-Agenten um einen Plan zu bitten, damit Sie seine Absichten prüfen können, bevor er Maßnahmen ergreift. Ein Plan für einen Data Engineering-Agent besteht in der Regel aus Folgendem:
- Das Ziel des KI-Agenten für eine bestimmte Anfrage
- Eine allgemeine Übersicht über die Schritte, die der Agent ausführen möchte
- Alle Annahmen, die der KI-Agent trifft
- Dateien, die der KI-Agent ändern möchte
- Alle geplanten Optimierungs- oder Bereinigungsschritte
- Ein phasenbasierter Ausführungsplan
In Ihrem Prompt können Sie angeben, dass der Plan überprüft und genehmigt werden muss, damit der Agent keine Maßnahmen ohne Ihre ausdrückliche Genehmigung ergreift. Beispiel:
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.
Der Agent kann auch automatisch einen Agentenplan erstellen und Ihre Genehmigung anfordern. Dieses Ergebnis kann auftreten, wenn ein Prompt zu mehrdeutig ist oder der Agent mehr Klarheit benötigt, um Ihre Anfrage zu erfüllen.
Best Practices für die Verwendung von Agentenplänen finden Sie unter Best Practices.
Kontext aus Knowledge Catalog hinzufügen
Der Data Engineering-Agent verwendet Knowledge Catalog, indem er Glossarbegriffe an BigQuery-Tabellen und ‑Spalten anhängt und Datenprofilscans generiert. Mit Glossarbegriffen können Spalten getaggt werden, die zusätzlichen Kontext erfordern, z. B. Spalten mit personenidentifizierbaren Informationen, die spezielle Verarbeitungsanweisungen erfordern, oder um übereinstimmende Spalten mit unterschiedlichen Namen in verschiedenen Tabellen zu identifizieren.
Knowledge Catalog nutzt auch Datenprofilerstellung, wodurch der Agent die Datenverteilung in Tabellenspalten besser versteht und spezifischere Datenqualitäts-Assertions erstellen kann.
Der KI-Agent kann auch Knowledge Catalog verwenden, um Apache Iceberg-Tabellen zu finden und abzufragen. Weitere Informationen finden Sie unter Pipelines über Apache Iceberg-Tabellen erstellen.
Datenqualitätsprüfungen zu einer vorhandenen Tabelle hinzufügen
Wenn Sie den KI-Agenten auffordern, Qualitätsprüfungen hinzuzufügen, leitet er anhand des Schemas und der Stichproben sinnvolle Prüfungen für die Tabelle ab. Sie können auch subjektive Behauptungen als Teil des Prompts hinzufügen. Beispiel:
Add data quality checks for bigquery-public-data.thelook_ecommerce.users.
Während der Pipelineausführung werden die Ergebnisse aller Dataform-Assertions automatisch in Knowledge Catalog veröffentlicht. Diese Ergebnisse werden in der Datenqualitäts-Scorecard von Knowledge Catalog mit dem Status „Bestanden“ oder „Nicht bestanden“ angezeigt. Bei jeder Ausführung werden vorhandene Datenqualitäts-Scorecards überschrieben, die von früheren Dataform-Ausführungen veröffentlicht wurden. Scorecards, die von Knowledge Catalog-Datenscans erstellt wurden, sind davon jedoch nicht betroffen.
Schemazuordnung generieren
Sie können den Data Engineering-Agenten auffordern, eine Schemazuordnung zwischen einem Quell- und einem Zielschema zu generieren:
Create a Dataform pipeline to map the tables from schema SOURCE_SCHEMA to schema TARGET_SCHEMA. Give me the plan.
Ersetzen Sie Folgendes:
SOURCE_SCHEMA: der Name des Schemas für Ihre Quelltabellen.TARGET_SCHEMA: der Name des Schemas für Ihre Zieltabellen.
Der Agent erstellt dann einen Plan, indem er Folgendes tut:
- Ankertabelle auswählen: Bestimmen Sie die primäre Quelltabelle für jede Zieltabelle.
- Join-Graph-Optimierung: Join-Pfade werden direkt an den Kantendefinitionen des Eigenschaftsgraphen ausgerichtet, um kartesische Explosionen und Typkonflikte zu vermeiden.
- Lückenanalyse auf Feldebene: Jede Zuordnung wird einem Zuordnungstyp klassifiziert, entweder
Direct,Derived,JoinedoderAggregated. Anschließend wird die Integrität der EinschränkungenNOT NULLundREQUIREDüberprüft.
Nachdem Sie den Plan geprüft und die Zuordnungslogik bestätigt haben, können Sie den Agenten auffordern, die Pipeline basierend auf dieser Schemazuordnung zu erstellen.
Schemazuordnung mit BigQuery Graph
Wenn Sie einen BigQuery-Grafen in Ihrem Projekt haben, wird er vom Agenten automatisch erkannt und gelesen, um zusätzlichen Kontext bereitzustellen und die Genauigkeit der Schemazuordnung zu verbessern. Der KI-Agent kann einen BigQuery-Graphen lesen, um die semantischen Beziehungen zwischen Ihren Quell- und Zieltabellen zu verstehen. So kann er genauere Zuordnungen generieren und die manuelle Nutzerinteraktion bei der Migration oder Transformation komplexer Datasets reduzieren. Wenn Sie den KI-Agenten auffordern, eine Schemazuordnung zu generieren, scannt er automatisch Ihr Dataset und verwendet einen BigQuery-Grafen, falls ein relevanter Graf vorhanden ist.
Weitere Informationen zu den Funktionen, Versionen und Preisen von BigQuery Graph finden Sie unter BigQuery Graph – Übersicht. Weitere Informationen zur Zugriffssteuerung und zum Erstellen eines BigQuery-Diagramms finden Sie unter BigQuery-Diagramm erstellen und abfragen.
Google Drive-Integration
Der Data Engineering Agent kann Dateien aus Google Drive lesen und laden, um sie in Ihre Datenpipelines einzubinden. Wenn Sie den KI-Agenten auffordern, geben Sie einen Link zur Datei in Drive an und gewähren Sie dem KI-Agenten auf Anfrage OAuth-Zugriff auf Ihr Drive. Der Agent kann die bereitgestellte Datei lesen, eine externe Tabelle erstellen, um aus der Live-Drive-Datei zu lesen, und die Datei über eine Dataform-Pipeline-Abfrage laden. Informationen zum Aktivieren des Drive-Zugriffs für die externe Tabelle finden Sie unter Drive-Zugriff authentifizieren und aktivieren.
Der Agent unterstützt die folgenden Dateitypen in Google Drive:
- CSV
- Google Sheets
- JSONL (durch Zeilenumbruch getrenntes JSON)
Automatische Datenanreicherung
Standardmetadaten aus BigQuery, z. B. Datasets, Tabellen und Ansichten, sind automatisch in Knowledge Catalog verfügbar.
Sie können auch benutzerdefinierte Metadaten für Ihre Tabellen und Ansichten direkt im Konfigurationsblock Ihrer .sqlx-Dateien definieren. Nach erfolgreichem Abschluss einer Aktion initiiert Dataform automatisch eine Metadatensynchronisierung mit Knowledge Catalog. Bei diesem Anreicherungsprozess wird Knowledge Catalog mit den semantischen Metadaten aktualisiert, die in Ihrer SQLX-Konfiguration definiert sind.
Verwenden Sie den Metadatenschlüssel, um Informationen für den Knowledge Catalog anzugeben. Der Anreicherungsprozess unterstützt die folgenden Metadatenkonstrukte:
- Übersicht: Dokumentation und Zusammenfassungstext für den Eintrag. Erfordert Dataform Core-Version 3.0.37 oder höher.
- Generische Aspekte: semantische Details wie Tabellensystem- und Typinformationen. Erfordert Dataform Core-Version 3.0.52 oder höher.
In der folgenden Beispielkonfiguration wird gezeigt, wie Sie einer Tabellenkonfiguration für Knowledge Catalog eine Übersicht und generische Metadatenaspekte hinzufügen:
config {
type: "table",
metadata: {
overview: "This table provides standardized trip data.",
extraProperties: {
generic: {
system: "BigQuery",
type: "table"
}
}
}
}
Informationen zum Prüfen des Status einer Metadatenaktualisierung finden Sie unter Ausführungsprotokolle des Arbeitsbereichs prüfen für Dataform-Workflows oder unter Frühere manuelle Ausführungen ansehen für BigQuery-Pipelines.
Wenn Sie die synchronisierten Metadaten prüfen möchten, können Sie im Knowledge Catalog nach dem Asset suchen. Weitere Informationen finden Sie unter Nach Ressourcen suchen.
Datenpipelines optimieren
Sie können den KI-Agenten auffordern, Ihre Datenpipelines zu optimieren. Beim Generieren von DDL für neue Tabellen empfiehlt der Data Engineering-Agent Partitionierung und Clustering basierend auf den analysierten Datennutzungsmustern. Darüber hinaus kann der Agent automatisch andere Pipeline-Optimierungen anwenden. Beispiele für mögliche Optimierungen:
- Spaltenbereinigung, um die aus dem Speicher gelesenen Daten zu reduzieren und so die Kosten und die Leistung zu optimieren.
- Prädikat-Pushdowns, um Daten früh im Ausführungsplan zu filtern und so das von nachfolgenden Vorgängen verarbeitete Volumen erheblich zu reduzieren.
- Eliminierung gängiger Unterausdrücke, um die Effizienz zu verbessern, indem gemeinsame Transformationslogik nur einmal identifiziert und berechnet wird. So werden ineffiziente Praktiken wie das mehrfache Scannen und Zusammenführen großer Tabellen vermieden.
- Inkrementelle Modelle, um nur neue oder geänderte Daten seit der letzten Ausführung zu verarbeiten, anstatt bei jeder Ausführung ganze Tabellen neu zu erstellen.
Pipelines über Apache Iceberg-Tabellen erstellen
Der Data Engineering Agent unterstützt das Generieren und Kompilieren von Dataform-Pipelines über Apache Iceberg-Tabellen, die vom Lakehouse-Laufzeitkatalog (ehemals BigLake Metastore) verwaltet werden. Mit dieser Funktion können Sie regionale Tabellen im Open-Source-Format, die in Cloud Storage gespeichert sind, direkt zusammen mit Ihren BigQuery-Tabellen abfragen und verknüpfen. Weitere Informationen finden Sie unter Konzepte für Apache Iceberg REST-Katalogendpunkte.
Sie können den KI-Agenten beispielsweise auffordern, eine Apache Iceberg-Tabelle im Lakehouse-Laufzeitkatalog abzufragen:
Include the stackoverflow_post_history_iceberg table in this pipeline.
In Ihren Prompts müssen Sie keine vollständig qualifizierten vierteiligen Pfade angeben, z. B. project.catalog.dataset.table. Sie können Apache Iceberg-Tabellen mit Standardnamen in natürlicher Sprache oder logischen Kennungen wie the StackOverflow post history table oder post_history referenzieren. Der KI-Agent ruft automatisch semantische Katalogsuchen mit Knowledge Catalog auf, um die richtigen Apache Iceberg-Tabellen aufzulösen und an Ihren Pipeline-Arbeitsbereich zu binden.
Wenn Sie diese Funktion verwenden möchten, muss Ihr Dataform-Repository Dataform Core Version 3.0.33 oder höher verwenden.
Interaktive Empfehlungen
Der Data Engineering Agent analysiert den Kompilierungsstatus, den Ausführungsverlauf und den aktiven Konversationsstatus Ihres Arbeitsbereichs, um direkt in der Chat-Oberfläche umsetzbare Empfehlungen zu geben. Diese Vorschläge werden automatisch angezeigt, wenn Sie einen Arbeitsbereich öffnen, und während der gesamten Sitzung, um Empfehlungen für die Einrichtung, Fehlerbehebung und Optimierung zu geben, die Sie bei Ihrem Workflow unterstützen.
Wenn Sie eine Empfehlung verwenden möchten, klicken Sie unter KI-Empfehlungen auf einen der Vorschläge. Dadurch wird der Prompt in die Chateingabeleiste geladen. Sie können ihn bearbeiten oder anpassen, bevor Sie ihn an den Agenten senden. Sie können den Mauszeiger auch auf einen Vorschlag bewegen, um den genauen Prompt zu sehen.
Best Practices
Wenn Sie mit dem Data Engineering-Agenten und Dataform arbeiten, empfehlen wir Folgendes, um die Ergebnisse zu verbessern:
Verwenden Sie Agentenanweisungen für häufige Anfragen. Wenn Sie häufig bestimmte Techniken anwenden oder dieselben Korrekturen am Agent vornehmen, können Sie Agent-Anweisungen als zentralen Ort zum Speichern gängiger Anweisungen und Anfragen verwenden.
Agentenpläne verwenden: Agentenpläne können hilfreich sein, um komplexe Pipeline-Aufgaben aufzuschlüsseln. Agentenpläne können Ihnen auch die Annahmen und Absichten des Agenten zeigen. Wir empfehlen daher, diese Pläne zu prüfen, um sicherzustellen, dass der Agent den richtigen Kontext erhält.
Nachdem Sie einen Plan geprüft haben, können Sie ihn bearbeiten, indem Sie dem Data Engineering-Agenten Feedback und Änderungen mitteilen. Beispiel:
In the plan, ensure that all of the intermediate tables are views.
In einigen Fällen kann es hilfreich sein, den Agenten zu bitten, einen Plan zu erstellen, der nicht Ihre ausdrückliche Genehmigung erfordert. Durch die Planung muss der Data Engineering-Agent seine Aktionen aufschlüsseln, was oft zu besseren Ergebnissen führt. Sie können den Agenten zwingen, einen Plan zu erstellen und automatisch auszuführen. Beispiel:
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.
Schreiben Sie deutlich. Formulieren Sie Ihre Anfrage klar und vermeiden Sie vage Formulierungen. Geben Sie nach Möglichkeit Quell- und Zieldatenquellen an, wenn Sie Prompts erstellen, wie im folgenden Beispiel gezeigt:
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.
Direkte und eingegrenzte Anfragen stellen. Stellen Sie jeweils nur eine Frage und halten Sie Prompts kurz. Bei Prompts mit mehreren Fragen sollten Sie jeden einzelnen Teil der Frage auflisten, um die Klarheit zu verbessern, wie im folgenden Beispiel gezeigt:
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).
Geben Sie explizite Anweisungen und betonen Sie wichtige Begriffe. Sie können wichtige Begriffe oder Konzepte in Ihren Prompts hervorheben und bestimmte Anforderungen als wichtig kennzeichnen, wie im folgenden Beispiel gezeigt:
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 ''.
Geben Sie die Reihenfolge der Vorgänge an. Bei geordneten Aufgaben sollten Sie Ihren Prompt in Listen strukturieren, wobei die aufgelisteten Elemente in kleine, fokussierte Schritte unterteilt sind, wie im folgenden Beispiel gezeigt:
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.
Optimieren und iterieren: Probieren Sie verschiedene Formulierungen und Ansätze aus, um herauszufinden, was die besten Ergebnisse liefert. Wenn der Agent ungültiges SQL oder andere Fehler generiert, können Sie ihn mit Beispielen oder öffentlicher Dokumentation anleiten.
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).
Datenpipelines evaluieren
Mit dem EvalBench-Tool können Sie die Effektivität einer vom Data-Engineering-Agenten generierten Datenpipeline bewerten. EvalBench ist ein Open-Source-Framework, das agentische Multi-Turn-Bewertungen unterstützt. EvalBench fungiert als automatisierte Unit-Test-Suite, mit der Sie Multi-Turn-Szenarien einrichten, LLM-gestützte und deterministische Scorer hinzufügen und den Lebenszyklus Ihrer Dataform-Pipelines verwalten können.
Durch die Simulation von Prompts in natürlicher Sprache in einer isolierten Sandbox misst EvalBench, wie effektiv der Agent Anweisungen versteht, die richtigen Tools aufruft und korrekten Pipelinecode generiert. EvalBench kann Ihre Datenpipelines so prüfen:
- Benutzerdefinierte Regeln validieren: Prüfen Sie, ob der Agent die spezifischen Programmierrichtlinien, Namenskonventionen und Best Practices Ihrer Organisation strikt einhält.
- Code-Regressionen verhindern: Testen Sie Pipeline-Änderungen vor der Bereitstellung, um sicherzustellen, dass Agent-Updates oder Schemaänderungen die vorhandene Funktionalität nicht beeinträchtigen.
- Qualitäts-Benchmarks generieren: Sie erhalten objektive, automatisierte Bewertungen für die SQL-Korrektheit, die Genauigkeit der Toolausführung und die Zuverlässigkeit der Pipeline.
Datenpipeline-Bewertung ausführen
Sie können EvalBench in den folgenden beiden Modi ausführen:
Dynamische Sandbox: EvalBench stellt zu Beginn eines Bewertungslaufs ein neues, temporäres Dataform-Repository und einen Arbeitsbereich bereit, führt die Testszenarien aus und löscht nach Abschluss automatisch alle erstellten Ressourcen. In diesem Modus werden weder Produktionscode, Produktions-Repositories noch BigQuery-Datasets geändert. Außerdem bleiben keine Artefakte in Ihrem Google Cloud -Projekt zurück. Der dynamische Sandbox-Modus eignet sich für automatisierte CI/CD-Pipelines, nächtliche Regressionstests und objektive Benchmark-Bewertungen, bei denen eine strikte Isolierung der Umgebung erforderlich ist.
Statischer Arbeitsbereich: EvalBench stellt eine Verbindung zu einem vorhandenen, vom Nutzer verwalteten Dataform-Repository und -Arbeitsbereich her und überspringt automatisierte Erstellungs- und Löschskripts. In diesem Modus kann der zu bewertende Agent neue SQLX-Dateien im vorhandenen Arbeitsbereich ändern und erstellen, während er Bewertungsfälle verarbeitet. Der statische Arbeitsbereichsmodus eignet sich für aktives Prompt Engineering, Rubrikiteration und lokales Debugging, wenn Sie generierte SQLX-Dateien nach der Ausführung direkt in Ihrem Dataform-Arbeitsbereich prüfen müssen.
Hinweis
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Dienstkonto oder die Nutzeridentität zuzuweisen, die EvalBench ausführt, um die Berechtigungen zu erhalten, die Sie zum Ausführen von EvalBench benötigen:
- Dataform-Administrator (
roles/dataform.admin) - BigQuery Data Editor (
roles/bigquery.dataEditor) - BigQuery Job User (
roles/bigquery.jobUser) -
Bewertungsergebnisse als ZIP-Pakete exportieren: Storage-Objekt-Administrator (
roles/bigquery.objectAdmin)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Bewertung in einer dynamischen Sandbox ausführen
So bewerten Sie Ihre Datenpipeline im dynamischen Sandbox-Modus:
- Folgen Sie der Anleitung, um das Repository zu klonen, die virtuelle Umgebung einzurichten und alle EvalBench-Abhängigkeiten zu installieren. Weitere Informationen finden Sie unter Erste Schritte.
Prüfen Sie im Verzeichnis
datasets/dea-tools/, ob die Beispielkonfigurationsdatei (example_run_config.yaml) die folgenden Zeilen enthält:set_up_script: datasets/dea-tools/scripts/setup_dataform.sh tear_down_script: datasets/dea-tools/scripts/teardown_dataform.sh
Führen Sie EvalBench mit dem folgenden Befehl aus:
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
Ersetzen Sie Folgendes:
PROJECT_ID: die ID des Projekts in Google Cloud.REGION: die Region des Google Cloud-Projekts.
Bewertung in einem statischen Bewertungsarbeitsbereich ausführen
So bewerten Sie Ihre Datenpipeline im statischen Arbeitsbereichsmodus:
- Folgen Sie der Anleitung, um das Repository zu klonen, die virtuelle Umgebung einzurichten und alle Abhängigkeiten zu installieren. Weitere Informationen finden Sie unter Erste Schritte.
Bearbeiten Sie im Verzeichnis
datasets/dea-tools/die Beispielkonfigurationsdatei (example_run_config.yaml), um die Zeilenset_up_scriptundtear_down_scriptauszukommentieren, und fügen Sie die Konfigurationendataform_repositoryunddataform_workspacehinzu:... # 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} ...
Führen Sie EvalBench mit dem folgenden Befehl aus:
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
Ersetzen Sie Folgendes:
PROJECT_ID: die ID des Projekts in Google Cloud.REGION: die Region des Google Cloud-Projekts.REPOSITORY_ID: die ID des Repositorys, das die Datenpipeline enthält.WORKSPACE_ID: die ID des Arbeitsbereichs, der die Datenpipeline enthält.
Optional: Sie können EvalBench auch mit
core_10_cases_suite.yamlausführen, um die Datenpipeline nacheinander mit 10 wichtigen Bewertungsfällen zu testen. Dabei wird die Umgebung isoliert, indem für jeden Testfall ein neues Repository erstellt wird. Führen Sie dazu den folgenden Befehl aus: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 Practices für die Bewertung von Datenpipelines
Um die Leistung und Genauigkeit Ihrer Datenpipeline-Bewertungen mit EvalBench zu verbessern, empfehlen wir Folgendes:
- Suchen Sie in den Bewertungsprotokollen nach Dataform-Workflowaufrufen und BigQuery-Job-IDs. Anhand dieser IDs können Sie generierte Ausführungsartefakte, Kompilierungsergebnisse und Abfragelogs in der Google Cloud Console abgleichen und prüfen.
- Führen Sie immer die Core Evaluation Suite (
--suite_config) aus, bevor Sie Modell- oder Prompt-Änderungen veröffentlichen, um eine vollständige Regressionsabdeckung für verschiedene Data-Engineering-Szenarien zu gewährleisten. - Verwenden Sie
EVAL_DATAFORM_SETUP_ENV_FILES_DIR, um Dateien zur Umgebungseinrichtung wieworkflow_settings.yamlund Basisschemadefinitionen im Testarbeitsbereich vorab zu laden. Diese Einrichtungsdateien sorgen dafür, dass der Agent auf realistischen vorhandenen Umgebungen und nicht auf leeren Arbeitsbereichen aufbaut. - Wenn Sie fehlgeschlagene Bewertungsfälle im dynamischen Sandbox-Modus beheben möchten, kommentieren Sie
tear_down_scriptin Ihrer Ausführungskonfiguration aus, um den Zielarbeitsbereich für die Post-Mortem-Analyse beizubehalten. - Kombinieren Sie immer Cloud-Kompilierungs- und Ausführungsprüfer (
dataform_cloud_compile,dataform_cloud_run) mit LLM-basierten binären Rubriken, um sowohl syntaktische oder Laufzeitfehler als auch allgemeine Logikfehler zu identifizieren. - Aktivieren Sie die BigQuery-Berichterstellung (
<PROJECT_ID>.evalbench.results) und verwenden Sie die generierten Data Studio-Links, um die Erfolgsraten, die Genauigkeit der Toolnutzung und die Effizienz der Prompts im Zeitverlauf zu verfolgen.