Data-Engineering-Agenten zum Erstellen und Ändern von Datenpipelines verwenden
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 zum Erfassen 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, den Sie vor dem Fortfahren prüfen und bestätigen können.
- Codevalidierung: Der Agent validiert und korrigiert automatisch Kompilierungsfehler des generierten Codes, um sicherzustellen, dass die Datenpipeline funktioniert.
- Automatische Datenaufbereitung: Der Agent bereitet Daten auf und wandelt Rohdaten ohne manuellen Eingriff in strukturierte Tabellen um.
- Benutzerdefinierte Anweisungen: Der Agent unterstützt benutzerdefinierte Agent-Anweisungen, mit denen Sie bestimmte Regeln und wiederverwendbare Richtlinien in natürlicher Sprache definieren können.
- Externer Kontext: Der Agent ist zur Bereitstellung von zusätzlichem Kontext in den Knowledge Catalog eingebunden.
- Pipeline-Steuerung: Sie können generierte Agent-Pläne prüfen und anpassen, bevor Aktionen ausgeführt werden.
- Optimierung: Der Agent kann die Leistung in Ihrer Datenpipeline optimieren.
- Fehlerbehebung und Reparatur: Der Agent kann Fehler in Pipelines beheben und den Code korrigieren.
Weitere Beispiele für Prompts, die Sie mit dem Data-Engineering-Agenten verwenden können, finden Sie unter Beispiel-Prompts.
Beschränkungen
Für den Data Engineering Agent gelten die folgenden Einschränkungen:
- Der Data Engineering-Agent ist ein Pre-GA-Angebot und nicht für die Produktion vorgesehen.
- Der Data Engineering Agent unterstützt keine Befehle in natürlicher Sprache für die folgenden Dateitypen:
- Notebooks
- Datenvorbereitung
- JavaScript in SQLX
- 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 SQL-Code, der von nicht vorhandenen Zwischenressourcen abhängt, nicht ohne vollständigen Pipelineaufruf (nutzergesteuert) validieren.
- Der Data Engineering Agent kann keine Weblinks oder URLs durchsuchen, die über Anweisungen oder direkte Prompts bereitgestellt werden.
- Beim Importieren von Dateien in eine Datei mit Agent-Anweisungen werden mit der Importsyntax
@nur Pfade unterstützt, die mit./,/oder einem Buchstaben beginnen. - Die Funktion Datenvorschau wird nur für Tabellen, Deklarationen oder Abfragen unterstützt, bei denen das Flag
hasOutputauftruegesetzt ist.
So verwendet der Data Engineering Agent Ihre Daten
Um qualitativ hochwertigere Agent-Antworten 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 Datenprofilen, die in Knowledge Catalog generiert wurden. Der Agent verwendet diese Daten nicht zum Trainieren, sondern nur als zusätzlichen Kontext während der Unterhaltungen, um seine Antworten zu optimieren.
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.
Hinweis
Führen Sie die Schritte in diesem Abschnitt aus, bevor Sie den Data Engineering Agent verwenden.
Gemini in BigQuery aktivieren
Achten Sie darauf, dass Gemini in BigQuery für IhrGoogle 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 Projekt in Google Cloud, das Sie mit der Conversational Analytics API verwenden.
Gemini Data Analytics API aktivieren
gcloud
Wenn Sie die Gemini Data Analytics API, die Gemini for Google CloudAPI 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 dabei PROJECT_ID durch die ID Ihres Projekts in Google Cloud .
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 Agent benötigen:
-
Dataform-Code-Editor (
roles/dataform.codeEditor) -
BigQuery Job User (
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 Berechtigung geminidataanalytics.locations.useDataEngineeringAgent, die für die Verwendung des Data Engineering Agent 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 die IAM-Rolle Dataplex Catalog Editor (roles/dataplex.catalogEditor) für das Projekt zuzuweisen, um die Berechtigung zu erhalten, die Sie zum Integrieren des Data Engineering Agent 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 Berechtigung geminidataanalytics.locations.useDataEngineeringAgent, die erforderlich ist, um den Data Engineering Agent in Knowledge Catalog einzubinden.
Sie können diese Berechtigung auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Sie müssen außerdem 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 vom Kunden verwalteten Cloud Key Management Service-Schlüsseln in BigQuery verschlüsseln. Weitere Informationen finden Sie unter Standardschlüssel für ein Dataset festlegen und Standardschlüssel für ein Projekt festlegen.
Sie können 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 Agent in BigQuery verwenden möchten, wählen Sie eine der folgenden Optionen aus:
BigQuery-Pipelines
So verwenden Sie den Data Engineering Agent in der BigQuery-Pipelines-Benutzeroberfläche:
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 auf Jetzt starten. Diese Anmeldedaten werden nicht vom Agent verwendet, sind aber erforderlich, um die generierte Datenpipeline auszuführen.
Klicken Sie auf Agent-Funktionen für Datenpipeline ausprobieren.
Geben Sie im Feld KI-Agent fragen einen Prompt in natürlicher Sprache ein, um eine Datenpipeline zu erstellen, 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 Agent vorgeschlagene Datenpipeline anwenden möchten, klicken Sie auf Anwenden.
Dataform
Sie können den Data Engineering Agent 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 Agent fragen.
Geben Sie im angezeigten Prompt Agent 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 den 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 Arbeitsbereichdateien an.
Datenpipeline bearbeiten
Wenn Sie Ihre Datenpipeline bearbeiten möchten, klicken Sie auf Agent fragen und geben Sie dann einen Prompt ein, in dem Sie eine Änderung an der Datenpipeline vorschlagen.
Prüfen Sie die vom Data-Engineering-Agenten vorgeschlagenen Änderungen und klicken Sie dann auf Übernehmen, um die Änderungen zu übernehmen.
Sie können eine SQLX-Abfrage auch manuell bearbeiten. Wählen Sie dazu einen Pipelineknoten aus und klicken Sie auf Öffnen.
Datenpipeline prüfen
Sie können in einer vom Data-Engineering-Agenten generierten Datenpipeline auf einen Pipelineknoten klicken, um ihn zu prüfen.
- Auf dem Tab Konfiguration wird die generierte SQLX-Abfrage angezeigt, die dem Knoten zugeordnet ist.
- Auf dem Tab Datenvorschau werden die Eingabe- und Ausgabetabelle der Datei angezeigt. Sie können sich eine Vorschau Ihrer Datentransformation über diesen Knoten ansehen, indem Sie auf Task ausführen klicken, um die Task mit oder ohne Abhängigkeiten auszuführen.
Fehler bei Datenpipelines beheben
Wenn bei der Generierung der Datenpipeline Fehler auftreten, prüfen Sie, ob Sie alle Voraussetzungen für die Ausführung des Data Engineering-Agents erfüllt haben. Weitere Informationen finden Sie unter Vorbereitung.
Wenn bei der Ausführung der Datenpipeline Fehler auftreten, können Sie den Data Engineering Agent auffordern, Fehler in der Datenpipeline zu diagnostizieren und Empfehlungen zur Fehlerbehebung zu geben. Der Data Engineering-Agent wird in Gemini Cloud Assist-Prüfungen eingebunden, um eine Ursachenanalyse durchzuführen und Empfehlungen zur Fehlerbehebung zu geben.
Mit dem Data-Engineering-Agenten können Sie Fehler in Datenpipelines mit den folgenden Schritten beheben:
- Klicken Sie in Ihrer Pipeline oder Ihrem Entwicklungsarbeitsbereich auf den Tab Ausführungen.
Suchen Sie in der Liste der Ausführungen nach dem fehlgeschlagenen Lauf der Datenpipeline. Fehlerhafte Läufe werden in der Spalte Status angezeigt.
Bewegen Sie den Mauszeiger auf das Symbol und klicken Sie auf Untersuchen. Der Data Engineering Agent führt eine Ursachenanalyse für Fehler bei der Ausführung Ihrer Datenpipeline durch.
Nach Abschluss der Analyse generiert der Data Engineering Agent einen Bericht im Abschnitt Observations and Hypothesis (Beobachtungen und Hypothese). Der Bericht enthält Folgendes:
- Beobachtungen und Datenpunkte, die aus den Ausführungsprotokollen der Datenpipeline extrahiert wurden.
- Mögliche Ursachen für den Fehler.
- Eine Reihe von umsetzbaren Schritten oder Empfehlungen zur Behebung des Problems.
Mithilfe des Berichts zur Fehlerbehebung des Data Engineering Agent können Sie die Empfehlungen manuell umsetzen. Sie können den Data Engineering Agent auch anweisen, die Korrektur für Sie vorzunehmen. Gehen Sie dazu so vor:
- Kopieren Sie die Vorschläge aus dem Bericht zur Fehlerbehebung.
- Zurück zum Data Engineering Agent:
- Wenn Sie BigQuery-Pipelines verwenden, rufen Sie die Seite „Pipelines“ auf und klicken Sie auf Kundenservicemitarbeiter fragen.
- Wenn Sie Dataform verwenden, klicken Sie auf Agent fragen.
- Fügen Sie die Vorschläge in den Prompt ein und weisen Sie den Data Engineering-Agent an, die Korrekturen direkt an Ihrer Datenpipeline vorzunehmen.
- Klicken Sie auf Senden.
Zusätzliche Agent-Funktionen und Anpassungen
In den folgenden Abschnitten werden zusätzliche Agent-Funktionen und andere Methoden zum Anpassen des Data Engineering Agent beschrieben.
Anweisungen für den Agenten erstellen
Agent-Anweisungen 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 Agent-Anweisungen, wenn die Ergebnisse des Agents in Ihrer gesamten Organisation einheitlich sein sollen, z. B. bei Namenskonventionen oder um einen Styleguide durchzusetzen.
Sie können eine GEMINI.MD-Kontextdatei als Agent-Anweisungsdatei für den Data Engineering Agent erstellen. Sie können Agent-Anweisungsdateien für die Verwendung in Ihrem lokalen Arbeitsbereich erstellen oder dieselben Anweisungsdateien in mehreren Datenpipelines mit einem externen Repository verwenden.
So erstellen Sie Agent-Anweisungen:
- Klicken Sie unter Agent fragen auf Pipeline-Anweisungen.
- Klicken Sie im Bereich Anleitung für Pipeline auf Anleitungsdatei erstellen.
Geben Sie in der angezeigten Datei
GEMINI.MDIhre Anweisungen in natürlicher Sprache ein.Das folgende Beispiel zeigt eine Datei mit Agent-Anweisungen 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 Agent-Anweisungsdateien finden Sie unter Best Practices für Agent-Anweisungsdateien.
Agent-Anweisungen aus einem externen Repository laden
Wenn Sie eine Reihe von Agent-Anweisungen in mehreren Datenpipelines wiederverwenden möchten, verknüpfen Sie ein externes Repository:
- Klicken Sie unter Agent fragen auf Pipeline-Anweisungen.
- Wählen Sie unter Externes Repository die Option Anleitungen aus externem Repository verwenden aus.
- Geben Sie in den dafür vorgesehenen Feldern ein Repository an, das Agent-Anweisungen enthält, die Sie mit Ihrer Datenpipeline verwenden möchten.
- Klicken Sie auf Speichern.
Zusätzliche lokale Dateien als Agent-Anweisungen importieren
Sie können auch andere Anweisungsdateien für den Data Engineering Agent mit der @file.md-Syntax in die GEMINI.md-Datei importieren. Weitere Informationen finden Sie unter Memory Import Processor.
Automatisches Data Wrangling
Mit dem Data-Engineering-Agenten können Sie rohe, unverarbeitete Daten in strukturierte Tabellen umwandeln, die sich für die Datenanalyse eignen. Auf Anfrage werden vom Agent zuerst bis zu 1.000.000 Datensätze aus jeder Standard- oder externen Tabelle abgerufen. Der Agent führt dann eine detaillierte Datenanalyse durch, indem er Profiling-Abfragen für dieses Beispiel ausführt. Nachdem der Agent Datentransformationen generiert hat, wiederholt er diesen Sampling- und Profilerstellungsprozess, um die Qualität der Transformationen zu bewerten. Diese Transformationen können das Beheben von Dateninkonsistenzen, Ausreißern oder Typkonflikten umfassen. Der Data Engineering Agent erstellt dann einen Plan mit den vorgeschlagenen Schritten zur Datenaufbereitung, den Sie prüfen und optimieren können, bevor Maßnahmen ergriffen werden.
Der Data Engineering-Agent initiiert die Datenbereinigungsanalyse auch immer dann, 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 Datenstichprobenerhebung und ‑profilerstellung werden BigQuery-Ressourcen verwendet. Die BigQuery-Preise gelten.
Der Data Engineering Agent unterstützt die folgenden Transformationen für die Datenaufbereitung:
- Datenbereinigung Der Agent kann Rohdaten analysieren und Möglichkeiten zur Bereinigung vorschlagen, z. B. Ausreißer entfernen, fehlende oder inkonsistente Werte ergänzen (Datenimputation), doppelte Daten korrigieren oder Datenformate standardisieren, z. B. Telefonnummern oder Adressen.
- Strukturelle Transformationen. Wenn ein Zielschema angegeben wird, kann der Agent Werte aus den Typen
JSON,ARRAYoderSTRUCTentnesten oder extrahieren, mehrere Spalten in einer zusammenführen oder eine Spalte in mehrere Spalten aufteilen. - Erkennung und Konvertierung von Datentypen. Der Agent kann die Daten analysieren, um die entsprechenden Feldtypen zu ermitteln. Der Agent kann dann sicheres Typecasting durchführen, um Formatierungsabweichungen in den Feldern „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 die Transformationslogik zu validieren.
Agent-Pläne erstellen und prü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 Agent komplexe Anfragen mit vielen erforderlichen Änderungen senden, empfehlen wir, den Agent zu bitten, Ihnen einen Agent-Plan zu erstellen, damit Sie die Absichten des Agents ü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
- Allgemeiner Überblick über die Schritte, die der Agent ausführen möchte
- Alle Annahmen, die der Agent trifft
- Dateien, die der Agent ändern möchte
- Alle Optimierungs- oder Bereinigungsschritte, die geplant sind
- Einen stufenweisen Ausführungsplan
Sie können in Ihren Prompt aufnehmen, 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 Agent-Plan erstellen und Sie um Genehmigung bitten. Dieses Ergebnis kann auftreten, wenn ein Prompt zu vage ist oder der Agent mehr Klarheit benötigt, um Ihre Anfrage zu erfüllen.
Best Practices für die Verwendung von Agent-Plänen finden Sie unter Best Practices.
Kontext aus dem 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, für die zusätzlicher Kontext erforderlich ist, z. B. Spalten mit personenidentifizierbaren Informationen, für die spezielle Anweisungen zur Verarbeitung erforderlich sind, oder um übereinstimmende Spalten mit unterschiedlichen Namen in verschiedenen Tabellen zu identifizieren.
Im Knowledge Catalog wird auch Data Profiling verwendet. Dadurch erhält der Agent ein besseres Verständnis der Datenverteilung in Tabellenspalten und kann spezifischere Assertions zur Datenqualität erstellen.
Einer vorhandenen Tabelle Prüfungen zur Datenqualität hinzufügen
Wenn Sie den Agent auffordern, Qualitätsprüfungen hinzuzufügen, leitet er auf Grundlage des Schemas und der Stichproben angemessene Prüfungen für die Tabelle ab. Sie können dem Prompt auch subjektive Behauptungen hinzufügen. Beispiel:
Add data quality checks for bigquery-public-data.thelook_ecommerce.users.
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 die Partitionierung und das Clustering basierend auf den analysierten Datenverwendungsmustern. Außerdem kann der Agent automatisch andere Pipeline-Optimierungen anwenden. Beispiele für mögliche Optimierungen:
- Spalten werden entfernt, um die Menge der aus dem Speicher gelesenen Daten zu reduzieren. Das ist der wichtigste Kosten- und Leistungsfaktor.
- Predicate Pushdowns zum Filtern von Daten frühzeitig im Ausführungsplan, um das von nachfolgenden Vorgängen verarbeitete Volumen erheblich zu reduzieren.
- Eliminierung gemeinsamer Teilausdrücke zur Verbesserung der Effizienz durch einmaliges Identifizieren und Berechnen der gemeinsamen Transformationslogik. Dadurch werden ineffiziente Praktiken wie das mehrmalige Scannen und Verknüpfen großer Tabellen vermieden.
- Inkrementelle Modelle, mit denen nur neue oder geänderte Daten seit dem letzten Lauf verarbeitet werden, anstatt bei jedem Lauf ganze Tabellen neu zu erstellen.
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 aus dem Schema und den Beispielen ab, wie Daten nach Schlüssel gruppiert werden. 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
In diesem Prompt wird gezeigt, wie Sie gleichzeitig eine Tabelle und eine Spalte hinzufügen und Qualitätsprüfungen für die Tabelle festlegen:
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 zum Erstellen benutzerdefinierter Funktionen (User-Defined Functions, UDFs) einrichten. Der Agent erstellt die UDF nicht, aber Sie können sie 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 Agent und Dataform zu verbessern, empfehlen wir Folgendes:
Agent-Anweisungen für häufige Anfragen verwenden: Wenn Sie häufig bestimmte Techniken anwenden oder immer wieder dieselben Korrekturen am Agent vornehmen, können Sie Agent-Anweisungen als zentralen Speicherort für allgemeine Anweisungen und Anfragen verwenden.
Agent-Pläne verwenden: Agent-Pläne können hilfreich sein, um komplexe Pipeline-Aufgaben aufzuschlüsseln. In Agent-Plänen können auch die Annahmen und Absichten des Agents angezeigt werden. Wir empfehlen, 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 Agent 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. Wenn der Agent einen Plan erstellen muss, zwingt das den Data Engineering Agent dazu, 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.
Klar schreiben Formulieren Sie Ihre Anfrage klar und vermeiden Sie vage Formulierungen. Geben Sie nach Möglichkeit Quell- und Zieldatenquellen an, wenn Sie einen Prompt eingeben, 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 die Prompts kurz. Bei Prompts mit mehr als einer Frage sollten Sie die einzelnen Teile der Frage zur besseren Übersichtlichkeit nummerieren, wie im folgenden Beispiel:
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 ''.
Operatorrangfolge angeben: Bei geordneten Aufgaben sollten Sie Ihren Prompt in Listen strukturieren, in denen 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ültigen SQL-Code 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).
Best Practices für Agent-Anweisungsdateien
Erstellen Sie Agent-Anweisungsdateien, um den Data Engineering Agent an Ihre Anforderungen anzupassen. Wenn Sie Agent-Anweisungen 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 korrekt inGEMINI.mdzu importieren. - In
GEMINI.mdimportierte Dateien können selbst Importe enthalten, wodurch eine verschachtelte Struktur entsteht. Um eine unendliche Rekursion zu verhindern, 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. Mit lokalen Anweisungen können Sie zentrale Regeln für pipelinespezifisches Verhalten überschreiben.
- Um die Konsistenz in Ihrem Projekt zu gewährleisten, können Sie auf Dateien mit Namenskonventionen oder Styleguides verweisen und den Agent anweisen, diese Richtlinien bei der Arbeit mit Ihren Datenpipelines zu befolgen.
- Sie können in der Anleitungsdatei Daten-Layers vorschlagen, um verschiedene Datentypen zu gruppieren.
- Durch die Verwendung von Überschriften und Listen in der Agent-Anweisungsdatei lassen sich Anweisungen für den Data-Engineering-Agenten besser organisieren und verdeutlichen.
- Geben Sie aussagekräftige Dateinamen an und fassen Sie ähnliche Anweisungen in einer Datei zusammen. Regeln mit Markdown-Überschriften logisch nach Kategorie, Funktion oder Funktionalität organisieren.
- Um widersprüchliche Anweisungen zu vermeiden, müssen Sie die spezifischen Bedingungen, unter denen jede Anweisung gilt, klar definieren.
- Iterieren und optimieren Sie Ihre Prompts und Ihren Workflow. Das Verhalten von Agents ändert sich im Laufe der Zeit mit der Einführung von Agents und Modell-Upgrades. Wir empfehlen daher, Ihre Regeln mit verschiedenen Prompts zu optimieren, um Bereiche zu identifizieren, die verbessert werden müssen. Halten Sie die Regelfile mit allen Änderungen an Ihrer Datenpipeline synchron.
Das folgende Beispiel zeigt eine Agent-Anweisungsdatei mit dem Namen GEMINI.md, in der unsere Best Practices für die effektive Verwendung des Data Engineering Agent 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