Data-Engineering-Agenten zum Erstellen und Ändern von Datenpipelines verwenden
In diesem Dokument wird beschrieben, wie Sie den Data Engineering Agenten in BigQuery und Dataform verwenden, um Daten pipelines zu erstellen und zu ändern.
Mit dem Data-Engineering-Agenten können Sie Datenpipelines erstellen, ändern und verwalten, um Daten in BigQuery zu laden und zu verarbeiten. Mit dem Data-Engineering-Agenten können Sie Prompts in natürlicher Sprache verwenden, um Datenpipelines aus verschiedenen Datenquellen zu generieren oder vorhandene Datenpipelines an Ihre Data-Engineering-Anforderungen anzupassen.
Der Agent generiert und organisiert Datenpipelinecode direkt in Dataform-Repositories. Der Agent arbeitet im Dataform-Arbeitsbereich, sodass Dataform-Pipelines automatisch für den Agenten verfügbar sind.
Weitere Beispiele für Prompts, die Sie mit dem Data-Engineering-Agenten verwenden können, finden Sie unter Beispiel-Prompts.
Sie können auch die Data Engineering Agent API verwenden, die das A2A-Protokoll verwendet, um mit dem Agenten zu interagieren.
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 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.
Hinweis
Führen Sie die Schritte in diesem Abschnitt aus, bevor Sie den Data-Engineering-Agenten verwenden.
Gemini in BigQuery aktivieren
Achten Sie darauf, dass Gemini in BigQuery für Ihr Google Cloud Projekt aktiviert ist. Weitere Informationen finden Sie unter Gemini in BigQuery einrichten.
Erforderliche APIs aktivieren
Console
Aktivieren Sie die folgenden APIs in der Google Cloud Console für das Google Cloud Projekt, das Sie mit der Conversational Analytics API verwenden.
Gemini Data Analytics API aktivieren
Gemini für Google Cloud API aktivieren
gcloud
Wenn Sie die Gemini Data Analytics API, die Gemini for Google Cloud
API und die BigQuery API aktivieren möchten, verwenden Sie die Google Cloud CLI
und führen Sie die folgenden gcloud
services enable-Befehle aus:
gcloud services enable geminidataanalytics.googleapis.com --project=PROJECT_ID gcloud services enable cloudaicompanion.googleapis.com --project=PROJECT_ID gcloud services enable bigquery.googleapis.com --project=PROJECT_ID
Ersetzen Sie PROJECT_ID durch die Google Cloud Projekt-ID Ihres Projekts.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, um die Berechtigung zu erhalten, die Sie zur Verwendung des Data-Engineering-Agenten benötigen:
- Dataform-Code-Editor (
roles/dataform.codeEditor) - BigQuery-Jobnutzer (
roles/bigquery.jobUser) - Gemini Data Analytics Stateless Chat User (
roles/geminidataanalytics.dataAgentStatelessUser)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierte Rolle enthält die
geminidataanalytics.locations.useDataEngineeringAgent
Berechtigung,
die für die Verwendung des Data-Engineering-Agenten erforderlich ist.
Sie können diese Berechtigung auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Voraussetzungen für die Knowledge Catalog-Einbindung
Bitten Sie Ihren Administrator, Ihnen für das Projekt die IAM-Rolle Dataplex Catalog Editor (roles/dataplex.catalogEditor) zuzuweisen, damit Sie die Berechtigung erhalten, die Sie zum Einbinden des Data-Engineering-Agenten in Knowledge Catalog benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierte Rolle enthält die
geminidataanalytics.locations.useDataEngineeringAgent
Berechtigung,
die für die Einbindung des Data-Engineering-Agenten in Knowledge Catalog erforderlich ist.
Sie können diese Berechtigung auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Sie müssen auch die Knowledge Catalog API aktivieren.
Daten mit Cloud Key Management Service-Schlüsseln verschlüsseln
Sie können Daten auf Dataset- oder Projektebene mit den standardmäßigen kundenverwalteten Cloud Key Management Service-Schlüsseln in BigQuery verschlüsseln. Weitere Informationen finden Sie unter Standardschlüssel für Datasets festlegen und Standardschlüssel für Projekte festlegen.
Sie können den Pipelinecode auf Projektebene verschlüsseln, indem Sie einen standardmäßigen Dataform Cloud Key Management Service-Schlüssel festlegen.
VPC Service Controls-Perimeter konfigurieren
Wenn Sie VPC Service Controls verwenden, müssen Sie den Perimeter so konfigurieren, dass Dataform, BigQuery und die Conversational Analytics API geschützt sind. Weitere Informationen finden Sie unter Dataform, BigQuery, und Conversational Analytics API.
Datenpipeline mit dem Data-Engineering-Agenten generieren
Wenn Sie den Data-Engineering-Agenten in BigQuery verwenden möchten, wählen Sie eine der folgenden Optionen aus:
BigQuery-Pipelines
Sie können den Data-Engineering-Agenten in der BigQuery-Pipelines-Oberfläche so verwenden:
Rufen Sie die Seite BigQuery auf.
Klicken Sie im Abfrageeditor auf arrow_drop_down Neu erstellen > Pipeline.
Wählen Sie eine Option für die Anmeldedaten für die Ausführung aus und klicken Sie dann auf Jetzt starten. Diese Anmeldedaten werden nicht vom Agenten verwendet, sind aber erforderlich, um die generierte Datenpipeline auszuführen.
Klicken Sie auf Agenten für Datenpipelines testen.
Geben Sie im Feld Agenten fragen einen Prompt in natürlicher Sprache ein, um eine Datenpipeline zu generieren, z. B.:
Create dimension tables for a taxi trips star schema from new_york_taxi_trips.tlc_green_trips_2022. Generate surrogate keys and all the descriptive attributes.Klicken Sie nach der Eingabe eines Prompts auf Senden.
Der Data-Engineering-Agent generiert eine Datenpipeline basierend auf Ihrem Prompt.
Der Data-Engineering-Agent generiert einen Vorschlag für eine Datenpipeline. Sie können auf einen Pipelineknoten klicken, um die generierte SQLX-Abfrage zu prüfen. Wenn Sie die vom Agenten vorgeschlagene Datenpipeline anwenden möchten, klicken Sie auf Anwenden.
Dataform
Sie können den Data-Engineering-Agenten in Dataform so verwenden:
Rufen Sie Dataform auf.
Wählen Sie ein Repository aus.
Wählen Sie einen Entwicklungsarbeitsbereich aus oder erstellen Sie einen.
Klicken Sie im Arbeitsbereich auf Agenten fragen.
Geben Sie im Prompt Agenten fragen einen Prompt in natürlicher Sprache ein, um eine Datenpipeline zu generieren, z. B.:
Create dimension tables for a taxi trips star schema from new_york_taxi_trips.tlc_green_trips_2022. Generate surrogate keys and all the descriptive attributes.Klicken Sie nach der Eingabe eines Prompts auf Senden.
Nachdem Sie Ihren Prompt gesendet haben, generiert der Data-Engineering-Agent eine Datenpipeline und ändert Dataform-SQLX-Dateien basierend auf Ihrem Prompt. Der Agent wendet diese Änderungen direkt auf Ihre Arbeitsbereichsdateien an.
Datenpipeline bearbeiten
Wenn Sie Ihre Datenpipeline bearbeiten möchten, klicken Sie auf Agenten fragen und geben Sie dann einen Prompt ein, der eine Änderung an der Datenpipeline vorschlägt.
Prüfen Sie die vom Data-Engineering-Agenten vorgeschlagenen Änderungen und klicken Sie dann auf Anwenden, um die Änderungen zu übernehmen.
Sie können eine SQLX-Abfrage auch manuell bearbeiten, indem Sie einen Pipelineknoten auswählen und dann auf Öffnen klicken.
Datenpipeline prüfen
Sie können auf einen Pipelineknoten in einer vom Data-Engineering-Agenten generierten Datenpipeline klicken, um ihn zu prüfen.
- Auf dem Tab Konfiguration wird die generierte SQLX-Abfrage angezeigt, die mit dem Knoten verknüpft ist.
- Auf dem Tab Datenvorschau werden die Eingabe- und Ausgabetabelle der Datei angezeigt. Sie können eine Vorschau Ihrer Datentransformation über diesen Knoten aufrufen, indem Sie auf Aufgabe ausführen klicken, um die Aufgabe mit oder ohne Abhängigkeiten auszuführen.
Fehler in Datenpipelines beheben
Wenn bei der Generierung von Datenpipelines Fehler auftreten, prüfen Sie, ob Sie alle Voraussetzungen für die Ausführung des Data-Engineering-Agenten erfüllt haben. Weitere Informationen finden Sie unter Hinweis.
Gemini Cloud Assist-Prüfung ausführen
Zur weiteren Fehlerbehebung bei Pipelines können Sie mit dem Data-Engineering-Agenten eine Ursachenanalyse durchführen und Empfehlungen zur Fehlerbehebung erhalten.
Diese Funktion verwendet Gemini Cloud Assist-Prüfungen (Vorschau) und ist nur für Nutzer mit einem Premium-Support vertrag verfügbar. Weitere Informationen zum Aktivieren von Gemini Cloud Assist-Prüfungen finden Sie unter Probleme mit Gemini Cloud Assist-Prüfungen beheben.
Mit dem Data-Engineering-Agenten können Sie Fehler in Datenpipelines so beheben:
- Klicken Sie in Ihrer Pipeline oder Ihrem Entwicklungsarbeitsbereich auf den Tab Ausführungen.
Suchen Sie in der Liste der Ausführungen nach der fehlgeschlagenen Ausführung der Datenpipeline. Fehlgeschlagene Ausführungen werden in der Spalte Status angezeigt.
Bewegen Sie den Mauszeiger auf das Symbol und klicken Sie dann auf Prüfen. Der Data-Engineering-Agent führt eine Ursachenanalyse für die Ausführung Ihrer Datenpipeline auf Fehler durch.
Nach Abschluss der Analyse generiert der Data-Engineering-Agent einen Bericht im Abschnitt Beobachtungen und Hypothesen. Der Bericht enthält Folgendes:
- Beobachtungen und Datenpunkte, die aus den Ausführungsprotokollen der Datenpipeline extrahiert wurden.
- Wahrscheinliche Ursachen für den Fehler.
- Eine Reihe umsetzbarer Schritte oder Empfehlungen zur Behebung des identifizierten Problems.
Mit dem Bericht zur Fehlerbehebung des Data-Engineering-Agenten können Sie die Empfehlungen manuell umsetzen. Sie können den Data-Engineering-Agenten auch anweisen, die Korrektur für Sie vorzunehmen. Gehen Sie dazu so vor:
- Kopieren Sie die Vorschläge im Bericht zur Fehlerbehebung.
- Kehren Sie zum Data-Engineering-Agenten zurück:
- Wenn Sie BigQuery-Pipelines verwenden, rufen Sie die Seite „Pipelines“ auf und klicken Sie dann auf Agenten fragen.
- Wenn Sie Dataform verwenden, klicken Sie auf Agenten fragen.
- Fügen Sie die Vorschläge in den Prompt ein und weisen Sie den Data-Engineering-Agenten an, die Korrekturen direkt an Ihrer Datenpipeline vorzunehmen.
- Klicken Sie auf Senden.
Anweisungen für den Agenten erstellen
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 zur Durchsetzung eines Styleguides.
Sie können eine GEMINI.MD Kontext
Datei
als Agentenanweisungsdatei für den Data-Engineering-Agenten erstellen. Sie können Agentenanweisungsdateien für die Verwendung in Ihrem lokalen Arbeitsbereich erstellen oder dieselben Anweisungsdateien in mehreren Datenpipelines mit einem externen Repository verwenden.
So erstellen Sie Agentenanweisungen:
- Klicken Sie unter Agenten fragen auf Pipelineanweisungen.
- Klicken Sie im Bereich Anweisungen für Pipeline auf Anweisungsdatei erstellen.
Geben Sie in der angezeigten
GEMINI.MD-Datei Ihre Anweisungen in natürlicher Sprache ein.Das folgende Beispiel zeigt eine Agentenanweisungsdatei mit mehreren Regeln:
1. All event-specific tables MUST be prefixed with `cs_event_`. 2. The primary key for any player activity table is a composite key of `player_id` and `event_timestamp_micros`. 3. Filter out any player actions where `mana_spent` is greater than `max_mana_pool`. This is considered a data anomaly.Klicken Sie auf Speichern.
Informationen zur optimalen Strukturierung Ihrer Agentenanweisungsdateien finden Sie unter Best Practices für Agentenanweisungsdateien.
Agentenanweisungen aus einem externen Repository laden
Wenn Sie eine Reihe von Agentenanweisungen in mehreren Datenpipelines wiederverwenden möchten, verknüpfen Sie ein externes Repository:
- Klicken Sie unter Agenten fragen auf Pipelineanweisungen.
- Wählen Sie unter Externes Repository die Option Anweisungen aus externem Repository aus.
- Geben Sie in den bereitgestellten Feldern ein Repository an, das Agentenanweisungen enthält, die Sie mit Ihrer Datenpipeline verwenden möchten.
- Klicken Sie auf Speichern.
Beispiel-Prompts
In den folgenden Abschnitten finden Sie Beispiel-Prompts, die Sie mit dem Data-Engineering-Agenten verwenden können, um Ihre Datenpipeline zu entwickeln.
Vorhandene Daten in einer neuen Tabelle zusammenfassen
Mit diesem Prompt leitet der Data-Engineering-Agent anhand des Schemas und der Beispiele die Datengruppierung nach Schlüssel ab. Der Agent richtet in der Regel eine neue Tabellenkonfiguration mit Tabellen- und Spaltenbeschreibungen ein.
Create a daily sales report from the
bigquery-public-data.thelook_ecommerce.order_items table into a
reporting.daily_sales_aggregation table.
Neue abgeleitete Spalte erstellen und der neuen Tabelle Datenqualitätsprüfungen hinzufügen
Dieser Prompt zeigt, wie Sie gleichzeitig eine Tabelle und eine Spalte hinzufügen und Qualitätsprüfungen für die Tabelle angeben:
Create a new table named staging.products from
bigquery-public-data.thelook_ecommerce.products and add a calculated column
named gross_profit, which is the retail_price minus the cost.
Also, add the following assertions: ID must not be null and must be unique.
The retail_price must be greater than or equal to the cost. The department
column can only contain 'Men' or 'Women'.
UDFs als Teil der Modelldefinition erstellen
Der Data-Engineering-Agent kann auch die DDL einrichten, um benutzerdefinierte Funktionen (User-Defined Functions, UDFs) zu erstellen. Der Agent erstellt die UDF zwar nicht, Sie können sie aber erstellen, indem Sie die Datenpipeline ausführen. Diese UDFs können in Modelldefinitionen in Ihrer Datenpipeline verwendet werden.
Create a user-defined function (UDF) named get_age_group that takes an integer
age as input and returns a string representing the age group ('Gen Z',
'Millennial', 'Gen X', 'Baby Boomer').
Use this UDF on the age column from the
bigquery-public-data.thelook_ecommerce.users table to create a new view called
reporting.user_age_demographics that includes user_id, age, and the calculated
age_group.
Best Practices
Um die Ergebnisse bei der Arbeit mit dem Data-Engineering-Agenten und Dataform zu verbessern, empfehlen wir Folgendes:
Agentenanweisungen für häufige Anfragen verwenden. Wenn Sie häufig bestimmte Techniken anwenden oder dem Agenten häufig dieselben Korrekturen geben, verwenden Sie Agentenanweisungen als zentralen Ort zum Speichern häufiger Anweisungen und Anfragen.
Agentenpläne nutzen : Agentenpläne können hilfreich sein, um komplexe Pipelineaufgaben 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 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 keine ausdrückliche Genehmigung von Ihnen erfordert. Durch die Erstellung eines Agentenplans wird der Data-Engineering-Agent gezwungen, seine Aktionen aufzuschlü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.
Deutlich schreiben. Formulieren Sie Ihre Anfrage klar und vermeiden Sie Unklarheiten. Geben Sie nach Möglichkeit bei der Eingabe von Prompts Quell- und Zieldatenquellen an, 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 gezielte Anfragen stellen. Stellen Sie jeweils nur eine Frage und halten Sie die Prompts kurz. Bei Prompts mit mehr als einer Frage sollten Sie jeden einzelnen Teil der Frage aufzählen, 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).
Genaue Anweisungen geben und wichtige Begriffe hervorheben. 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 ''.
Reihenfolge der Vorgänge angeben. Bei geordneten Aufgaben strukturieren Sie Ihren Prompt in Listen, wobei die aufgeführten 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, leiten Sie den Agenten mit Beispielen oder öffentlicher Dokumentation an.
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).