Data Engineering Agent – Übersicht

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 KI-Agent kann seine Überlegungen zusammenfassen und einen Plan erstellen, mit dem Sie den Plan des KI-Agents vor dem Fortfahren überprü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 integriert.
  • Pipeline-Steuerung: Sie können generierte Agent-Plä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.
  • 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 kann der Data Engineering Agent verwendet werden?

Sie können den Data Engineering Agent mit den folgenden Methoden verwenden:

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.

Beschränkungen

Für den Data Engineering Agent 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 Agent-Anweisungsdatei werden mit der Import-Syntax @ nur Pfade unterstützt, die mit ./, / oder einem Buchstaben beginnen.
  • Die Datenvorschau wird nur für Tabellen, Deklarationen oder Abfragen unterstützt, bei denen das Flag hasOutput auf true gesetzt 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 für den Lakehouse-Laufzeitkatalog. Der Agent kann keine Schreibmutationen (z. B. INSERT, UPDATE, DELETE oder MERGE) oder DDL-Anweisungen (z. B. CREATE TABLE oder DROP TABLE) für Iceberg-Tabellen generieren. Weitere Informationen finden Sie unter Apache Iceberg-REST-Katalogendpunktkonzepte.

Agentenfunktionen und Anpassungen

In den folgenden Abschnitten werden zusätzliche Agent-Funktionen und andere Methoden zum Anpassen des Data Engineering Agent beschrieben.

Anweisungen für KI-Agenten

Agent-Anweisungen sind Anweisungen in natürlicher Sprache für den Data Engineering-Agent, mit denen Sie dauerhafte Anweisungen speichern können, damit der Agent eine Reihe benutzerdefinierter, vordefinierter Regeln befolgt. Verwenden Sie Agent-Anweisungen, wenn die Ergebnisse des Agents in Ihrer gesamten Organisation einheitlich sein sollen, z. B. in Bezug auf Namenskonventionen oder um einen Styleguide durchzusetzen.

Wenn Sie Agent-Anweisungen für den Data Engineering Agent erstellen möchten, erstellen Sie eine GEMINI.MD-Kontextdatei als Agent-Anweisungsdatei.

Best Practices für Agent-Anweisungsdateien

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 in GEMINI.md zu importieren.
  • In GEMINI.md importierte Dateien können selbst Importe enthalten, wodurch eine verschachtelte Struktur entsteht. Um eine Endlosschleife zu vermeiden, hat GEMINI.md eine 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 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 Datei mit den Agent-Anweisungen können Sie die Anweisungen für den Data-Engineering-Agenten besser organisieren und klarer formulieren.
  • 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 testen, um Bereiche zu identifizieren, die möglicherweise 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

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. Bei einer Anfrage werden zuerst bis zu 1.000.000 Datensätze aus jeder Standard- oder externen Tabelle als Stichprobe gezogen. Der Agent führt dann eine detaillierte Datenanalyse durch, indem er Profilierungsabfragen für diese Stichprobe ausführt. Nachdem Datentransformationen generiert wurden, wiederholt der Agent diesen Sampling- und Profilerstellungsprozess, um die Qualität der Transformationen zu bewerten. Zu diesen Transformationen können das Beheben von Dateninkonsistenzen, Ausreißern oder Typkonflikten gehören. 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 Datenaufbereitungsanalyse auch, wenn Sie eine Rohdatentabelle hinzufügen, z. B. eine CSV-basierte externe Tabelle. Sie können den Plan zur Datenaufbereitung prüfen und mit Konversationsbefehlen anpassen.

Für die Datenstichprobenerhebung und ‑profilerstellung werden BigQuery-Ressourcen verwendet. Es gelten die BigQuery-Preise.

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, ARRAY oder STRUCT entnesten 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 eine sichere Typumwandlung 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 Agent-Pläne generieren, die eine Zusammenfassung und einen Überblick über die Ziele und Schritte enthalten, die zur Erfüllung einer Anfrage erforderlich sind. Wenn Sie den KI-Agenten mit komplexen Anfragen auffordern, die viele Änderungen erfordern, empfehlen wir, den KI-Agenten zu bitten, Ihnen einen Plan zu erstellen, damit Sie die Absichten des KI-Agenten überprüfen können, bevor er Maßnahmen ergreift. Ein Data Engineering Agent-Plan besteht in der Regel aus Folgendem:

  • Das Ziel des KI-Agenten für eine bestimmte Anfrage
  • Allgemeiner Überblick über die Schritte, die der Agent ausführen möchte
  • Alle Annahmen, die der KI-Agent trifft
  • Dateien, die der Agent ändern möchte
  • Alle Optimierungs- oder Bereinigungsschritte, die geplant sind
  • Einen stufenweisen Ausführungsplan

