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 Agent generiert und organisiert Datenpipeline Code direkt in Dataform-Repositories und ‑Arbeitsbereichen.
- Planerstellung: Der Agent kann seine Überlegungen zusammenfassen und einen Plan erstellen, mit dem Sie den Plan des Agenten überprüfen können, bevor Sie fortfahren.
- Codevalidierung: Der Agent validiert und korrigiert automatisch Kompilierungs fehler in jedem 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 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 für zusätzlichen Kontext in Knowledge Catalog integriert.
- Pipeline-Steuerung: Sie können generierte Agentenpläne überprüfen und anpassen bevor Aktionen ausgeführt werden.
- Optimierung: Der Agent kann die Leistung Ihrer Datenpipeline optimieren.
- Fehlerbehebung und Reparatur: Der Agent kann Fehler in Pipelines beheben und den Code korrigieren.
- Interaktive Empfehlungen: Der Agent gibt zu Beginn und während der gesamten Sitzung interaktive, kontextbezogene Empfehlungen.
Wo kann der Data-Engineering-Agent verwendet werden?
Sie können den Data-Engineering-Agenten mit den folgenden Methoden verwenden:
- Erstellen Sie Datenpipelines über die BigQuery-Pipelines-Oberfläche oder in Dataform.
- Installieren Sie die Google Cloud Data Agent Kit-Erweiterung in Visual Studio Code, um Daten pipelines über Ihre integrierte Entwicklungsumgebung (IDE) zu erstellen.
- Verwenden Sie die Data-Engineering-Agent API.
So verwendet der Data-Engineering-Agent Ihre Daten
Um qualitativ hochwertigere Antworten zu generieren, kann der Data-Engineering-Agent zusätzliche Daten und Metadaten aus BigQuery und Knowledge Catalog abrufen, darunter Beispielzeilen aus BigQuery-Tabellen und Datenprofilscans, die in Knowledge Catalog generiert wurden. Der Agent verwendet diese Daten nicht für das Training, sondern nur als zusätzlichen Kontext während der Agentenkonversationen, um seine Antworten zu verbessern.
Wo verarbeitet der Data-Engineering-Agent Ihre Daten?
Weitere Informationen zu den Standorten, an denen der Data-Engineering-Agent Ihre Daten verarbeitet, finden Sie unter Wo verarbeitet Gemini in BigQuery Ihre Daten.
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 überprü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 eine
Agentenanweisungsdatei,
unterstützt die
@Importsyntax nur Pfade, die mit./,/oder einem Buchstaben beginnen. - Die Datenvorschau-Funktion 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 für 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 (z. B.
INSERT,UPDATE,DELETEoderMERGE) oder DDL-Anweisungen (z. B.CREATE 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 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 dauerhafte Anweisungen speichern können, damit der Agent eine Reihe benutzerdefinierter, vordefinierter Regeln befolgt. Verwenden Sie Agentenanweisungen, wenn die Ergebnisse des Agenten in Ihrer gesamten Organisation einheitlich sein sollen, z. B. bei Namenskonventionen oder um einen Styleguide durchzusetzen.
Wenn Sie Agentenanweisungen für den Data-Engineering-Agenten erstellen möchten, erstellen Sie eine
GEMINI.MD Kontext
Datei
als Agentenanweisungsdatei.
Best Practices für Agentenanweisungsdateien
Wenn Sie Agentenanweisungen verwenden, empfehlen wir Folgendes:
- Alle Dateipfade in Dataform sind relativ zum Stammverzeichnis des Repository. Verwenden Sie relative Pfade für jede
@file.md-Syntax, um Anweisungen ordnungsgemäß inGEMINI.mdzu importieren. - In
GEMINI.mdimportierte Dateien können selbst Importe enthalten, wodurch eine verschachtelte Struktur entsteht. Um eine unendliche Rekursion zu vermeiden, hatGEMINI.mdeine maximale Importtiefe von fünf Ebenen. - Wenn Sie Anweisungen für mehrere Datenpipelines freigeben möchten, speichern Sie sie in einem zentralen Dataform-Repository und verknüpfen Sie sie mit dem Dataform-Arbeitsrepository. 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 auf 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 Anweisungsdatei Datenschichten vorschlagen, um verschiedene Datentypen zu gruppieren.
- Die Verwendung von Überschriften und Listen in der Agentenanweisungsdatei kann dazu beitragen, Anweisungen für den Data-Engineering-Agenten zu organisieren und zu verdeutlichen.
- Geben Sie aussagekräftige Dateinamen an und gruppieren Sie ähnliche Anweisungen in einer Datei. 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 jede Anweisung gilt.
- Iterieren und optimieren Sie Ihre Prompts und Ihren Workflow. Das Verhalten des Agenten ändert sich im Laufe der Zeit mit der Einführung neuer Agentenversionen und Modellupgrades. Daher empfehlen wir, Ihre Regeln mit verschiedenen Prompts zu testen, um Bereiche zu identifizieren, die möglicherweise verbessert werden müssen. Halten Sie Ihre Regeldatei mit allen Änderungen an Ihrer Datenpipeline auf dem neuesten Stand.
Das folgende Beispiel zeigt eine Agentenanweisungsdatei mit dem Namen GEMINI.md, in der unsere Best Practices für die effektive Verwendung des Data-Engineering-Agenten angewendet werden:
### 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 Agentenanweisungen importieren
Sie können auch andere Anweisungsdateien für den Data-Engineering-Agenten mit der @file.md-Syntax in die Datei GEMINI.md importieren. Weitere Informationen finden Sie unter Memory Import Processor.
Automatische Datenaufbereitung
Mit dem Data-Engineering-Agenten können Sie rohe, unverarbeitete Daten in strukturierte Tabellen umwandeln, die für die Datenanalyse geeignet sind. Auf Anfrage nimmt der Agent zuerst bis zu 1.000.000 Datensätze aus jeder Standard- oder externen Tabelle auf. Anschließend führt der Agent eine detaillierte Datenanalyse durch, indem er Profilierungsabfragen für diese Stichprobe ausführt. Nachdem der Agent Datentransformationen generiert hat, wiederholt er diesen Stichproben- und Profilierungsprozess, 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 sind, damit Sie sie überprüfen und optimieren können, bevor eine Aktion ausgeführt wird.
Der Data-Engineering-Agent initiiert auch die Datenaufbereitungsanalyse, wenn Sie eine Rohdatentabelle hinzufügen, z. B. eine CSV-basierte externe Tabelle. Sie können den Plan zur Datenaufbereitung überprüfen und mit Konversationsbefehlen anpassen.
Für die Stichprobenerhebung und ‑profilierung von Daten 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. Ausreißer entfernen, fehlende oder inkonsistente Werte ergänzen (Datenimputation), doppelte Daten korrigieren oder Datenformate standardisieren, z. B. Telefonnummern oder Adressen.
- Strukturtransformationen. Wenn ein Zielschema angegeben ist, kann der Agent Werte aus den Typen
JSON,ARRAYoderSTRUCTentverschachteln oder extrahieren, 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 ermitteln. Anschließend kann der Agent eine sichere Typumwandlung durchführen, um Formatierungskonsistenzen in den Feldern für Datum, Uhrzeit, Datum/Uhrzeit oder Zeitstempel zu beheben.
- Umrechnung von Maßeinheiten. Der Agent kann verschiedene Einheiten in einem Feld 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 seine Transformationslogik zu validieren.
Agentenpläne erstellen und überprüfen
Der Data-Engineering-Agent kann Agentenpläne erstellen, die eine Zusammenfassung und einen Überblick über die Ziele und Schritte enthalten, die zur Erfüllung einer Anfrage erforderlich sind. Wenn Sie dem Agenten komplexe Anfragen stellen, die viele Änderungen erfordern, empfehlen wir, ihn um einen Agentenplan zu bitten, damit Sie die Absichten des Agenten überprüfen können, bevor er Aktionen ausführt. Ein Data-Engineering-Agent-Plan besteht in der Regel aus Folgendem:
- Das Ziel des Agenten für eine bestimmte Anfrage
- Ein allgemeiner Überblick über die Schritte, die der Agent ausführen möchte
- Alle Annahmen des Agenten
- Dateien, die der Agent ändern möchte
- Alle Optimierungs- oder Bereinigungsschritte, die der Agent ausführen möchte
- Ein stufenweiser Ausführungsplan
In Ihrem Prompt können Sie angeben, dass der Plan überprüft und genehmigt werden muss, damit der Agent keine Aktion ohne Ihre ausdrückliche Genehmigung ausführt. 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. Dies kann vorkommen, wenn ein Prompt zu mehrdeutig ist oder der Agent mehr Klarheit benötigt, um Ihre Anfrage zu erfüllen.
Best Practices zur 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 personenbezogenen Daten (personenidentifizierbare Informationen), für die spezielle Anweisungen zur Verarbeitung erforderlich sind, oder um übereinstimmende Spalten mit unterschiedlichen Namen in verschiedenen Tabellen zu identifizieren.
Knowledge Catalog verwendet auch die Daten profilierung, wodurch der Agent ein besseres Verständnis der Datenverteilung in Tabellenspalten erhält und spezifischere Zusicherungen zur Datenqualität erstellen kann.
Der Agent kann Knowledge Catalog auch verwenden, um Apache Iceberg-Tabellen zu ermitteln und abzufragen. Weitere Informationen finden Sie unter Pipelines für Apache Iceberg-Tabellen erstellen.
Einer vorhandenen Tabelle Prüfungen der Datenqualität hinzufügen
Wenn Sie den Agenten auffordern, Qualitätsprüfungen hinzuzufügen, leitet er auf der Grundlage des Schemas und der Stichproben angemessene Prüfungen für die Tabelle ab. Sie können dem Prompt auch Zusicherungen hinzufügen. Beispiel:
Add data quality checks for bigquery-public-data.thelook_ecommerce.users.
Datenpipelines optimieren
Sie können den Agenten auffordern, Ihre Datenpipelines zu optimieren. Beim Generieren von DDL für neue Tabellen empfiehlt der Data-Engineering-Agent die Partitionierung und das Clustering basierend auf den analysierten Mustern der Datennutzung. Außerdem kann der Agent automatisch andere Pipeline-Optimierungen anwenden. Beispiele für mögliche Optimierungen:
- Spaltenbereinigung, um die Menge der aus dem Speicher gelesenen Daten zu reduzieren, was sich hauptsächlich auf Kosten und Leistung auswirkt.
- Prädikat-Pushdowns, um Daten frühzeitig im Ausführungsplan zu filtern und so die Menge der Daten, die von nachfolgenden Vorgängen verarbeitet werden, erheblich zu reduzieren.
- Eliminierung gemeinsamer Teilausdrücke, um die Effizienz zu verbessern, indem die gemeinsame Transformationslogik nur einmal identifiziert und berechnet wird. So werden ineffiziente Praktiken wie das mehrmalige Scannen und Verknüpfen 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 für Apache Iceberg-Tabellen erstellen
Der Data-Engineering-Agent unterstützt das Generieren und Kompilieren von Dataform-Pipelines für Apache Iceberg-Tabellen, die vom Lakehouse-Laufzeitkatalog (ehemals BigLake Metastore) verwaltet werden. Mit dieser Funktion können Sie regionale Tabellen im Open-Source-Format (gespeichert in Cloud Storage) direkt neben Ihren BigQuery-Tabellen abfragen und verknüpfen. Weitere Informationen finden Sie unter Konzepte für Apache Iceberg REST-Katalogendpunkte.
Sie können den 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 auf Apache Iceberg-Tabellen mit Standardnamen in natürlicher Sprache oder logischen Kennungen verweisen, z. B. the StackOverflow post history table oder post_history. Der Agent ruft automatisch semantische Katalogsuchen mit Knowledge Catalog auf, um die richtigen Apache Iceberg-Tabellen aufzulösen und mit Ihrem Pipeline-Arbeitsbereich zu verknüpfen.
Um diese Funktion zu verwenden, muss in Ihrem Dataform-Repository Dataform Core Version 3.0.33 oder höher verwendet werden.
Interaktive Empfehlungen
Der Data-Engineering-Agent analysiert den Kompilierungsstatus Ihres Arbeitsbereichs, den Ausführungsverlauf und den aktiven Konversationsstatus, 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 und Sie so bei Ihrem Workflow zu unterstützen.
Wenn Sie eine Empfehlung verwenden möchten, klicken Sie auf einen der Vorschläge unter KI-Empfehlungen. Dadurch wird der Prompt in die Eingabezeile des Chats geladen. Sie können ihn bearbeiten oder anpassen, bevor Sie ihn an den Agenten senden. Sie können auch den Mauszeiger auf einen Vorschlag bewegen, um den genauen Prompt zu sehen.
Best Practices
Um die Ergebnisse bei der Arbeit mit dem Data-Engineering-Agenten und Dataform zu verbessern, empfehlen wir Folgendes:
Verwenden Sie Agentenanweisungen für häufige Anfragen. Wenn Sie häufig bestimmte Techniken anwenden oder dem Agenten immer wieder dieselben Korrekturen geben, verwenden Sie Agentenanweisungen als zentralen Ort, um häufige Anweisungen und Anfragen zu speichern.
Nutzen Sie Agentenpläne. 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. Daher empfehlen wir, diese Pläne zu überprüfen, um sicherzustellen, dass der Agent den richtigen Kontext erhält.
Nachdem Sie einen Plan überprüft haben, können Sie ihn bearbeiten, indem Sie dem Data-Engineering-Agenten Feedback und Änderungen geben. 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. Wenn der Agent einen Plan erstellt, muss er seine Aktionen aufschlüsseln, was oft zu besseren Ergebnissen führt. Sie können den Agenten zwingen, einen Plan zu erstellen und ihn 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.
Formulieren Sie klar. Formulieren Sie Ihre Anfrage klar und vermeiden Sie Unklarheiten. Geben Sie nach Möglichkeit Quell- und Zieldatenquellen an, wenn Sie einen Prompt 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.
Formulieren Sie direkte und gezielte Anfragen. Stellen Sie jeweils nur eine Frage und halten Sie die Prompts kurz. Bei Prompts mit mehr als einer Frage sollten Sie jeden Teil der Frage einzeln 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 heben Sie wichtige Begriffe hervor. 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 strukturieren Sie Ihren Prompt in Listen, wobei die aufgeführten Elemente in kleine, fokussierte Schritte unterteilt werden, 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 Sie. 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, geben Sie ihm Beispiele oder verweisen Sie auf öffentliche Dokumentation.
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).