In diesem Dokument erfahren Sie, wie Sie mit der Dataform API ein Kompilierungsergebnis mit Kompilierungsüberschreibungen erstellen und ausführen.
Dataform API-Kompilierungsüberschreibungen
Zum Ausführen Ihres SQL-Workflows kompiliert Dataform Ihren Code in SQL, um ein Kompilierungsergebnis zu erstellen. Anschließend führt Dataform während einer Workflowausführung das Kompilierungsergebnis in BigQuery aus.
Standardmäßig verwendet Dataform die Einstellungen in der Datei mit den Workflow-Einstellungen, um das Kompilierungsergebnis zu erstellen. Wenn Sie Daten isolieren möchten, die in verschiedenen Phasen des Entwicklungszyklus ausgeführt werden, können Sie die Standardeinstellungen mit Überschreibungen der Kompilierung überschreiben.
Wenn Sie Dataform API-Anfragen im Terminal übergeben, können Sie ein einzelnes Kompilierungsergebnis mit Kompilierungsüberschreibungen erstellen und ausführen. Sie können ein Kompilierungsergebnis für einen Arbeitsbereich oder ein ausgewähltes Git-Commit erstellen.
Wenn Sie ein Kompilierungsergebnis mit Kompilierungsüberschreibungen erstellen möchten, müssen Sie die Dataform API-Anfrage compilationResults.create
senden. In der Anfrage müssen Sie eine Quelle, einen Arbeitsbereich oder ein Git-Commit angeben, damit Dataform das Kompilierungsergebnis erstellen kann. Im Objekt CodeCompilationConfig
der compilationResults.create
-Anfrage können Sie Überschreibungen für die Zusammenstellung konfigurieren.
Sie können das erstellte Kompilierungsergebnis dann in einer Dataform API-Anfrage vom Typ workflowInvocations.create
ausführen.
Mit der Dataform API können Sie die folgenden Compile-Überschreibungen konfigurieren:
Google CloudProject: Google Cloud -Projekt, in dem Dataform das Kompilierungsergebnis ausführt, in workflow_settings.yaml
als defaultProject
oder in dataform.json
als defaultDatabase
festgelegt.
- Tabellenpräfix
- Allen Tabellennamen im Kompilierungsergebnis wurde ein benutzerdefiniertes Präfix hinzugefügt.
- Schema suffix
- Benutzerdefiniertes Suffix, das dem Schema der Tabellen angehängt wird, die in
defaultDataset
inworkflow_settings.yaml
,defaultSchema
indataform.json
oder imschema
-Parameter imconfig
-Block einer Tabelle definiert sind.
Wert einer Kompilierungsvariablen: Wert einer Kompilierungsvariablen, der im Kompilierungsergebnis verwendet werden soll. Mithilfe von Kompilierungsvariablen können Sie Tabellen bedingt ausführen.
Als Alternative zu Überschreibungen der Dataform API-Kompilierung, die nur für ein Kompilierungsergebnis verwendet werden können, können Sie Überschreibungen der Workspace-Kompilierung in der Google Cloud Console konfigurieren.
Informationen zu alternativen Möglichkeiten zum Konfigurieren von Compile-Überschreibungen in Dataform finden Sie unter Einführung in den Codelebenszyklus.
Hinweis
Öffnen Sie in der Google Cloud Console die Seite Dataform.
Wählen Sie ein Repository aus oder erstellen Sie ein neues.
Wählen Sie einen Entwicklungsarbeitsbereich aus oder erstellen Sie einen.
Quelle für die Zusammenstellungsergebnisse festlegen
Wenn Sie die Dataform API-Anfrage compilationResults.create
senden möchten, müssen Sie eine Quelle für das Kompilierungsergebnis angeben.
Sie können einen Dataform-Arbeitsbereich oder einen Git-Zweig, ein Git-Tag oder eine Git-Commit-SHA als Quelle in der compilationResults.create
-Anfrage festlegen.
Arbeitsbereich als Quelle für Kompilierungsergebnisse festlegen
- Geben Sie in der
compilationResults.create
-Anfrage das Attributworkspace
mit dem Pfad eines ausgewählten Dataform-Arbeitsbereichs im folgenden Format an:
{
"workspace": "projects/PROJECT_NAME/locations/LOCATION/repositories/REPOSITORY_NAME/workspaces/WORKSPACE_NAME"
}
Ersetzen Sie Folgendes:
- PROJECT_NAME durch den Namen Ihres Google Cloud Projekts.
- LOCATION durch den Speicherort Ihres Dataform-Repositories ersetzen, den Sie in den Workflow-Einstellungen festgelegt haben.
- REPOSITORY_NAME durch den Namen Ihres Dataform-Repositorys.
- WORKSPACE_NAME durch den Namen Ihres Dataform-Arbeitsbereichs.
Im folgenden Codebeispiel ist die Property workspace
in der compilationResults.create
-Anfrage auf einen Arbeitsbereich namens "sales-test"
festgelegt:
{
"workspace": "projects/analytics/locations/europe-west4/repositories/sales/workspaces/sales-test"
}
Git-Commit als Quelle für Kompilierungsergebnisse festlegen
Geben Sie in der
compilationResults.create
-Anfrage die PropertygitCommitish
mit dem ausgewählten Git-Branch, -Tag oder -SHA-Commit im folgenden Format ein:{ "gitCommitish": "GIT_COMMITISH" }
Ersetzen Sie GIT_COMMITISH durch den ausgewählten Git-Branch, das Git-Tag oder eine Git-Commit-SHA für das Kompilierungsergebnis.
Im folgenden Codebeispiel ist die gitCommitish
-Eigenschaft in der compilationResults.create
-Anfrage auf "staging"
festgelegt:
{
"gitCommitish": "staging"
}
Standard Google Cloud projekt überschreiben
Wenn Sie Staging- oder Produktionstabellen in einem Google Cloud Projekt erstellen möchten, das sich vom für die Entwicklung verwendeten Projekt unterscheidet, können Sie in der Dataform API-Anfrage compilationResults.create
eine andere Google Cloud Projekt-ID im Objekt CodeCompilationConfig
übergeben.
Wenn Sie in der compilationResults.create
-Anfrage eine separate Standardprojekt-ID übergeben, wird die in der Datei mit den Workflow-Einstellungen konfigurierte StandardGoogle Cloud -Projekt-ID überschrieben. Google Cloud -Projekt-IDs, die in einzelnen Tabellen konfiguriert sind, werden jedoch nicht überschrieben.
Wenn Sie die Standard Google Cloud -Projekt-ID überschreiben möchten, legen Sie die Eigenschaft
defaultDatabase
imCodeCompilationConfig
-Objekt auf die ausgewählte Google Cloud -Projekt-ID im folgenden Format fest:{ "codeCompilationConfig": { "defaultDatabase": "PROJECT_NAME" } }
Ersetzen Sie PROJECT_NAME durch die Google Cloud Projekt-ID, die Sie für das Kompilierungsergebnis festlegen möchten.
Tabellenpräfix hinzufügen
Damit Sie Tabellen im Kompilierungsergebnis schnell identifizieren können, können Sie allen Tabellennamen im Kompilierungsergebnis ein Präfix hinzufügen. Dazu geben Sie das Tabellenpräfix im CodeCompilationConfig
-Objekt in der Dataform API-Anfrage compilationResults.create
an.
- Wenn Sie ein Tabellenpräfix hinzufügen möchten, legen Sie die Eigenschaft
tablePrefix
imCodeCompilationConfig
-Objekt im folgenden Format fest:
{
"codeCompilationConfig": {
"tablePrefix": "PREFIX",
}
}
Ersetzen Sie PREFIX durch das Suffix, das Sie anhängen möchten, z. B. _staging
. Wenn Ihre defaultDataset
in workflow_settings.yaml
beispielsweise auf dataform
festgelegt ist, erstellt Dataform Tabellen im Schema dataform_staging
.
Schemasuffix anhängen
Wenn Sie Entwicklungs-, Staging- und Produktionsdaten trennen möchten, können Sie Schemas in einem Kompilierungsergebnis ein Suffix anhängen. Dazu geben Sie das Schemasuffix im Objekt CodeCompilationConfig
in der Dataform API-Anfrage compilationResults.create
an.
- Wenn Sie ein Schemasuffix anhängen möchten, legen Sie die Eigenschaft
schemaSuffix
imCodeCompilationConfig
-Objekt im folgenden Format fest:
{
"codeCompilationConfig": {
"schemaSuffix": "SUFFIX",
}
}
Ersetzen Sie SUFFIX durch das Suffix, das Sie anhängen möchten, z. B. _staging
. Wenn Ihre defaultDataset
in workflow_settings.yaml
beispielsweise auf dataform
festgelegt ist, erstellt Dataform Tabellen im Schema dataform_staging
.
Hinweis:Mit dem Parameter CodeCompilationConfig
schemaSuffix
werden Schemas überschrieben, die im Block config
einzelner Dateien konfiguriert sind.
Ausgewählte Dateien bedingt mit Kompilierungsvariablen ausführen
Wenn Sie eine ausgewählte Tabelle nur mit einer bestimmten Ausführungseinstellung ausführen möchten, können Sie eine Kompilierungsvariable für die Ausführungseinstellung erstellen und dann den Wert in das CodeCompilationConfig
-Objekt in der Dataform API-Anfrage compilationResults.create
übergeben.
So führen Sie eine Tabelle mithilfe der Dataform API bedingt in einer bestimmten Ausführungseinstellung aus:
- Erstellen Sie eine Kompilierungsvariable und fügen Sie sie ausgewählten Tabellen hinzu.
Legen Sie das Schlüssel/Wert-Paar YOUR_VARIABLE und VALUE im Block
codeCompilationConfig
einer Dataform API-Kompilierungsanfrage im folgenden Format fest:{ "codeCompilationConfig": { "vars": { "YOUR_VARIABLE": "VALUE" } } }
Ersetzen Sie YOUR_VARIABLE durch den Namen Ihrer Variablen, z. B.
executionSetting
.Ersetzen Sie VALUE durch den Wert der Variablen für dieses Kompilierungsergebnis, der die in den ausgewählten Tabellen festgelegte Bedingung
when
erfüllt.
Im folgenden Codebeispiel wird die Variable executionSetting
gezeigt, die an eine
Compilationsanfrage der Dataform API übergeben wird:
{
"gitCommitish": "staging",
"codeCompilationConfig": {
"vars": {
"executionSetting": "staging"
}
}
}
Kompilierungsergebnis mit Kompilierungsüberschreibungen ausführen
- Wenn du das mit einer
compilationResults.create
-Anfrage erstellte Kompilierungsergebnis ausführen möchtest, musst du die von dercompilationResults.create
-Anfrage zurückgegebene ID des Kompilierungsergebnisses in einerworkflowInvocations.create
-Anfrage übergeben.
Das folgende Codebeispiel zeigt eine ID des Kompilierungsergebnisses, die in einer workflowInvocations.create
-Anfrage übergeben wird:
{
"compilationResult": "projects/my-project-name/locations/europe-west4/repositories/my-repository-name/compilationResults/7646b4ed-ac8e-447f-93cf-63c43249ff11"
}
Nächste Schritte
- Weitere Informationen zum Konfigurieren von Compile-Überschreibungen in Dataform finden Sie unter Einführung in den Codelebenszyklus.
- Weitere Informationen zur Dataform API finden Sie unter Dataform API.
- Informationen zum Konfigurieren von Kompilierungsüberschreibungen für alle Arbeitsbereiche in einem Repository mit der Google Cloud Console finden Sie unter Kompilierungsüberschreibungen für Arbeitsbereiche konfigurieren.