In Ihrem Prompt können Sie angeben, dass der Plan überprüft und genehmigt werden muss, damit der Agent keine Aktionen 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 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 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.

Knowledge Catalog verwendet auch Datenprofiling, wodurch der Agent die Datenverteilung in Tabellenspalten besser nachvollziehen und spezifischere Assertions zur Datenqualität erstellen kann.

Der Agent kann auch Knowledge Catalog 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 zur Datenqualität hinzufügen

Wenn Sie den Agenten 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.

Während der Pipelineausführung werden die Ergebnisse aller Dataform-Assertions automatisch in Knowledge Catalog (Vorschau) veröffentlicht. Diese Ergebnisse werden in der Knowledge Catalog-Scorecard für Datenqualität mit dem Status „Bestanden“ oder „Nicht bestanden“ angezeigt. Bei jeder Ausführung werden vorhandene Datenqualitäts-Scorecards überschrieben, die durch vorherige Dataform-Ausführungen veröffentlicht wurden. Scorecards, die durch Knowledge Catalog-Datenscans erstellt wurden, sind davon nicht betroffen.

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 Prozess wird der 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.
  • Allgemeine Aspekte: semantische Details wie Tabellensystem und Typinformationen. Erfordert Dataform Core-Version 3.0.52 oder höher.

Das folgende Beispiel zeigt, wie Sie einer Tabellenkonfiguration für den Knowledge Catalog eine Übersicht und allgemeine Metadatenaspekte hinzufügen:

config {
  type: "table",
  metadata: {
    overview: "This table provides standardized trip data.",
    extraProperties: {
        generic: {
              system: "BigQuery",
              type: "table"
        }
      }
  }
}

Wenn Sie den Status einer Metadatenaktualisierung prüfen möchten, lesen Sie Arbeitsbereichsausführungsprotokolle prüfen für Dataform-Workflows oder Vergangene manuelle Ausführungen ansehen für BigQuery-Pipelines.

Wenn Sie die synchronisierten Metadaten überprüfen möchten, können Sie in 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 die Partitionierung und das Clustering basierend auf den analysierten Datennutzungsmustern. 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.

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 (früher BigLake Metastore) verwaltet werden. Mit dieser Funktion können Sie regionale Open-Source-Format-Tabellen (die in Cloud Storage gespeichert sind) direkt zusammen mit Ihren BigQuery-Tabellen abfragen und verknüpfen. Weitere Informationen finden Sie unter Apache Iceberg-REST-Katalogendpunktkonzepte.

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 standardmäßigen Namen 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 an Ihren Pipeline-Arbeitsbereich zu binden.

Wenn Sie diese Funktion verwenden möchten, 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 Optimierungen zu geben, die Ihren Workflow 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 Chateingabeleiste geladen. Sie können ihn bearbeiten oder anpassen, bevor Sie ihn an den Agent 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 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 Ort zum Speichern allgemeiner Anweisungen und Anfragen verwenden.

Agentenpläne verwenden: Agentenpläne können hilfreich sein, um komplexe Pipeline-Aufgaben aufzuschlüsseln. In Agent-Plänen können Sie auch die Annahmen und Absichten des Agents sehen. Wir empfehlen Ihnen, diese Pläne zu prü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 Data Engineering Agent einen Plan erstellen muss, werden seine Aktionen aufgeschlüsselt, 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 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 die Prompts kurz. Bei Prompts mit mehr als einer Frage sollten Sie die einzelnen Teile der Frage zur besseren Übersicht 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).

Geben Sie explizite Anweisungen und heben Sie wichtige Begriffe hervor. Sie können in Ihren Prompts wichtige Begriffe oder Konzepte 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, 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: 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).

Datenpipelines auswerten

Um die Effektivität einer vom Data Engineering Agent generierten Datenpipeline zu bewerten, verwenden Sie das EvalBench-Tool. EvalBench ist ein Open-Source-Framework, das Mehrfachdialog-Agentenbewertungen unterstützt. EvalBench fungiert als automatisierte Unit-Test-Suite, mit der Sie Mehrfachdialog-Szenarien einrichten, LLM-basierte und deterministische Scorers hinzufügen und den Lebenszyklus Ihrer Dataform-Pipelines verwalten können.

