Utiliser l'agent d'ingénierie des données pour créer et modifier des pipelines de données

L'agent Data Engineering vous permet de créer, modifier et dépanner des pipelines de données dans BigQuery à l'aide de requêtes en langage naturel. L'agent Data Engineering offre les fonctionnalités suivantes pour simplifier vos workflows d'ingénierie des données afin d'ingérer des données dans BigQuery :

  • Intégration de Dataform : l'agent génère et organise le code du pipeline de données directement dans les dépôts et espaces de travail Dataform.
  • Génération de plans : l'agent peut résumer sa réflexion et générer un plan que vous pouvez examiner et vérifier avant de continuer.
  • Validation du code : l'agent valide et corrige automatiquement les erreurs de compilation de tout code généré pour s'assurer que le pipeline de données est fonctionnel.
  • Préparation automatique des données : l'agent prépare les données et transforme les données brutes en tableaux structurés sans intervention manuelle.
  • Instructions personnalisées : l'agent accepte les instructions personnalisées qui vous permettent de définir des règles spécifiques et des consignes réutilisables en langage naturel.
  • Contexte externe : l'agent est intégré au catalogue de connaissances pour obtenir un contexte supplémentaire.
  • Contrôle du pipeline : vous pouvez examiner et personnaliser les plans d'agent générés avant l'exécution de toute action.
  • Optimisation : l'agent peut optimiser les performances de votre pipeline de données.
  • Dépannage et réparation : l'agent peut résoudre les problèmes d'échec de pipeline et corriger son code.

Pour obtenir d'autres exemples de requêtes que vous pouvez utiliser avec l'agent Data Engineering, consultez Exemples de requêtes.

Limites

