Tool: create_compilation_result
Erstellt ein neues Dataform-Kompilierungsergebnis in einem bestimmten Google Cloud-Projekt und an einem bestimmten Standort.
Mit diesem Tool werden .sqlx-Dateien in ausführbaren SQL-Code kompiliert. KI-Agenten müssen wissen, dass nachfolgende Codeänderungen in diesem Ergebnis nicht berücksichtigt werden, sofern keine neue Kompilierung ausgelöst wird.
Der Parameterwert parent muss das Format projects/{project_id}/locations/{location}/repositories/{repository} haben.
Agents können das kompilierte SQL validieren, indem sie CompilationResultAction-Ressourcen prüfen und möglicherweise ein BigQuery-Tool für einen Probelauf verwenden.
Bevor Sie einen manuellen Workflow mit dem Tool create_workflow_invocation aufrufen, ist ein gültiges Kompilierungsergebnis erforderlich.
Voraussetzung: Erstellen Sie ein Repository mit dem Tool create_repository, bevor Sie das Tool create_compilation_result aufrufen.
Das folgende Codebeispiel zeigt, wie Sie mit curl das MCP-Tool create_compilation_result aufrufen.
| Curl-Anfrage |
|---|
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 }' |
Eingabeschema
CreateCompilationResult-Anfragenachricht.
CreateCompilationResultRequest
| JSON-Darstellung |
|---|
{
"parent": string,
"compilationResult": {
object ( |
| Felder | |
|---|---|
parent |
Erforderlich. Das Repository, in dem das Kompilierungsergebnis erstellt werden soll. Muss das Format |
compilationResult |
Erforderlich. Das zu erstellende Kompilierungsergebnis. |
CompilationResult
| JSON-Darstellung |
|---|
{ "name": string, "codeCompilationConfig": { object ( |
| Felder | |
|---|---|
name |
Nur Ausgabe. Der Name des Kompilierungsergebnisses. |
codeCompilationConfig |
Nicht veränderbar. Wenn festgelegt, überschreiben die Felder von |
resolvedGitCommitSha |
Nur Ausgabe. Die vollständig aufgelöste Git-Commit-SHA des kompilierten Codes. Nicht für Kompilierungsergebnisse festgelegt, deren Quelle ein Arbeitsbereich ist. |
dataformCoreVersion |
Nur Ausgabe. Die Version von |
compilationErrors[] |
Nur Ausgabe. Fehler, die während der Projektkompilierung aufgetreten sind. |
dataEncryptionState |
Nur Ausgabe. Wird nur festgelegt, wenn das Repository einen KMS-Schlüssel hat. |
createTime |
Nur Ausgabe. Der Zeitstempel für die Erstellung des Kompilierungsergebnisses. Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: |
privateResourceMetadata |
Nur Ausgabe. Metadaten, die angeben, ob diese Ressource auf Nutzerebene ist. Die |
gcsRepositorySnapshotMetadata |
Nur Ausgabe. Metadaten zum Repository-Snapshot, der von geplanten Notebooks verwendet wird. |
Union-Feld source. Die Quelle des Kompilierungsergebnisses. Für source ist nur einer der folgenden Werte zulässig: |
|
gitCommitish |
Nicht veränderbar. Name des Git-Commits, -Tags oder -Zweigs, in dem das Repository kompiliert werden soll. Muss im Remote-Repository vorhanden sein. Beispiele: – ein Commit-SHA: |
workspace |
Nicht veränderbar. Der Name des zu kompilierenden Arbeitsbereichs. Muss das Format |
releaseConfig |
Nicht veränderbar. Der Name der zu kompilierenden Releasekonfiguration. Muss das Format |
Union-Feld Für |
|
internalMetadata |
Nur Ausgabe. Alle Metadateninformationen, die intern zum Bereitstellen der Ressource verwendet werden. Beispiele: Zeitstempel, Flags, Statusfelder usw. Das Format dieses Felds ist ein JSON-String. |
CodeCompilationConfig
| JSON-Darstellung |
|---|
{ "defaultDatabase": string, "defaultSchema": string, "defaultLocation": string, "assertionSchema": string, "vars": { string: string, ... }, "databaseSuffix": string, "schemaSuffix": string, "tablePrefix": string, "builtinAssertionNamePrefix": string, "defaultNotebookRuntimeOptions": { object ( |
| Felder | |
|---|---|
defaultDatabase |
Optional. Die Standarddatenbank (Google Cloud-Projekt-ID). |
defaultSchema |
Optional. Das Standardschema (BigQuery-Dataset-ID). |
defaultLocation |
Optional. Der zu verwendende Standard-BigQuery-Standort. Der Standardwert ist „US“. Eine vollständige Liste der Standorte finden Sie in der BigQuery-Dokumentation: https://cloud.google.com/bigquery/docs/locations. |
assertionSchema |
Optional. Das Standardschema (BigQuery-Dataset-ID) für Behauptungen. |
vars |
Optional. Benutzerdefinierte Variablen, die dem Projektcode während der Kompilierung zur Verfügung gestellt werden. Ein Objekt, das eine Liste von |
databaseSuffix |
Optional. Das Suffix, das an alle Datenbanknamen (Google Cloud-Projekt-ID) angehängt werden soll. |
schemaSuffix |
Optional. Das Suffix, das an alle Schemanamen (BigQuery-Dataset-ID) angehängt werden soll. |
tablePrefix |
Optional. Das Präfix, das allen Tabellennamen vorangestellt werden soll. |
builtinAssertionNamePrefix |
Optional. Das Präfix, das den Namen integrierter Zusicherungen vorangestellt wird. |
defaultNotebookRuntimeOptions |
Optional. Die Standardoptionen für die Notebook-Laufzeit. |
pipelineConfig |
Optional. Die Pipelineoptionen, die den Pipelinetyp und den Pfad innerhalb des Git-Repositorys definieren. |
VarsEntry
| JSON-Darstellung |
|---|
{ "key": string, "value": string } |
| Felder | |
|---|---|
key |
|
value |
|
NotebookRuntimeOptions
| JSON-Darstellung |
|---|
{ "aiPlatformNotebookRuntimeTemplate": string, // Union field |
| Felder | |
|---|---|
aiPlatformNotebookRuntimeTemplate |
Optional. Der Ressourcenname der Colab-Laufzeitvorlage, aus der eine Laufzeit für Notebook-Ausführungen erstellt wird. Wenn keine Angabe erfolgt, wird eine Laufzeit mit den Standardspezifikationen von Colab erstellt. |
Union-Feld execution_sink. Der Speicherort, an dem das Ergebnis der Notebookausführung gespeichert werden soll. Für execution_sink ist nur einer der folgenden Werte zulässig: |
|
gcsOutputBucket |
Optional. Der Google Cloud Storage-Speicherort, an den das Ergebnis hochgeladen werden soll. Format: |
Union-Feld repository_snapshot_storage. Das Ziel des Snapshots von Repository-Dateien, die für den schreibgeschützten Zugriff in einer Notebook-Laufzeit repository_snapshot_storage verfügbar sein sollen, kann nur eines der folgenden sein: |
|
gcsRepositorySnapshotDestination |
Optional. Das Google Cloud Storage-Ziel, in das der Snapshot hochgeladen werden soll. Bei einem leeren URI wird standardmäßig der angegebene gcs_output_bucket verwendet. Format: |
GcsRepositorySnapshotDestination
| JSON-Darstellung |
|---|
{ "repositorySnapshotUri": string } |
| Felder | |
|---|---|
repositorySnapshotUri |
Optional. Das Google Cloud Storage-Ziel, in das der Repository-Snapshot hochgeladen werden soll. Format: |
PipelineConfig
| JSON-Darstellung |
|---|
{
"pipelineType": enum ( |
| Felder | |
|---|---|
pipelineType |
Erforderlich. Der Typ der Pipeline. |
path |
Erforderlich. Der relative Pfad im Git-Repository, in dem die Pipeline definiert ist. Bei einer Dataform-Pipeline ist das beispielsweise ein Pfad zum Ordner, in dem sich |
CompilationError
| JSON-Darstellung |
|---|
{
"message": string,
"stack": string,
"path": string,
"actionTarget": {
object ( |
| Felder | |
|---|---|
message |
Nur Ausgabe. Die Nachricht der obersten Ebene des Fehlers. |
stack |
Nur Ausgabe. Der vollständige Stacktrace des Fehlers. |
path |
Nur Ausgabe. Der Pfad der Datei, in der dieser Fehler aufgetreten ist, sofern verfügbar, relativ zum Projektstamm. |
actionTarget |
Nur Ausgabe. Die Kennung der Aktion, bei der dieser Fehler aufgetreten ist, falls verfügbar. |
Ziel
| JSON-Darstellung |
|---|
{ "database": string, "schema": string, "name": string } |
| Felder | |
|---|---|
database |
Optional. Die Datenbank der Aktion (Google Cloud-Projekt-ID) . |
schema |
Optional. Das Schema der Aktion (BigQuery-Dataset-ID) in |
name |
Optional. Der Name der Aktion zwischen |
DataEncryptionState
| JSON-Darstellung |
|---|
{ "kmsKeyVersionName": string } |
| Felder | |
|---|---|
kmsKeyVersionName |
Erforderlich. Der Name der KMS-Schlüsselversion, mit der die Daten einer Ressource verschlüsselt werden. |
Zeitstempel
| JSON-Darstellung |
|---|
{ "seconds": string, "nanos": integer } |
| Felder | |
|---|---|
seconds |
Stellt Sekunden der UTC-Zeit seit Unix-Epoche 1970-01-01T00:00:00Z dar. Muss einschließlich zwischen -62135596800 und 253402300799 liegen (entspricht 0001-01-01T00:00:00Z bis 9999-12-31T23:59:59Z). |
nanos |
Nicht negative Sekundenbruchteile Nanosekunden-Auflösung. Dieses Feld enthält den Nanosekundenanteil der Dauer und ist keine Alternative zu Sekunden. Negative Sekundenwerte mit Bruchteilen müssen weiterhin nicht negative Nano-Werte haben, die zeitlich vorwärts gezählt werden. Muss zwischen 0 und 999.999.999 liegen (einschließlich). |
PrivateResourceMetadata
| JSON-Darstellung |
|---|
{ "userScoped": boolean } |
| Felder | |
|---|---|
userScoped |
Nur Ausgabe. Wenn „true“, ist diese Ressource auf Nutzerebene. Das bedeutet, dass sie entweder ein Arbeitsbereich ist oder aus einem Arbeitsbereich stammt. |
GcsRepositorySnapshotMetadata
| JSON-Darstellung |
|---|
{ "repositorySnapshotUri": string, "crc32cChecksum": string, "generation": string } |
| Felder | |
|---|---|
repositorySnapshotUri |
Nur Ausgabe. Der Google Cloud Storage-URI des Repository-Snapshots. |
crc32cChecksum |
Nur Ausgabe. Die CRC32C-Prüfsumme des Repository-Snapshots, Big-Endian-Base64-codiert. |
generation |
Nur Ausgabe. Die Generierungsnummer des Cloud Storage-Objekts. Weitere Informationen finden Sie unter https://cloud.google.com/storage/docs/metadata#generation-number. |
PipelineType
Der Typ der Pipeline. Diese Frist kann in Zukunft verlängert werden. Im Fall von UNSPECIFIED wird der Fehler ausgegeben.
| Enums | |
|---|---|
PIPELINE_TYPE_UNSPECIFIED |
Standardwert. Dieser Wert wird nicht verwendet. |
DATAFORM |
Reguläre Dataform-Pipeline. |
SQL |
SQL-Einzeldatei-Asset. |
NOTEBOOK |
Einzelnes Datei-Asset für Notebooks. |
Ausgabeschema
Stellt das Ergebnis der Kompilierung eines Dataform-Projekts dar.
CompilationResult
| JSON-Darstellung |
|---|
{ "name": string, "codeCompilationConfig": { object ( |
| Felder | |
|---|---|
name |
Nur Ausgabe. Der Name des Kompilierungsergebnisses. |
codeCompilationConfig |
Nicht veränderbar. Wenn festgelegt, überschreiben die Felder von |
resolvedGitCommitSha |
Nur Ausgabe. Die vollständig aufgelöste Git-Commit-SHA des kompilierten Codes. Nicht für Kompilierungsergebnisse festgelegt, deren Quelle ein Arbeitsbereich ist. |
dataformCoreVersion |
Nur Ausgabe. Die Version von |
compilationErrors[] |
Nur Ausgabe. Fehler, die während der Projektkompilierung aufgetreten sind. |
dataEncryptionState |
Nur Ausgabe. Wird nur festgelegt, wenn das Repository einen KMS-Schlüssel hat. |
createTime |
Nur Ausgabe. Der Zeitstempel für die Erstellung des Kompilierungsergebnisses. Verwendet RFC 3339, wobei die generierte Ausgabe immer Z-normalisiert ist und 0, 3, 6 oder 9 Nachkommastellen verwendet. Andere Offsets als „Z“ werden ebenfalls akzeptiert. Beispiele: |
privateResourceMetadata |
Nur Ausgabe. Metadaten, die angeben, ob diese Ressource auf Nutzerebene ist. Die |
gcsRepositorySnapshotMetadata |
Nur Ausgabe. Metadaten zum Repository-Snapshot, der von geplanten Notebooks verwendet wird. |
Union-Feld source. Die Quelle des Kompilierungsergebnisses. Für source ist nur einer der folgenden Werte zulässig: |
|
gitCommitish |
Nicht veränderbar. Name des Git-Commits, -Tags oder -Zweigs, in dem das Repository kompiliert werden soll. Muss im Remote-Repository vorhanden sein. Beispiele: – ein Commit-SHA: |
workspace |
Nicht veränderbar. Der Name des zu kompilierenden Arbeitsbereichs. Muss das Format |
releaseConfig |
Nicht veränderbar. Der Name der zu kompilierenden Releasekonfiguration. Muss das Format |
Union-Feld Für |
|
internalMetadata |
Nur Ausgabe. Alle Metadateninformationen, die intern zum Bereitstellen der Ressource verwendet werden. Beispiele: Zeitstempel, Flags, Statusfelder usw. Das Format dieses Felds ist ein JSON-String. |
CodeCompilationConfig
| JSON-Darstellung |
|---|
{ "defaultDatabase": string, "defaultSchema": string, "defaultLocation": string, "assertionSchema": string, "vars": { string: string, ... }, "databaseSuffix": string, "schemaSuffix": string, "tablePrefix": string, "builtinAssertionNamePrefix": string, "defaultNotebookRuntimeOptions": { object ( |
| Felder | |
|---|---|
defaultDatabase |
Optional. Die Standarddatenbank (Google Cloud-Projekt-ID). |
defaultSchema |
Optional. Das Standardschema (BigQuery-Dataset-ID). |
defaultLocation |
Optional. Der zu verwendende Standard-BigQuery-Standort. Der Standardwert ist „US“. Eine vollständige Liste der Standorte finden Sie in der BigQuery-Dokumentation: https://cloud.google.com/bigquery/docs/locations. |
assertionSchema |
Optional. Das Standardschema (BigQuery-Dataset-ID) für Behauptungen. |
vars |
Optional. Benutzerdefinierte Variablen, die dem Projektcode während der Kompilierung zur Verfügung gestellt werden. Ein Objekt, das eine Liste von |
databaseSuffix |
Optional. Das Suffix, das an alle Datenbanknamen (Google Cloud-Projekt-ID) angehängt werden soll. |
schemaSuffix |
Optional. Das Suffix, das an alle Schemanamen (BigQuery-Dataset-ID) angehängt werden soll. |
tablePrefix |
Optional. Das Präfix, das allen Tabellennamen vorangestellt werden soll. |
builtinAssertionNamePrefix |
Optional. Das Präfix, das den Namen integrierter Zusicherungen vorangestellt wird. |
defaultNotebookRuntimeOptions |
Optional. Die Standardoptionen für die Notebook-Laufzeit. |
pipelineConfig |
Optional. Die Pipelineoptionen, die den Pipelinetyp und den Pfad innerhalb des Git-Repositorys definieren. |
VarsEntry
| JSON-Darstellung |
|---|
{ "key": string, "value": string } |
| Felder | |
|---|---|
key |
|
value |
|
NotebookRuntimeOptions
| JSON-Darstellung |
|---|
{ "aiPlatformNotebookRuntimeTemplate": string, // Union field |
| Felder | |
|---|---|
aiPlatformNotebookRuntimeTemplate |
Optional. Der Ressourcenname der Colab-Laufzeitvorlage, aus der eine Laufzeit für Notebook-Ausführungen erstellt wird. Wenn keine Angabe erfolgt, wird eine Laufzeit mit den Standardspezifikationen von Colab erstellt. |
Union-Feld execution_sink. Der Speicherort, an dem das Ergebnis der Notebookausführung gespeichert werden soll. Für execution_sink ist nur einer der folgenden Werte zulässig: |
|
gcsOutputBucket |
Optional. Der Google Cloud Storage-Speicherort, an den das Ergebnis hochgeladen werden soll. Format: |
Union-Feld repository_snapshot_storage. Das Ziel des Snapshots von Repository-Dateien, die für den schreibgeschützten Zugriff in einer Notebook-Laufzeit repository_snapshot_storage verfügbar sein sollen, kann nur eines der folgenden sein: |
|
gcsRepositorySnapshotDestination |
Optional. Das Google Cloud Storage-Ziel, in das der Snapshot hochgeladen werden soll. Bei einem leeren URI wird standardmäßig der angegebene gcs_output_bucket verwendet. Format: |
GcsRepositorySnapshotDestination
| JSON-Darstellung |
|---|
{ "repositorySnapshotUri": string } |
| Felder | |
|---|---|
repositorySnapshotUri |
Optional. Das Google Cloud Storage-Ziel, in das der Repository-Snapshot hochgeladen werden soll. Format: |
PipelineConfig
| JSON-Darstellung |
|---|
{
"pipelineType": enum ( |
| Felder | |
|---|---|
pipelineType |
Erforderlich. Der Typ der Pipeline. |
path |
Erforderlich. Der relative Pfad im Git-Repository, in dem die Pipeline definiert ist. Bei einer Dataform-Pipeline ist das beispielsweise ein Pfad zum Ordner, in dem sich |
CompilationError
| JSON-Darstellung |
|---|
{
"message": string,
"stack": string,
"path": string,
"actionTarget": {
object ( |
| Felder | |
|---|---|
message |
Nur Ausgabe. Die Nachricht der obersten Ebene des Fehlers. |
stack |
Nur Ausgabe. Der vollständige Stacktrace des Fehlers. |
path |
Nur Ausgabe. Der Pfad der Datei, in der dieser Fehler aufgetreten ist, sofern verfügbar, relativ zum Projektstamm. |
actionTarget |
Nur Ausgabe. Die Kennung der Aktion, bei der dieser Fehler aufgetreten ist, falls verfügbar. |
Ziel
| JSON-Darstellung |
|---|
{ "database": string, "schema": string, "name": string } |
| Felder | |
|---|---|
database |
Optional. Die Datenbank der Aktion (Google Cloud-Projekt-ID) . |
schema |
Optional. Das Schema der Aktion (BigQuery-Dataset-ID) in |
name |
Optional. Der Name der Aktion zwischen |
DataEncryptionState
| JSON-Darstellung |
|---|
{ "kmsKeyVersionName": string } |
| Felder | |
|---|---|
kmsKeyVersionName |
Erforderlich. Der Name der KMS-Schlüsselversion, mit der die Daten einer Ressource verschlüsselt werden. |
Zeitstempel
| JSON-Darstellung |
|---|
{ "seconds": string, "nanos": integer } |
| Felder | |
|---|---|
seconds |
Stellt Sekunden der UTC-Zeit seit Unix-Epoche 1970-01-01T00:00:00Z dar. Muss einschließlich zwischen -62135596800 und 253402300799 liegen (entspricht 0001-01-01T00:00:00Z bis 9999-12-31T23:59:59Z). |
nanos |
Nicht negative Sekundenbruchteile Nanosekunden-Auflösung. Dieses Feld enthält den Nanosekundenanteil der Dauer und ist keine Alternative zu Sekunden. Negative Sekundenwerte mit Bruchteilen müssen weiterhin nicht negative Nano-Werte haben, die zeitlich vorwärts gezählt werden. Muss zwischen 0 und 999.999.999 liegen (einschließlich). |
PrivateResourceMetadata
| JSON-Darstellung |
|---|
{ "userScoped": boolean } |
| Felder | |
|---|---|
userScoped |
Nur Ausgabe. Wenn „true“, ist diese Ressource auf Nutzerebene. Das bedeutet, dass sie entweder ein Arbeitsbereich ist oder aus einem Arbeitsbereich stammt. |
GcsRepositorySnapshotMetadata
| JSON-Darstellung |
|---|
{ "repositorySnapshotUri": string, "crc32cChecksum": string, "generation": string } |
| Felder | |
|---|---|
repositorySnapshotUri |
Nur Ausgabe. Der Google Cloud Storage-URI des Repository-Snapshots. |
crc32cChecksum |
Nur Ausgabe. Die CRC32C-Prüfsumme des Repository-Snapshots, Big-Endian-Base64-codiert. |
generation |
Nur Ausgabe. Die Generierungsnummer des Cloud Storage-Objekts. Weitere Informationen finden Sie unter https://cloud.google.com/storage/docs/metadata#generation-number. |
PipelineType
Der Typ der Pipeline. Diese Frist kann in Zukunft verlängert werden. Im Fall von UNSPECIFIED wird der Fehler ausgegeben.
| Enums | |
|---|---|
PIPELINE_TYPE_UNSPECIFIED |
Standardwert. Dieser Wert wird nicht verwendet. |
DATAFORM |
Reguläre Dataform-Pipeline. |
SQL |
SQL-Einzeldatei-Asset. |
NOTEBOOK |
Einzelnes Datei-Asset für Notebooks. |
Tool-Annotationen
Tool-Anmerkungen werden an MCP-Clients gesendet, um das grundlegende Risiko eines bestimmten Tools zu beschreiben. Die meisten Clients behandeln diese Hinweise als nicht vertrauenswürdig, sie können aber verwendet werden, um zu entscheiden, wann eine Bestätigungsaufforderung an einen Nutzer gesendet wird.
Zusammen mit dem Titelstring sind die folgenden booleschen Hinweise definiert:
readOnlyHint: Wenn „true“, ändert das Tool seine Umgebung nicht. Standardeinstellung: false.destructiveHint: Wenn „true“, kann das Tool destruktive Aktionen ausführen. Wenn „false“, kann das Tool nur additive Aktionen ausführen. Standardeinstellung: true.idempotentHint: Wenn „true“, hat das wiederholte Aufrufen des Tools mit denselben Argumenten keine zusätzlichen Auswirkungen auf die Umgebung. Standardeinstellung: false.openWorldHint: Wenn „true“, kann das Tool mit einer „offenen Welt“ externer Einheiten interagieren. Wenn „false“, kann das Tool nur mit internen Einheiten interagieren. Ein Web-Suchtool wäre beispielsweise frei verfügbar, ein Tool für das Gedächtnis jedoch nicht.
Destruktiver Hinweis: ❌ | Idempotenter Hinweis: ❌ | Nur-Lese-Hinweis: ❌ | Open-World-Hinweis: ❌