Durch die Simulation von Prompts in natürlicher Sprache in einer isolierten Sandbox wird mit EvalBench gemessen, wie effektiv der Agent Anweisungen versteht, die richtigen Tools aufruft und korrekten Pipeline-Code generiert. Mit EvalBench können Sie 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 keine vorhandenen Funktionen beeinträchtigen.
  • Qualitätsbenchmarks generieren: Sie erhalten objektive, automatisierte Werte für die SQL-Richtigkeit, die Genauigkeit der Toolausführung und die Zuverlässigkeit der Pipeline.

Datenpipeline-Auswertung ausführen

Sie können EvalBench in den folgenden zwei Modi ausführen:

  • Dynamische Sandbox: EvalBench stellt zu Beginn eines Evaluierungslaufs ein neues, temporäres Dataform-Repository und einen neuen Dataform-Arbeitsbereich bereit, führt die Testszenarien aus und entfernt alle erstellten Ressourcen nach Abschluss automatisch. In diesem Modus werden weder Produktionscode noch Produktionsrepositories oder BigQuery-Datasets geändert und es werden keine Artefakte in Ihrem Google Cloud -Projekt hinterlassen. Der dynamische Sandbox-Modus eignet sich für automatisierte CI/CD-Pipelines, nächtliche Regressionstests und objektive Benchmark-Bewertungen, bei denen eine strikte Umgebungsisolation 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 SQLX-Dateien im vorhandenen Arbeitsbereich ändern und neue erstellen, während er Testläufe verarbeitet. Der statische Arbeitsbereichmodus eignet sich für aktives Prompt-Engineering, Rubrik-Iteration 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, mit der EvalBench ausgeführt wird, um die Berechtigungen zu erhalten, die Sie zum Ausführen von EvalBench benötigen:

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 testen Sie Ihre Datenpipeline im dynamischen Sandbox-Modus:

  1. 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.
  2. Prüfen Sie im Verzeichnis datasets/dea-tools/, ob die Datei mit der Beispielkonfiguration für die Ausführung (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
  3. 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 Google Cloud-Projekts.
    • REGION: die Region des Google Cloud-Projekts.

Bewertung in einem statischen Bewertungsarbeitsbereich ausführen

So werten Sie Ihre Datenpipeline im statischen Arbeitsbereichsmodus aus:

  1. 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.
  2. Bearbeiten Sie im Verzeichnis datasets/dea-tools/ die Datei mit der Beispielkonfiguration für die Ausführung (example_run_config.yaml), um die Zeilen set_up_script und tear_down_script auszukommentieren und die Konfigurationen dataform_repository und dataform_workspace hinzuzufügen:

    ...
    # 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}
    ...
  3. 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 Google Cloud-Projekts.
    • 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.
  4. Optional: Sie können EvalBench auch mit core_10_cases_suite.yaml ausführen, um die Datenpipeline anhand von 10 Kernbewertungsfällen sequenziell zu testen. Dabei wird für jeden Testfall ein neues Repository erstellt, um die Umgebung zu isolieren. 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 Auswertung von Datenpipelines

Um die Leistung und Genauigkeit Ihrer Datenpipeline-Bewertungen mit EvalBench zu verbessern, empfehlen wir Ihnen, Folgendes zu tun:

  • Suchen Sie in den Auswertungsprotokollen nach Dataform-Workflowaufrufen und BigQuery-Job-IDs. Mit diesen IDs können Sie generierte Ausführungsartefakte, Kompilierungsergebnisse und Abfragelogs in der Google Cloud -Konsole abgleichen und prüfen.
  • Führen Sie immer die Core-Bewertungssuite (--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 für die Umgebungseinrichtung, z. B. workflow_settings.yaml und Definitionen für das Basisschema, in den Testarbeitsbereich vorab zu laden. Diese Einrichtungsdateien sorgen dafür, dass der Agent auf realistischen vorhandenen Umgebungen und nicht auf leeren Arbeitsbereichen basiert.
  • Wenn Sie Fehler bei der Auswertung im dynamischen Sandbox-Modus beheben, kommentieren Sie tear_down_script in Ihrer Laufzeitkonfiguration 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 Syntax- oder Laufzeitfehler als auch Logikfehler auf hoher Ebene zu erkennen.
  • Aktivieren Sie BigQuery-Berichte (<PROJECT_ID>.evalbench.results) und verwenden Sie die generierten Data Studio-Links, um die Erfolgsraten, die Genauigkeit der Tool-Nutzung und die Effizienz von Prompts im Zeitverlauf zu verfolgen.