L'agent Data Engineering présente les limites suivantes :

  • L'agent Data Engineering est une offre de pré-DG qui n'est pas destinée à une utilisation en production.
  • L'agent Data Engineering n'accepte pas les commandes en langage naturel pour les types de fichiers suivants :
    • Notebooks
    • Préparation des données
    • JavaScript dans n'importe quel fichier SQLX
  • L'agent Data Engineering ne peut pas exécuter de pipelines. Vous devez examiner, exécuter ou planifier les pipelines.
  • L'agent Data Engineering ne peut pas valider le code SQL qui dépend de ressources intermédiaires inexistantes sans l'invocation complète du pipeline (déclenchée par l'utilisateur).
  • L'agent Data Engineering ne peut pas rechercher les liens Web ni les URL fournis dans les instructions ou les requêtes directes.
  • Lorsque vous importez des 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'indicateur hasOutput est défini sur true.

Comment l'agent Data Engineering utilise vos données

Pour générer des réponses d'agent de meilleure qualité, l'agent Data Engineering peut récupérer des données et des métadonnées supplémentaires à partir de BigQuery et du Knowledge Catalog, y compris des exemples de lignes de tables BigQuery et des profils d'analyse de données générés dans le Knowledge Catalog. L'agent n'utilise pas ces données pour l'entraînement. Il ne les utilise que comme contexte supplémentaire lors des conversations avec l'agent pour informer ses réponses.

Où l'agent Data Engineering traite vos données

Pour en savoir plus sur les emplacements où l'agent Data Engineering traite vos données, consultez Où Gemini dans BigQuery traite-t-il vos données ?.

Avant de commencer

Avant d'utiliser l'agent Data Engineering, 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.

Activer l'API Gemini Data Analytics

Activer l'API Gemini pour Google Cloud

Activer l'API BigQuery

gcloud

Pour activer l'API Gemini Data Analytics, l'API Gemini pour Google Cloud et l'API BigQuery, 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 Data Engineering, demandez à votre administrateur de vous accorder les rôles IAM suivants 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 utiliser l'agent Data Engineering.

Vous pouvez également obtenir cette autorisation avec des rôles personnalisés ou d'autres rôles prédéfinis.

Conditions préalables à l'intégration de Knowledge Catalog

Pour obtenir l'autorisation nécessaire pour intégrer l'agent Data Engineering à 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 Data Engineering au catalogue de connaissances.

Vous pouvez également obtenir cette autorisation avec des rôles personnalisés ou d'autres rôles prédéfinis.

Vous devez également activer l'API Knowledge Catalog.

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 par défaut gérées par le client 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é Dataform Cloud Key Management Service par défaut.

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

Vous pouvez utiliser l'agent d'ingénierie des données dans l'interface des pipelines BigQuery en procédant comme suit :

  1. Accédez à la page BigQuery.

    Accéder à BigQuery

  2. Dans l'éditeur de requête, cliquez sur arrow_drop_down Créer > Pipeline.

  3. Sélectionnez une option pour les identifiants d'exécution, puis cliquez sur Commencer. Ces identifiants ne sont pas utilisés par l'agent, mais sont nécessaires pour exécuter le pipeline de données généré.

  4. Cliquez sur Tester l'expérience de l'agent pour le pipeline de données.

  5. 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 une requête, cliquez sur Envoyer.

  6. L'agent d'ingénierie des données génère un pipeline de données en fonction de votre requête.

L'agent d'ingénierie des données génère une proposition 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.

Pipeline de données avec un bouton "Appliquer" mis en évidence, indiquant les modifications suggérées par l'agent d'ingénierie des données.

Dataform

Vous pouvez utiliser l'agent Data Engineering dans Dataform en procédant comme suit :

  1. Accédez à Dataform.

    Accéder à Dataform

  2. Sélectionnez un dépôt.

  3. Sélectionnez ou créez un espace de travail de développement.

  4. Dans l'espace de travail, cliquez sur Demander à l'agent.

  5. Dans le prompt Demander à l'agent qui s'affiche, saisissez une requête 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 une requête, cliquez sur Envoyer.

Une fois votre requête envoyée, l'agent Data Engineering génère un pipeline de données et modifie les fichiers SQLX Dataform en fonction de votre requête. L'agent applique ces modifications directement à vos fichiers d'espace de travail.

Modifier un pipeline de données

Pour modifier votre pipeline de données, cliquez sur Demander à l'agent, puis saisissez une requête suggérant une modification du pipeline de données.

Interface du pipeline de données avec le bouton "Demander à un agent" mis en évidence.

Examinez les modifications proposées par l'agent Data Engineering, 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 les tables 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, vérifiez que vous avez rempli tous les prérequis pour exécuter l'agent Data Engineering. Pour en savoir plus, consultez Avant de commencer.

Si le pipeline de données rencontre des erreurs lors de son exécution, vous pouvez demander à l'agent Data Engineering de diagnostiquer les échecs du pipeline de données et de proposer des recommandations de dépannage. L'agent Data Engineering s'intègre aux investigations Gemini Cloud Assist pour exécuter une analyse des causes fondamentales et suggérer des recommandations de dépannage.

Vous pouvez utiliser l'agent Data Engineering pour résoudre les erreurs de pipeline de données en suivant les étapes ci-dessous :

  1. Dans votre pipeline ou votre espace de travail de développement, cliquez sur l'onglet Exécutions.
  2. Dans la liste des exécutions, recherchez l'exécution du pipeline de données qui a échoué. Vous pouvez identifier les exécutions ayant échoué dans la colonne État.

    Liste des exécutions de pipeline, avec une exécution ayant échoué mise en évidence dans la colonne "État".

  3. Pointez sur l'icône, puis cliquez sur Examiner. L'agent Data Engineering effectue une analyse des causes premières sur l'exécution de votre pipeline de données pour détecter les erreurs.

    Interface de pipeline de données affichant une icône "Examiner" pour une exécution ayant échoué, invitant l'agent Data Engineering à diagnostiquer les erreurs.

  4. Une fois l'analyse terminée, l'agent Data Engineering génère un rapport dans la section Observations et hypothèses. Le rapport inclut les éléments suivants :

    • Observations et points de données extraits des journaux d'exécution du pipeline de données.
    • Causes probables de l'échec.
    • Ensemble d'étapes ou de recommandations exploitables pour résoudre le problème identifié.

Le rapport de dépannage de l'agent Data Engineering vous permet d'implémenter manuellement les recommandations. Vous pouvez également demander à l'agent Data Engineering d'appliquer la correction pour vous en procédant comme suit :

  1. Copiez les suggestions du rapport de dépannage.
  2. Revenez à l'agent d'ingénierie des données :
    1. Si vous utilisez des pipelines BigQuery, accédez à la page des pipelines, puis cliquez sur Demander à l'agent.
    2. Si vous utilisez Dataform, cliquez sur Demander à un agent.
  3. Collez les suggestions dans la requête, puis demandez à l'agent Data Engineering d'apporter les corrections directement à votre pipeline de données.
  4. Cliquez sur Envoyer.

Fonctionnalités et personnalisations supplémentaires pour les agents

Les sections suivantes décrivent des fonctionnalités d'agent supplémentaires et d'autres méthodes permettant de personnaliser l'agent Data Engineering.

Créer des instructions pour l'agent

Les instructions de l'agent sont des instructions en langage naturel destinées à l'agent Data Engineering. Elles vous permettent de stocker des instructions persistantes afin que l'agent suive un ensemble de règles personnalisées prédéfinies. Utilisez des instructions pour l'agent si vous souhaitez que les résultats de l'agent soient cohérents dans toute 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 de l'agent pour l'agent Data Engineering. 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 pour l'agent :

  1. Sous Demander à l'agent, cliquez sur Instructions du pipeline.
  2. Dans le volet Instructions pour le pipeline, cliquez sur Créer un fichier d'instructions.
  3. Dans le fichier GEMINI.MD qui s'affiche, saisissez vos instructions en langage naturel.

    L'exemple suivant montre un fichier d'instructions pour l'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.
    
  4. 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 :

  1. Sous Demander à l'agent, cliquez sur Instructions du pipeline.
  2. Sous Dépôt externe, sélectionnez Utiliser les instructions d'un dépôt externe.
  3. 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.
  4. Cliquez sur Enregistrer.

Importer des fichiers locaux supplémentaires comme instructions pour l'agent

Vous pouvez également importer d'autres fichiers d'instructions pour l'agent Data Engineering dans le fichier GEMINI.md avec la syntaxe @file.md. Pour en savoir plus, consultez Processeur d'importation de mémoire.

Nettoyage automatique des données

Vous pouvez utiliser l'agent Data Engineering pour transformer des données brutes non traitées en tables structurées adaptées à l'analyse des données. Sur demande, l'agent échantillonne d'abord jusqu'à 1 000 000 d'enregistrements de chaque table standard ou externe. L'agent effectue ensuite une analyse approfondie des données en exécutant des requêtes de profilage sur cet échantillon. Après avoir généré des transformations de données, l'agent répète ce processus d'échantillonnage et de profilage pour évaluer la qualité des transformations. Ces transformations de préparation des données peuvent inclure la correction d'incohérences, de valeurs aberrantes ou d'incompatibilités de types de données. L'agent d'ingénierie des données crée ensuite un plan qui décrit les étapes de préparation proposées. Vous pouvez l'examiner et l'affiner avant toute action.

L'agent Data Engineering lance également l'analyse de préparation des données chaque fois que vous ajoutez un tableau brut, tel qu'un tableau externe basé sur un fichier CSV. Vous pouvez examiner le plan de préparation des données et l'ajuster à l'aide de commandes conversationnelles.

L'échantillonnage et le profilage des données utilisent des ressources BigQuery et sont soumis aux tarifs de BigQuery.

L'agent Data Engineering est compatible avec les transformations de préparation des données suivantes :

  • Nettoyage des données. L'agent peut analyser les données brutes et suggérer des opportunités de nettoyage, comme la suppression des valeurs aberrantes, le remplissage des valeurs manquantes ou incohérentes (imputation de données), la correction des données en double ou la standardisation des formats de données (par exemple, les numéros de téléphone ou les adresses).
  • Transformations structurelles Lorsqu'un schéma cible est fourni, l'agent peut annuler l'imbrication ou extraire des valeurs des types JSON, ARRAY ou STRUCT, fusionner plusieurs colonnes en une seule ou fractionner une colonne en plusieurs colonnes.
  • Détection et conversion des types de données. L'agent peut analyser les données pour déterminer les types de champs appropriés. L'agent peut ensuite effectuer un transtypage sécurisé pour résoudre les incohérences de mise en forme dans les champs de date, d'heure, de date et heure ou de code temporel.
  • Conversions d'unités L'agent peut convertir automatiquement différentes unités d'un champ en une seule unité cohérente pour normaliser vos données.

Pour garantir l'exactitude, l'agent utilise des échantillons représentatifs de vos données pour détecter les problèmes et valider sa logique de transformation.

Générer et examiner des plans d'agent

L'agent d'ingénierie des données peut générer des plans d'agent qui fournissent un résumé et une présentation des objectifs et des étapes à suivre pour répondre à une demande. Lorsque vous demandez à l'agent d'effectuer des requêtes complexes nécessitant de nombreuses modifications, nous vous recommandons de lui demander de vous fournir un plan d'agent afin que vous puissiez examiner ses intentions avant qu'il n'effectue des actions. Un forfait Agent d'ingénierie des données comprend généralement les éléments suivants :

  • Objectif de l'agent pour une demande spécifique
  • Aperçu général des étapes que l'agent prévoit de suivre
  • Toutes les hypothèses formulées par l'agent
  • Fichiers que l'agent prévoit de modifier
  • Toutes les étapes d'optimisation ou de nettoyage qu'il prévoit d'effectuer
  • Un plan d'exécution par étapes

Dans votre requête, vous pouvez inclure la nécessité d'examiner et d'approuver le plan afin que l'agent n'effectue aucune action sans votre approbation explicite. Exemple :

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.

L'agent peut également générer automatiquement un plan d'agent et vous demander de l'approuver. Ce résultat peut se produire lorsqu'une requête est trop ambiguë ou si l'agent a besoin de plus de clarté pour répondre à votre demande.

Pour connaître les bonnes pratiques concernant l'utilisation des forfaits d'agent, consultez Bonnes pratiques.

Ajouter du contexte depuis Knowledge Catalog

L'agent Data Engineering utilise Knowledge Catalog en associant des termes de glossaire à des tables et des colonnes BigQuery, et en générant des analyses de profil de données. Les termes du glossaire peuvent taguer les colonnes qui nécessitent un contexte supplémentaire, comme les colonnes contenant des informations permettant d'identifier personnellement l'utilisateur et qui nécessitent des instructions de traitement spécifiques, ou pour identifier les colonnes correspondantes avec des noms différents dans les tables.

Le catalogue de connaissances utilise également le profilage des données, qui permet à l'agent de mieux comprendre la distribution des données dans les colonnes des tableaux et de créer des assertions de qualité des données plus spécifiques.

Ajouter des vérifications de la qualité des données à une table existante

Lorsque vous demandez à l'agent d'ajouter des contrôles de qualité, il en déduit des contrôles raisonnables pour le tableau en fonction du schéma et des exemples. Vous pouvez également ajouter des affirmations subjectives au prompt. Exemple :

  Add data quality checks for bigquery-public-data.thelook_ecommerce.users.

Optimisez les pipelines de données

Vous pouvez demander à l'agent d'optimiser vos pipelines de données. Lorsque vous générez le LDD pour de nouvelles tables, l'agent Data Engineering recommande le partitionnement et le clustering en fonction des modèles d'utilisation des données analysés. De plus, l'agent peut appliquer automatiquement d'autres optimisations de pipeline. Voici quelques exemples d'optimisations possibles :

  • L'élagage des colonnes permet de réduire les données lues à partir du stockage et d'agir comme principal moteur de coûts et de performances.
  • Les pushdowns de prédicats permettent de filtrer les données en amont dans le plan d'exécution afin de réduire considérablement le volume traité par les opérations suivantes.
  • Élimination des sous-expressions courantes pour améliorer l'efficacité en identifiant et en calculant la logique de transformation partagée une seule fois, ce qui évite les pratiques inefficaces telles que l'analyse et la jointure de grandes tables plusieurs fois.
  • Modèles incrémentiels permettant de traiter uniquement les données nouvelles ou modifiées depuis la dernière exécution, au lieu de régénérer des tables entières à chaque exécution.

Exemples de requêtes

Les sections suivantes fournissent des exemples de requêtes que vous pouvez utiliser avec l'agent Data Engineering pour développer votre pipeline de données.

Regrouper des données existantes dans une nouvelle table

Avec cette requête, l'agent d'ingénierie des données utilise le schéma et les exemples pour déduire le regroupement des données par clé. L'agent configure généralement une nouvelle configuration de table avec des descriptions de table et de colonnes.

  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 vérifications de la qualité des données à la nouvelle table

Cette requête montre comment ajouter un tableau et une colonne, et spécifier des contrôles de qualité pour le tableau 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 UDF dans la définition du modèle

L'agent Data Engineering peut également configurer le LDD pour créer des fonctions définies par l'utilisateur (UDF). L'agent ne créera pas la UDF définie par l'utilisateur, mais vous pourrez UDF créer en exécutant le pipeline de données. Ces UDF 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.

Bonnes pratiques

Pour améliorer les résultats lorsque vous travaillez avec l'agent Data Engineering et Dataform, nous vous recommandons de procéder comme suit :

Utilisez les instructions de l'agent pour les demandes 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 demandes courantes.

Utilisez des plans d'agent. Ils peuvent vous aider à décomposer les tâches complexes du pipeline. Les plans de l'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 Data Engineering. 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 n'a pas besoin de votre approbation explicite. Le fait de demander à l'agent de planifier ses actions l'oblige à les décomposer, 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 des sources de données source et de destination lorsque vous posez une question, comme 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.

Formulez des demandes 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 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).

