Outil : create_compilation_result
Crée un résultat de compilation Dataform dans un projet et un emplacement Google Cloud donnés.
Cet outil compile les fichiers .sqlx en code SQL exécutable. Les agents doivent savoir que les modifications de code ultérieures ne sont pas reflétées dans ce résultat, sauf si une nouvelle compilation est déclenchée.
La valeur du paramètre parent doit être au format projects/{project_id}/locations/{location}/repositories/{repository}.
Les agents peuvent valider le code SQL compilé en inspectant les ressources CompilationResultAction et en utilisant potentiellement un outil BigQuery pour un dry run.
Un résultat de compilation valide est requis avant de déclencher manuellement un workflow à l'aide de l'outil create_workflow_invocation.
Prérequis : Créez un dépôt à l'aide de l'outil create_repository avant d'appeler l'outil create_compilation_result.
L'exemple de code suivant montre comment utiliser curl pour appeler l'outil MCP create_compilation_result.
| Requête curl |
|---|
curl --location 'https://dataform.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "create_compilation_result", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
Schéma d'entrée
Message de requête CreateCompilationResult.
CreateCompilationResultRequest
| Représentation JSON |
|---|
{
"parent": string,
"compilationResult": {
object ( |
| Champs | |
|---|---|
parent |
Obligatoire. Dépôt dans lequel créer le résultat de la compilation. Il doit respecter le format |
compilationResult |
Obligatoire. Résultat de la compilation à créer. |
CompilationResult
| Représentation JSON |
|---|
{ "name": string, "codeCompilationConfig": { object ( |
| Champs | |
|---|---|
name |
Uniquement en sortie. Nom du résultat de la compilation. |
codeCompilationConfig |
Immuable. Si cette option est définie, les champs de |
resolvedGitCommitSha |
Uniquement en sortie. SHA de commit Git entièrement résolu du code compilé. Non défini pour les résultats de compilation dont la source est un espace de travail. |
dataformCoreVersion |
Uniquement en sortie. Version de |
compilationErrors[] |
Uniquement en sortie. Erreurs rencontrées lors de la compilation du projet. |
dataEncryptionState |
Uniquement en sortie. Défini uniquement si le dépôt possède une clé KMS. |
createTime |
Uniquement en sortie. Code temporel de la création du résultat de la compilation. Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : |
privateResourceMetadata |
Uniquement en sortie. Métadonnées indiquant si cette ressource est de portée utilisateur. La ressource |
gcsRepositorySnapshotMetadata |
Uniquement en sortie. Métadonnées sur l'instantané du dépôt utilisé par les notebooks planifiés. |
Champ d'union source. Source du résultat de la compilation. source ne peut être qu'un des éléments suivants : |
|
gitCommitish |
Immuable. Nom de la branche, du tag ou du commit Git à partir duquel le dépôt doit être compilé. Doit exister dans le dépôt distant. Exemples : - un SHA de commit : |
workspace |
Immuable. Nom de l'espace de travail à compiler. Il doit respecter le format |
releaseConfig |
Immuable. Nom de la configuration de version à compiler. Il doit respecter le format |
Champ d'union
|
|
internalMetadata |
Uniquement en sortie. Toutes les informations de métadonnées utilisées en interne pour diffuser la ressource. Par exemple : codes temporels, indicateurs, champs d'état, etc. Le format de ce champ est une chaîne JSON. |
CodeCompilationConfig
| Représentation JSON |
|---|
{ "defaultDatabase": string, "defaultSchema": string, "defaultLocation": string, "assertionSchema": string, "vars": { string: string, ... }, "databaseSuffix": string, "schemaSuffix": string, "tablePrefix": string, "builtinAssertionNamePrefix": string, "defaultNotebookRuntimeOptions": { object ( |
| Champs | |
|---|---|
defaultDatabase |
Facultatif. Base de données par défaut (ID du projet Google Cloud). |
defaultSchema |
Facultatif. Schéma par défaut (ID de l'ensemble de données BigQuery). |
defaultLocation |
Facultatif. Emplacement BigQuery par défaut à utiliser. La valeur par défaut est "US". Pour obtenir la liste complète des emplacements, consultez la documentation BigQuery : https://cloud.google.com/bigquery/docs/locations. |
assertionSchema |
Facultatif. Schéma par défaut (ID de l'ensemble de données BigQuery) pour les assertions. |
vars |
Facultatif. Variables définies par l'utilisateur et mises à la disposition du code du projet lors de la compilation. Objet contenant une liste de paires |
databaseSuffix |
Facultatif. Suffixe à ajouter à tous les noms de bases de données (ID de projet Google Cloud). |
schemaSuffix |
Facultatif. Suffixe à ajouter à tous les noms de schémas (ID d'ensemble de données BigQuery). |
tablePrefix |
Facultatif. Préfixe à ajouter à tous les noms de tables. |
builtinAssertionNamePrefix |
Facultatif. Préfixe à ajouter aux noms d'assertion intégrés. |
defaultNotebookRuntimeOptions |
Facultatif. Options d'exécution de notebook par défaut. |
pipelineConfig |
Facultatif. Options de pipeline qui définissent le type et le chemin d'accès du pipeline dans le dépôt Git. |
VarsEntry
| Représentation JSON |
|---|
{ "key": string, "value": string } |
| Champs | |
|---|---|
key |
|
value |
|
NotebookRuntimeOptions
| Représentation JSON |
|---|
{ "aiPlatformNotebookRuntimeTemplate": string, // Union field |
| Champs | |
|---|---|
aiPlatformNotebookRuntimeTemplate |
Facultatif. Nom de ressource du modèle d'exécution Colab à partir duquel un environnement d'exécution est créé pour les exécutions de notebooks. Si aucune spécification n'est fournie, un environnement d'exécution est créé avec les spécifications par défaut de Colab. |
Champ d'union execution_sink. Emplacement pour stocker le résultat de l'exécution du notebook. execution_sink ne peut être qu'un des éléments suivants : |
|
gcsOutputBucket |
Facultatif. Emplacement Google Cloud Storage dans lequel importer le résultat. Format : |
Champ d'union repository_snapshot_storage. La destination de l'instantané des fichiers de dépôt qui seront disponibles en accès en lecture seule dans un environnement d'exécution de notebook repository_snapshot_storage ne peut être que l'une des suivantes : |
|
gcsRepositorySnapshotDestination |
Facultatif. Destination Google Cloud Storage vers laquelle importer l'instantané. Si l'URI est vide, le bucket de sortie GCS fourni est utilisé par défaut. Format : |
GcsRepositorySnapshotDestination
| Représentation JSON |
|---|
{ "repositorySnapshotUri": string } |
| Champs | |
|---|---|
repositorySnapshotUri |
Facultatif. Destination Google Cloud Storage vers laquelle importer l'instantané du dépôt. Format : |
PipelineConfig
| Représentation JSON |
|---|
{
"pipelineType": enum ( |
| Champs | |
|---|---|
pipelineType |
Obligatoire. Type de pipeline. |
path |
Obligatoire. Chemin d'accès relatif dans le dépôt Git où le pipeline est défini. Par exemple, pour un pipeline Dataform, il s'agit d'un chemin d'accès au dossier où se trouve |
CompilationError
| Représentation JSON |
|---|
{
"message": string,
"stack": string,
"path": string,
"actionTarget": {
object ( |
| Champs | |
|---|---|
message |
Uniquement en sortie. Message de premier niveau de l'erreur. |
stack |
Uniquement en sortie. Trace de la pile complète de l'erreur. |
path |
Uniquement en sortie. Chemin d'accès au fichier dans lequel cette erreur s'est produite, le cas échéant, par rapport à la racine du projet. |
actionTarget |
Uniquement en sortie. Identifiant de l'action au cours de laquelle cette erreur s'est produite, le cas échéant. |
Cible
| Représentation JSON |
|---|
{ "database": string, "schema": string, "name": string } |
| Champs | |
|---|---|
database |
Facultatif. Base de données de l'action (ID de projet Google Cloud) . |
schema |
Facultatif. Schéma de l'action (ID de l'ensemble de données BigQuery), dans |
name |
Facultatif. Nom de l'action, dans |
DataEncryptionState
| Représentation JSON |
|---|
{ "kmsKeyVersionName": string } |
| Champs | |
|---|---|
kmsKeyVersionName |
Obligatoire. Nom de la version de clé KMS avec laquelle les données d'une ressource sont chiffrées. |
Horodatage
| Représentation JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Champs | |
|---|---|
seconds |
Représente les secondes de l'heure UTC à partir de l'epoch Unix 1970-01-01T00:00:00Z. La valeur doit être comprise entre -62135596800 et 253402300799 inclus (ce qui correspond à 0001-01-01T00:00:00Z et 9999-12-31T23:59:59Z). |
nanos |
Fractions de secondes non négatives avec une précision de l'ordre de la nanoseconde. Ce champ correspond à la partie en nanosecondes de la durée, et non à une alternative aux secondes. Les valeurs de secondes négatives avec des fractions doivent toujours comporter des valeurs de nanosecondes non négatives comptabilisées dans le temps. La valeur doit être comprise entre 0 et 999 999 999 inclus. |
PrivateResourceMetadata
| Représentation JSON |
|---|
{ "userScoped": boolean } |
| Champs | |
|---|---|
userScoped |
Uniquement en sortie. Si la valeur est "true", cette ressource est de portée utilisateur, ce qui signifie qu'elle est associée à un espace de travail ou provient d'un espace de travail. |
GcsRepositorySnapshotMetadata
| Représentation JSON |
|---|
{ "repositorySnapshotUri": string, "crc32cChecksum": string, "generation": string } |
| Champs | |
|---|---|
repositorySnapshotUri |
Uniquement en sortie. URI Google Cloud Storage du snapshot du dépôt. |
crc32cChecksum |
Uniquement en sortie. Somme de contrôle crc32c de l'instantané du dépôt, encodée en base64 big-endian. |
generation |
Uniquement en sortie. Numéro de génération de l'objet Cloud Storage. Consultez https://cloud.google.com/storage/docs/metadata#generation-number. |
PipelineType
Type de pipeline. Cette durée pourra être prolongée à l'avenir. En cas de valeur UNSPECIFIED, l'erreur sera générée.
| Enums | |
|---|---|
PIPELINE_TYPE_UNSPECIFIED |
Valeur par défaut. Cette valeur n'est pas utilisée. |
DATAFORM |
Pipeline Dataform standard. |
SQL |
Élément de fichier unique SQL. |
NOTEBOOK |
Composant de fichier unique Notebook. |
Schéma de sortie
Représente le résultat de la compilation d'un projet Dataform.
CompilationResult
| Représentation JSON |
|---|
{ "name": string, "codeCompilationConfig": { object ( |
| Champs | |
|---|---|
name |
Uniquement en sortie. Nom du résultat de la compilation. |
codeCompilationConfig |
Immuable. Si cette option est définie, les champs de |
resolvedGitCommitSha |
Uniquement en sortie. SHA de commit Git entièrement résolu du code compilé. Non défini pour les résultats de compilation dont la source est un espace de travail. |
dataformCoreVersion |
Uniquement en sortie. Version de |
compilationErrors[] |
Uniquement en sortie. Erreurs rencontrées lors de la compilation du projet. |
dataEncryptionState |
Uniquement en sortie. Défini uniquement si le dépôt possède une clé KMS. |
createTime |
Uniquement en sortie. Code temporel de la création du résultat de la compilation. Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : |
privateResourceMetadata |
Uniquement en sortie. Métadonnées indiquant si cette ressource est de portée utilisateur. La ressource |
gcsRepositorySnapshotMetadata |
Uniquement en sortie. Métadonnées sur l'instantané du dépôt utilisé par les notebooks planifiés. |
Champ d'union source. Source du résultat de la compilation. source ne peut être qu'un des éléments suivants : |
|
gitCommitish |
Immuable. Nom de la branche, du tag ou du commit Git à partir duquel le dépôt doit être compilé. Doit exister dans le dépôt distant. Exemples : - un SHA de commit : |
workspace |
Immuable. Nom de l'espace de travail à compiler. Il doit respecter le format |
releaseConfig |
Immuable. Nom de la configuration de version à compiler. Il doit respecter le format |
Champ d'union
|
|
internalMetadata |
Uniquement en sortie. Toutes les informations de métadonnées utilisées en interne pour diffuser la ressource. Par exemple : codes temporels, indicateurs, champs d'état, etc. Le format de ce champ est une chaîne JSON. |
CodeCompilationConfig
| Représentation JSON |
|---|
{ "defaultDatabase": string, "defaultSchema": string, "defaultLocation": string, "assertionSchema": string, "vars": { string: string, ... }, "databaseSuffix": string, "schemaSuffix": string, "tablePrefix": string, "builtinAssertionNamePrefix": string, "defaultNotebookRuntimeOptions": { object ( |
| Champs | |
|---|---|
defaultDatabase |
Facultatif. Base de données par défaut (ID du projet Google Cloud). |
defaultSchema |
Facultatif. Schéma par défaut (ID de l'ensemble de données BigQuery). |
defaultLocation |
Facultatif. Emplacement BigQuery par défaut à utiliser. La valeur par défaut est "US". Pour obtenir la liste complète des emplacements, consultez la documentation BigQuery : https://cloud.google.com/bigquery/docs/locations. |
assertionSchema |
Facultatif. Schéma par défaut (ID de l'ensemble de données BigQuery) pour les assertions. |
vars |
Facultatif. Variables définies par l'utilisateur et mises à la disposition du code du projet lors de la compilation. Objet contenant une liste de paires |
databaseSuffix |
Facultatif. Suffixe à ajouter à tous les noms de bases de données (ID de projet Google Cloud). |
schemaSuffix |
Facultatif. Suffixe à ajouter à tous les noms de schémas (ID d'ensemble de données BigQuery). |
tablePrefix |
Facultatif. Préfixe à ajouter à tous les noms de tables. |
builtinAssertionNamePrefix |
Facultatif. Préfixe à ajouter aux noms d'assertion intégrés. |
defaultNotebookRuntimeOptions |
Facultatif. Options d'exécution de notebook par défaut. |
pipelineConfig |
Facultatif. Options de pipeline qui définissent le type et le chemin d'accès du pipeline dans le dépôt Git. |
VarsEntry
| Représentation JSON |
|---|
{ "key": string, "value": string } |
| Champs | |
|---|---|
key |
|
value |
|
NotebookRuntimeOptions
| Représentation JSON |
|---|
{ "aiPlatformNotebookRuntimeTemplate": string, // Union field |
| Champs | |
|---|---|
aiPlatformNotebookRuntimeTemplate |
Facultatif. Nom de ressource du modèle d'exécution Colab à partir duquel un environnement d'exécution est créé pour les exécutions de notebooks. Si aucune spécification n'est fournie, un environnement d'exécution est créé avec les spécifications par défaut de Colab. |
Champ d'union execution_sink. Emplacement pour stocker le résultat de l'exécution du notebook. execution_sink ne peut être qu'un des éléments suivants : |
|
gcsOutputBucket |
Facultatif. Emplacement Google Cloud Storage dans lequel importer le résultat. Format : |
Champ d'union repository_snapshot_storage. La destination de l'instantané des fichiers de dépôt qui seront disponibles en accès en lecture seule dans un environnement d'exécution de notebook repository_snapshot_storage ne peut être que l'une des suivantes : |
|
gcsRepositorySnapshotDestination |
Facultatif. Destination Google Cloud Storage vers laquelle importer l'instantané. Si l'URI est vide, le bucket de sortie GCS fourni est utilisé par défaut. Format : |
GcsRepositorySnapshotDestination
| Représentation JSON |
|---|
{ "repositorySnapshotUri": string } |
| Champs | |
|---|---|
repositorySnapshotUri |
Facultatif. Destination Google Cloud Storage vers laquelle importer l'instantané du dépôt. Format : |
PipelineConfig
| Représentation JSON |
|---|
{
"pipelineType": enum ( |
| Champs | |
|---|---|
pipelineType |
Obligatoire. Type de pipeline. |
path |
Obligatoire. Chemin d'accès relatif dans le dépôt Git où le pipeline est défini. Par exemple, pour un pipeline Dataform, il s'agit d'un chemin d'accès au dossier où se trouve |
CompilationError
| Représentation JSON |
|---|
{
"message": string,
"stack": string,
"path": string,
"actionTarget": {
object ( |
| Champs | |
|---|---|
message |
Uniquement en sortie. Message de premier niveau de l'erreur. |
stack |
Uniquement en sortie. Trace de la pile complète de l'erreur. |
path |
Uniquement en sortie. Chemin d'accès au fichier dans lequel cette erreur s'est produite, le cas échéant, par rapport à la racine du projet. |
actionTarget |
Uniquement en sortie. Identifiant de l'action au cours de laquelle cette erreur s'est produite, le cas échéant. |
Cible
| Représentation JSON |
|---|
{ "database": string, "schema": string, "name": string } |
| Champs | |
|---|---|
database |
Facultatif. Base de données de l'action (ID de projet Google Cloud) . |
schema |
Facultatif. Schéma de l'action (ID de l'ensemble de données BigQuery), dans |
name |
Facultatif. Nom de l'action, dans |
DataEncryptionState
| Représentation JSON |
|---|
{ "kmsKeyVersionName": string } |
| Champs | |
|---|---|
kmsKeyVersionName |
Obligatoire. Nom de la version de clé KMS avec laquelle les données d'une ressource sont chiffrées. |
Horodatage
| Représentation JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Champs | |
|---|---|
seconds |
Représente les secondes de l'heure UTC à partir de l'epoch Unix 1970-01-01T00:00:00Z. La valeur doit être comprise entre -62135596800 et 253402300799 inclus (ce qui correspond à 0001-01-01T00:00:00Z et 9999-12-31T23:59:59Z). |
nanos |
Fractions de secondes non négatives avec une précision de l'ordre de la nanoseconde. Ce champ correspond à la partie en nanosecondes de la durée, et non à une alternative aux secondes. Les valeurs de secondes négatives avec des fractions doivent toujours comporter des valeurs de nanosecondes non négatives comptabilisées dans le temps. La valeur doit être comprise entre 0 et 999 999 999 inclus. |
PrivateResourceMetadata
| Représentation JSON |
|---|
{ "userScoped": boolean } |
| Champs | |
|---|---|
userScoped |
Uniquement en sortie. Si la valeur est "true", cette ressource est de portée utilisateur, ce qui signifie qu'elle est associée à un espace de travail ou provient d'un espace de travail. |
GcsRepositorySnapshotMetadata
| Représentation JSON |
|---|
{ "repositorySnapshotUri": string, "crc32cChecksum": string, "generation": string } |
| Champs | |
|---|---|
repositorySnapshotUri |
Uniquement en sortie. URI Google Cloud Storage du snapshot du dépôt. |
crc32cChecksum |
Uniquement en sortie. Somme de contrôle crc32c de l'instantané du dépôt, encodée en base64 big-endian. |
generation |
Uniquement en sortie. Numéro de génération de l'objet Cloud Storage. Consultez https://cloud.google.com/storage/docs/metadata#generation-number. |
PipelineType
Type de pipeline. Cette durée pourra être prolongée à l'avenir. En cas de valeur UNSPECIFIED, l'erreur sera générée.
| Enums | |
|---|---|
PIPELINE_TYPE_UNSPECIFIED |
Valeur par défaut. Cette valeur n'est pas utilisée. |
DATAFORM |
Pipeline Dataform standard. |
SQL |
Élément de fichier unique SQL. |
NOTEBOOK |
Composant de fichier unique Notebook. |
Annotations d'outils
Les annotations d'outil sont envoyées aux clients MCP pour décrire le risque de base d'un outil donné. La plupart des clients traitent ces indices comme non fiables, mais ils peuvent être utilisés pour déterminer quand un message de confirmation peut être envoyé à un utilisateur.
En plus de la chaîne de titre, les indications booléennes suivantes sont définies comme suit :
readOnlyHint: si la valeur est "true", l'outil ne modifie pas son environnement. Valeur par défaut : "false".destructiveHint: si la valeur est "true", l'outil peut effectuer des actions destructrices. Si la valeur est "false", l'outil ne peut effectuer que des actions d'ajout. Valeur par défaut : "true".idempotentHint: si la valeur est "true", appeler l'outil à plusieurs reprises avec les mêmes arguments n'aura aucun effet supplémentaire sur son environnement. Valeur par défaut : "false".openWorldHint: si la valeur est "true", l'outil peut interagir avec un "monde ouvert" d'entités externes. Si la valeur est "false", l'outil ne peut interagir qu'avec des entités internes. Par exemple, un outil de recherche Web serait en monde ouvert, tandis qu'un outil de mémoire ne le serait pas.
Indication destructive : ❌ | Indication d'idempotence : ❌ | Indication de lecture seule : ❌ | Indication de monde ouvert : ❌