Utiliser l'agent d'ingénierie des données pour créer et modifier des pipelines de données
L'agent d'ingénierie des données dans BigQuery et Dataform vous permet de créer, de modifier et de gérer des pipelines de données pour charger et traiter des données dans BigQuery. Vous pouvez utiliser des requêtes en langage naturel pour générer des pipelines de données à partir de différentes sources de données ou adapter des pipelines de données existants à vos besoins en ingénierie des données.
L'agent génère et organise le code du pipeline de données directement dans les dépôts Dataform et opère dans l'espace de travail Dataform. Les pipelines Dataform sont donc automatiquement disponibles pour l'agent. Vous pouvez également interagir avec l'agent à l'aide de l'API de l'agent d'ingénierie des données, qui utilise le protocole A2A. Pour obtenir des exemples de requêtes que vous pouvez utiliser, consultez Exemples de requêtes.
L'agent d'ingénierie des données est optimisé par Gemini pourGoogle Cloud et est compatible avec les fonctions d'IA et de ML de BigQuery pour créer des pipelines d'enrichissement par IA par lot, de recherche sémantique et de machine learning dans Dataform. Pour en savoir plus, consultez Compatibilité de BigQuery avec l'IA et le ML.
Limites
L'agent d'ingénierie des données présente les limites suivantes :
- L'agent d'ingénierie des données n'accepte pas les commandes en langage naturel pour les types de fichiers suivants :
- Notebooks
- Préparation des données
- L'agent d'ingénierie des données ne peut pas exécuter de pipelines. Vous devez examiner et exécuter ou planifier des pipelines.
- L'agent d'ingénierie des données ne peut pas rechercher de liens Web ni d'URL fournis via des instructions ou des requêtes directes.
- Lors de l'importation de fichiers dans un fichier d'instructions de l'agent, la syntaxe d'importation
@n'accepte que les chemins d'accès commençant par./,/ou une lettre. - La fonctionnalité d'aperçu des données n'est compatible qu'avec les tables, les déclarations ou les requêtes dont l'option
hasOutputest définie surtrue. - Le Data Engineering Agent est soumis aux limitations générales de la technologie d'IA.
- Lorsque vous créez des pipelines sur des tables externes Apache Iceberg gérées par le catalogue d'environnements d'exécution Lakehouse (anciennement metastore BigLake), toutes les limites du catalogue d'environnements d'exécution Lakehouse s'appliquent. Plus particulièrement, l'agent ne peut pas générer de mutations d'écriture (telles que
INSERT,UPDATE,DELETEouMERGE) ni d'instructions LDD (telles queCREATE TABLEouDROP TABLE) sur les tables Iceberg. Pour en savoir plus, consultez Concepts liés aux points de terminaison du catalogue REST Apache Iceberg.
Avant de commencer
Avant d'utiliser l'agent d'ingénierie des données, suivez les étapes de cette section.
Activer Gemini dans BigQuery
Assurez-vous que Gemini dans BigQuery est activé pour votre projetGoogle Cloud . Pour en savoir plus, consultez Configurer Gemini dans BigQuery.
Activer les API requises
Console
Activez les API suivantes dans la console Google Cloud pour le projet Google Cloudque vous utilisez avec l'API Conversational Analytics, si elles ne sont pas déjà activées.
Activer l'API Gemini Data Analytics
gcloud
Pour activer l'API Gemini Data Analytics, l'API Gemini pour Google Cloudet l'API BigQuery, si elles ne le sont pas déjà, utilisez la Google Cloud CLI et exécutez les commandes gcloud services enable suivantes :
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
Remplacez PROJECT_ID par l'ID du projet Google Cloud .
Rôles requis
Pour obtenir l'autorisation nécessaire pour utiliser l'agent d'ingénierie des données, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet :
- Éditeur de code Dataform (
roles/dataform.codeEditor) - Utilisateur de job BigQuery (
roles/bigquery.jobUser) - Utilisateur sans état du chat des analyses de données Gemini (
roles/geminidataanalytics.dataAgentStatelessUser)
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Ce rôle prédéfini contient l'autorisation geminidataanalytics.locations.useDataEngineeringAgent, qui est requise pour utiliser l'agent d'ingénierie des données.
Vous pouvez également obtenir cette autorisation avec des rôles personnalisés ou d'autres rôles prédéfinis.
Pour en savoir plus sur les rôles requis pour interroger des tables Apache Iceberg, consultez Rôles requis pour la compatibilité avec Lakehouse Apache Iceberg.
Prérequis pour l'intégration de Knowledge Catalog
Pour obtenir l'autorisation nécessaire pour intégrer l'agent d'ingénierie des données à Knowledge Catalog, demandez à votre administrateur de vous accorder le rôle IAM Éditeur de catalogue Dataplex (roles/dataplex.catalogEditor) sur le projet.
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Ce rôle prédéfini contient l'autorisation geminidataanalytics.locations.useDataEngineeringAgent, qui est requise pour intégrer l'agent d'ingénierie des données à Knowledge Catalog.
Vous pouvez également obtenir cette autorisation avec des rôles personnalisés ou d'autres rôles prédéfinis.
Si vous utilisez un compte de service personnalisé pour exécuter des pipelines, vous devez attribuer le rôle Éditeur de catalogue Dataplex (roles/dataplex.catalogEditor) sur le projet ou le groupe d'entrées @bigquery.
Vous devez également activer l'API Dataplex.
Chiffrer des données avec des clés Cloud Key Management Service
Vous pouvez chiffrer les données au niveau de l'ensemble de données ou du projet avec les clés Cloud Key Management Service gérées par le client par défaut dans BigQuery. Pour en savoir plus, consultez Définir une clé par défaut pour un ensemble de données et Définir une clé par défaut pour un projet.
Vous pouvez chiffrer le code du pipeline au niveau du projet en définissant une clé Cloud Key Management Service par défaut pour Dataform.
Configurer des périmètres VPC Service Controls
Si vous utilisez VPC Service Controls, vous devez configurer le périmètre pour protéger Dataform, BigQuery et l'API Conversational Analytics. Pour en savoir plus, consultez Dataform, BigQuery et l'API Conversational Analytics.
Générer un pipeline de données avec l'agent d'ingénierie des données
Pour utiliser l'agent d'ingénierie des données dans BigQuery, sélectionnez l'une des options suivantes :
Pipelines BigQuery
Pour utiliser l'agent d'ingénierie des données dans l'interface des pipelines BigQuery, procédez comme suit :
Accédez à la page BigQuery.
Dans l'éditeur de requête, cliquez sur arrow_drop_down Créer > Pipeline.
Dans l'interface du pipeline, cliquez sur Demander à l'agent.
Dans le champ Demander à l'agent, saisissez un prompt en langage naturel pour générer un pipeline de données, par exemple :
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.Après avoir saisi un prompt, cliquez sur Envoyer.
L'agent d'ingénierie des données génère un pipeline de données en fonction de votre prompt.
L'agent d'ingénierie des données génère une proposition de brouillon de pipeline de données. Vous pouvez cliquer sur un nœud de pipeline pour examiner la requête SQLX générée. Pour appliquer le pipeline de données suggéré par l'agent, cliquez sur Appliquer.
Dataform
Pour utiliser l'agent d'ingénierie des données dans Dataform, procédez comme suit :
Accédez à Dataform.
Sélectionnez un dépôt.
Sélectionnez ou créez un espace de travail de développement.
Dans l'espace de travail, cliquez sur Demander à l'agent.
Dans le prompt Demander à l'agent qui s'affiche, saisissez un prompt en langage naturel pour générer un pipeline de données, par exemple :
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.Après avoir saisi un prompt, cliquez sur Envoyer.
Une fois votre prompt envoyé, l'agent d'ingénierie des données génère un pipeline de données et modifie les fichiers SQLX Dataform en fonction de votre prompt. L'agent applique ces modifications directement aux fichiers de votre espace de travail.
Modifier un pipeline de données
Pour modifier votre pipeline de données, cliquez sur Demander à l'agent, puis saisissez un prompt suggérant une modification du pipeline de données.
Examinez les modifications proposées par l'agent d'ingénierie des données, puis cliquez sur Appliquer pour les appliquer.
Vous pouvez également modifier manuellement une requête SQLX en sélectionnant un nœud de pipeline, puis en cliquant sur Ouvrir.
Examiner un pipeline de données
Vous pouvez cliquer sur un nœud de pipeline dans un pipeline de données généré par l'agent d'ingénierie des données pour l'examiner.
- L'onglet Configuration affiche la requête SQLX générée associée au nœud.
- L'onglet Aperçu des données affiche la table d'entrée et de sortie du fichier. Vous pouvez prévisualiser la transformation de vos données via ce nœud en cliquant sur Exécuter la tâche pour exécuter la tâche avec ou sans dépendances.
Résoudre les erreurs liées aux pipelines de données
Si vous rencontrez des erreurs lors de la génération du pipeline de données, remplissez toutes les conditions préalables pour exécuter l'agent d'ingénierie des données.
Les erreurs dans votre pipeline apparaissent sous la forme d'exécutions ayant échoué dans l'onglet Exécutions. Pour utiliser l'agent d'ingénierie des données afin d'exécuter une analyse des causes principales et d'obtenir des recommandations de dépannage, procédez comme suit :
Dans l'onglet Exécutions, cliquez sur l'état d'une exécution ayant échoué, puis sur Examiner.
Le panneau Demander à l'agent s'ouvre avec une requête qui invite l'agent à effectuer une analyse de la cause principale de l'échec de l'exécution.
Examinez le rapport de dépannage de l'agent.
Le rapport de dépannage inclut plus d'informations sur les erreurs survenues lors du processus de génération du pipeline. Vous pouvez demander à l'agent de corriger ces erreurs de pipeline en fonction du rapport.
Créer des instructions pour l'agent
Les instructions de l'agent sont des instructions en langage naturel destinées à l'agent d'ingénierie des données. Elles vous permettent de stocker des instructions persistantes afin que l'agent suive un ensemble de règles personnalisées et prédéfinies. Utilisez les instructions de l'agent si vous souhaitez que les résultats de l'agent soient cohérents dans l'ensemble de votre organisation (par exemple, avec des conventions d'attribution de noms ou pour appliquer un guide de style).
Vous pouvez créer un fichier de contexte GEMINI.MD en tant que fichier d'instructions pour l'agent d'ingénierie des données. Vous pouvez créer des fichiers d'instructions d'agent à utiliser dans votre espace de travail local, ou utiliser les mêmes fichiers d'instructions dans plusieurs pipelines de données avec un dépôt externe.
Pour créer des instructions d'agent, procédez comme suit :
- Sous Demander à l'agent, cliquez sur Instructions du pipeline.
- Dans le volet Instructions pour le pipeline, cliquez sur Créer un fichier d'instructions.
Dans le fichier
GEMINI.MDqui s'affiche, saisissez vos instructions en langage naturel.L'exemple suivant montre un fichier d'instructions d'agent avec plusieurs règles :
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.Cliquez sur Enregistrer.
Pour savoir comment structurer au mieux vos fichiers d'instructions d'agent, consultez Bonnes pratiques concernant les fichiers d'instructions d'agent.
Charger les instructions de l'agent à partir d'un dépôt externe
Pour réutiliser un ensemble d'instructions d'agent dans plusieurs pipelines de données, associez un dépôt externe :
- Sous Demander à l'agent, cliquez sur Instructions du pipeline.
- Sous Dépôt externe, sélectionnez Utiliser les instructions d'un dépôt externe.
- Dans les champs fournis, spécifiez un dépôt contenant les instructions de l'agent que vous souhaitez utiliser avec votre pipeline de données.
- Cliquez sur Enregistrer.
Compatibilité de BigQuery avec l'IA et le ML
L'agent d'ingénierie des données est compatible avec de nombreuses fonctions et instructions d'IA, de ML et d'objets BigQuery dans les pipelines SQLX Dataform générés et dans les fichiers d'instructions de l'agent (GEMINI.MD) que vous créez, y compris les éléments suivants :
AI.FORECASTAI.DETECT_ANOMALIESAI.CAUSAL_EFFECTAI.EVALUATEAI.KEY_DRIVERSAI.GENERATEAI.GENERATE_TABLEAI.GENERATE_EMBEDDINGAI.IFAI.SCOREAI.CLASSIFYAI.SEARCHAI.SIMILARITYAI.AGGCREATE MODEL(y comprisLOGISTIC_REG,KMEANS,CONTRIBUTION_ANALYSIS, modèles distants (REMOTE WITH CONNECTION) et la clauseTRANSFORM)CREATE TABLEavec génération autonome d'embeddings (AI.EMBED)ML.PREDICTML.EVALUATEML.CORRELATIONML.DETECT_CHANGE_POINTSML.GET_INSIGHTSML.SEASONALITYML.TRENDML.VALIDATE_DATA_DRIFTVECTOR_SEARCHOBJ.GET_ACCESS_URL
Pour exécuter des pipelines Dataform contenant des fonctions d'IA générative ou des modèles distants, le compte de service ou l'utilisateur qui exécute le pipeline doit disposer des autorisations requises pour exécuter des requêtes d'IA générative. Lorsque l'agent d'ingénierie des données génère des instructions LDD telles que CREATE MODEL ou CREATE TABLE avec la génération d'embeddings autonome, il les configure en tant qu'actions operations Dataform (type: "operations") avec hasOutput: true afin que les nœuds de pipeline en aval puissent les référencer à l'aide de ${ref("RESOURCE_NAME")}.
L'agent n'utilise la fonction AI.SEARCH que sur les tables pour lesquelles la génération d'embeddings autonome est activée.
Lorsque vous travaillez avec des fonctions ObjectRef, l'utilisateur doit également disposer d'un accès délégué au bucket Cloud Storage sous-jacent. Pour en savoir plus, consultez Accès délégué.
Pour en savoir plus sur les fonctions d'IA et de ML dans BigQuery, consultez Présentation de l'IA dans BigQuery.
Cas d'utilisation
Pour activer les fonctions d'IA et de ML compatibles dans vos pipelines de données, utilisez-les de l'une des manières suivantes :
Demandez à l'agent d'ingénierie des données de créer ou de modifier un pipeline. Par exemple, si vous êtes un ingénieur de données qui crée un pipeline ELT planifié qui enrichit du texte brut, extrait des champs structurés de documents non structurés ou évalue de nouveaux enregistrements, l'agent génère les fichiers SQLX Dataform et le graphique de dépendances appropriés.
Définissez des règles de pipeline persistantes dans un fichier d'instructions de l'agent (
GEMINI.MD), par exemple pour standardiser les points de terminaison de modèle, les ID de connexion ou les seuils d'anomalie par défaut dans les pipelines de votre organisation.
Le tableau suivant présente des exemples de prompts qui activent l'utilisation de fonctions d'IA ou de ML pour le pipelining de données par lot :
| Cas d'utilisation | Exemple d'utilisation | Ensemble de données public |
|---|---|---|
Synthèse de texte par lot (AI.GENERATE) |
"Crée une table de préproduction à partir de bigquery-public-data.bbc_news.fulltext pour les articles de sport et ajoute une colonne qui résume la colonne du corps en une ou deux phrases." |
bigquery-public-data.bbc_news.fulltext |
Extraction de schémas structurés (AI.GENERATE_TABLE) |
"Crée un tableau de pipeline qui extrait un schéma structuré (company_name STRING, key_topic STRING, is_earnings_related BOOL) de la colonne "body" des articles d'actualités économiques dans bigquery-public-data.bbc_news.fulltext." |
bigquery-public-data.bbc_news.fulltext |
Enrichissement d'objets multimodal (OBJ.GET_ACCESS_URL) |
"Crée une table d'objets externe sur notre bucket d'images de produit Cloud Storage et crée une table en aval qui génère un tableau image_description et un tableau d'entités pour chaque image à l'aide de OBJ.GET_ACCESS_URL." |
Table d'objets Cloud Storage (par exemple, gs://cloud-samples-data/bigquery/tutorials/cymbal-pets/images/*.png) |
Filtrage sémantique des données (AI.IF) |
"Crée un tableau nettoyé d'articles technologiques à partir de bigquery-public-data.bbc_news.fulltext, en filtrant pour ne conserver que les lignes qui traitent des avancées de l'intelligence artificielle." |
bigquery-public-data.bbc_news.fulltext |
Calcul du score de sentiment par lot (AI.SCORE) |
"Crée une table enrichie à partir de bigquery-public-data.bbc_news.fulltext pour la catégorie "Divertissement" avec une colonne numérique sentiment_score évaluant le degré de sentiment positif." |
bigquery-public-data.bbc_news.fulltext |
Classification automatique de la taxonomie (AI.CLASSIFY) |
"À l'aide des critiques de films de bigquery-public-data.imdb.reviews, classe automatiquement chaque critique dans les niveaux de notre taxonomie éditoriale pour l'archétype narratif (par exemple, 'Étude de personnage', 'Spectacle d'action', 'Thriller psychologique') et l'ambiance de visionnage (par exemple, 'Sombre et réaliste', 'Inspirant', 'Suspense'). Écrivez les résultats ainsi que les métadonnées des films dans une table sélectionnée." |
bigquery-public-data.imdb.reviews |
Cumul sémantique groupé (AI.AGG) |
"Pour chaque film de bigquery-public-data.imdb.reviews, regroupez tous les commentaires des spectateurs issus de centaines d'avis dans une synthèse consolidée mettant en évidence l'accueil critique général, les principaux éloges et les plaintes récurrentes des spectateurs. Regroupe les résultats par movie_id et title, ainsi que des métriques telles que le nombre total d'avis et la note moyenne, afin de produire un tableau d'intelligence unifié au niveau des films pour les dirigeants de studio et les équipes marketing." |
bigquery-public-data.imdb.reviews |
Génération d'embeddings par lot (AI.GENERATE_EMBEDDING) |
"Crée un nœud de pipeline qui génère des embeddings vectoriels pour la colonne d'avis dans bigquery-public-data.imdb.reviews et les matérialise dans une table de caractéristiques." |
bigquery-public-data.imdb.reviews |
Embeddings autonomes et recherche sémantique (AI.EMBED, AI.SEARCH) |
"Créez une table d'avis sur des films avec la génération d'embeddings autonomes activée sur la colonne des avis, puis créez une table de rapport en aval qui trouve les 10 meilleurs avis correspondant à 'thriller psychologique qui fait monter la tension'." | bigquery-public-data.imdb.reviews |
Prévision de la demande planifiée (AI.FORECAST) |
"Crée un tableau de reporting quotidien qui prévoit le nombre de trajets en vélo en libre-service par jour pour les 30 prochains jours à partir de bigquery-public-data.san_francisco_bikeshare.bikeshare_trips." |
bigquery-public-data.san_francisco_bikeshare.bikeshare_trips |
Détection d'anomalies dans le pipeline (AI.DETECT_ANOMALIES) |
"Crée un tableau de surveillance qui détecte les anomalies de volume de trajets quotidiens en 2018 en utilisant 2017 comme référence historique à partir de bigquery-public-data.san_francisco_bikeshare.bikeshare_trips." |
bigquery-public-data.san_francisco_bikeshare.bikeshare_trips |
Rapports automatisés sur les facteurs clés (AI.KEY_DRIVERS) |
"Créez un tableau de rapport qui identifie les principaux facteurs de variation du volume de trajets entre 2017 et 2018 à l'aide de bigquery-public-data.austin_bikeshare.bikeshare_trips." |
bigquery-public-data.austin_bikeshare.bikeshare_trips |
Détection des points d'inflexion (ML.DETECT_CHANGE_POINTS) |
"Crée un tableau qui détecte les points de changement structurel dans le volume de trajets quotidiens à partir de bigquery-public-data.san_francisco_bikeshare.bikeshare_trips." |
bigquery-public-data.san_francisco_bikeshare.bikeshare_trips |
Entraînement de modèle avec prétraitement, évaluation et notation par lot (CREATE MODEL, TRANSFORM, ML.EVALUATE, ML.PREDICT) |
"Crée un pipeline Dataform sur bigquery-public-data.ml_datasets.census_adult_income qui entraîne un modèle de régression logistique avec une clause TRANSFORM pour prédire income_bracket, évalue le modèle dans une table d'évaluation et génère des prédictions par lot dans une table de notation." |
bigquery-public-data.ml_datasets.census_adult_income |
Segmentation de la clientèle (CREATE MODEL avec KMEANS) |
"Crée un pipeline qui entraîne un modèle de clustering en k-moyennes sur les mesures physiques des manchots de bigquery-public-data.ml_datasets.penguins et attribue des ID de cluster à une table de sortie segmentée." |
bigquery-public-data.ml_datasets.penguins |
Validation automatisée de la dérive des données (ML.VALIDATE_DATA_DRIFT) |
"Ajoute au pipeline une table de surveillance qui valide la dérive des caractéristiques entre notre table de référence des trajets de 2017 et la table des trajets de diffusion de 2018 de bigquery-public-data.san_francisco_bikeshare.bikeshare_trips." |
bigquery-public-data.san_francisco_bikeshare.bikeshare_trips |
Exemples de prompts
Les sections suivantes fournissent des exemples de requêtes que vous pouvez utiliser avec l'agent d'ingénierie des données pour développer votre pipeline de données.
Regrouper des données existantes dans une nouvelle table
Avec ce prompt, l'agent d'ingénierie des données utilise le schéma et les exemples pour déduire le critère de regroupement des données par clé. L'agent configure généralement une nouvelle configuration de table avec des descriptions de table et de colonne.
Create a daily sales report from the
bigquery-public-data.thelook_ecommerce.order_items table into a
reporting.daily_sales_aggregation table.
Créer une colonne dérivée et ajouter des contrôles de qualité des données à la nouvelle table
Cette requête montre comment ajouter une table et une colonne, et spécifier des contrôles de qualité pour la table en même temps :
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'.
Créer des fonctions définies par l'utilisateur dans le cadre de la définition du modèle
L'agent d'ingénierie des données peut également configurer le LDD pour créer des fonctions définies par l'utilisateur (UDF). Bien que l'agent ne crée pas réellement la UDF par l'utilisateur, vous pouvez UDF créer en exécutant le pipeline de données. Ces fonctions définies par l'utilisateur peuvent être utilisées dans les définitions de modèle de votre pipeline de données.
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.
Enrichir des données non structurées et exécuter des prédictions de ML par lot dans un pipeline
Cette requête montre comment combiner l'extraction de caractéristiques comportementales, la modélisation de classification BigQuery ML et la personnalisation de l'IA générative sur des nœuds de pipeline Dataform enchaînés :
Create a multi-step Dataform pipeline using
bigquery-public-data.thelook_ecommerce.users and bigquery-public-data.thelook_ecommerce.orders:
1. Create a staging table on a sample of customers to engineer retention
features (tenure, lifetime spend, recency) and label churn based on
inactivity over the past 90 days.
2. Train a BigQuery ML logistic regression model on those behavioral features
to predict churn risk.
3. Create a final table that scores customer churn probabilities and drafts
personalized, 3-sentence win-back emails with purchase-tailored discounts
for the 20 customers at highest risk of churning.
Bonnes pratiques
Pour améliorer les résultats lorsque vous utilisez l'agent d'ingénierie des données et Dataform, nous vous recommandons de procéder comme suit :
Utilisez les instructions de l'agent pour les requêtes courantes. Si vous appliquez souvent certaines techniques ou si vous apportez fréquemment les mêmes corrections à l'agent, utilisez les instructions de l'agent comme emplacement centralisé pour stocker les instructions et les requêtes courantes.
Utilisez des plans d'agent. Les plans d'agent peuvent être utiles pour décomposer des tâches de pipeline complexes. Les plans d'agent peuvent également vous montrer les hypothèses et les intentions de l'agent. Nous vous recommandons donc de les examiner pour vous assurer que l'agent dispose du contexte approprié.
Après avoir examiné un plan, vous pouvez le modifier en fournissant des commentaires et des modifications à l'agent d'ingénierie des données. Exemple :
In the plan, ensure that all of the intermediate tables are views.
Dans certains cas, il peut être utile de demander à l'agent de générer un plan qui ne nécessite pas votre approbation explicite. Le fait de faire planifier l'agent force l'agent d'ingénierie des données à décomposer ses actions, ce qui conduit souvent à de meilleurs résultats. Vous pouvez forcer l'agent à générer un plan et à l'exécuter automatiquement. Exemple :
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.
Écrivez de manière claire. Énoncez votre demande clairement et évitez d'être vague. Dans la mesure du possible, fournissez les sources de données source et de destination lors de la requête, comme illustré dans l'exemple suivant :
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.
Fournissez des requêtes directes et ciblées. Posez une question à la fois et rédigez des requêtes concises. Pour les requêtes comportant plusieurs questions, détaillez chaque partie distincte de la question pour plus de clarté, comme illustré dans l'exemple suivant :
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).
Fournissez des instructions explicites et mettez en avant les termes clés. Vous pouvez mettre l'accent sur des termes ou des concepts clés dans vos requêtes et indiquer que certaines exigences sont importantes, comme dans l'exemple suivant :
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 ''.
Spécifiez l'ordre des opérations. Pour les tâches ordonnées, structurez votre requête sous forme de listes, où les éléments listés sont divisés en petites étapes ciblées, comme illustré dans l'exemple suivant :
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.
Affinez et itérez. Essayez différentes expressions et approches pour voir ce qui donne les meilleurs résultats. Si l'agent génère du code SQL non valide ou d'autres erreurs, guidez-le à l'aide d'exemples ou de la documentation publique.
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).