Donnez 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 indiqué 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 commet d'autres erreurs, guidez-le à l'aide d'exemples ou de 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).

Bonnes pratiques concernant les fichiers d'instructions pour les agents

Créez des fichiers d'instructions pour l'agent afin de personnaliser l'agent Data Engineering en fonction de vos besoins. Lorsque vous utilisez des instructions pour l'agent, nous vous recommandons de suivre les conseils suivants :

  • Tous les chemins d'accès aux fichiers dans Dataform sont relatifs à la racine du dépôt. Utilisez des chemins relatifs pour toute syntaxe @file.md afin d'importer correctement les instructions vers GEMINI.md.
  • Les fichiers importés dans GEMINI.md peuvent eux-mêmes contenir des importations, ce qui peut créer une structure imbriquée. Pour éviter une récursion infinie, GEMINI.md a une profondeur d'importation maximale de cinq niveaux.
  • Pour partager des instructions entre les pipelines de données, stockez-les dans un dépôt Dataform central et associez-les au dépôt Dataform de travail. Vous pouvez utiliser des instructions locales pour remplacer les règles centrales pour un comportement spécifique au pipeline.
  • Pour assurer la cohérence de votre projet, vous pouvez créer des liens vers des fichiers de conventions de dénomination ou des guides de style, et demander à l'agent de suivre ces consignes lorsqu'il travaille avec vos pipelines de données.
  • Vous pouvez suggérer des calques de données dans le fichier d'instructions pour regrouper différents types de données.
  • L'utilisation de titres et de listes dans le fichier d'instructions de l'agent peut aider à organiser et à clarifier les instructions pour l'agent Data Engineering.
  • Fournissez des noms de fichiers pertinents et regroupez les instructions similaires dans un fichier. Organisez les règles de manière logique par catégorie, fonctionnalité ou fonction à l'aide de titres Markdown.
  • Pour éviter toute instruction contradictoire, définissez clairement les conditions spécifiques dans lesquelles chaque instruction s'applique.
  • Itérez et affinez vos requêtes et votre workflow. Le comportement des agents évolue au fil du temps avec les déploiements d'agents et les mises à niveau de modèles. Nous vous recommandons donc d'itérer sur vos règles avec différentes requêtes pour identifier les points à améliorer. Synchronisez votre fichier de règles avec les modifications apportées à votre pipeline de données.

L'exemple suivant montre un fichier d'instructions d'agent nommé GEMINI.md qui utilise nos bonnes pratiques pour une utilisation efficace de l'agent Data Engineering :

  ### 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