Kompilierungsüberschreibungen mit der Dataform API konfigurieren

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 in workflow_settings.yaml, defaultSchema in dataform.json oder im schema-Parameter im config-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

  1. Öffnen Sie in der Google Cloud Console die Seite Dataform.

    Zu Dataform

  2. Wählen Sie ein Repository aus oder erstellen Sie ein neues.

  3. 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 Attribut workspace 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 Property gitCommitish 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 im CodeCompilationConfig-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 im CodeCompilationConfig-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 im CodeCompilationConfig-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:

  1. Erstellen Sie eine Kompilierungsvariable und fügen Sie sie ausgewählten Tabellen hinzu.
  2. 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"
       }
     }
    }
    
  3. Ersetzen Sie YOUR_VARIABLE durch den Namen Ihrer Variablen, z. B. executionSetting.

  4. 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 der compilationResults.create-Anfrage zurückgegebene ID des Kompilierungsergebnisses in einer workflowInvocations.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