Ausführungen mit Workflows und Cloud Scheduler planen

In diesem Dokument wird gezeigt, wie Sie geplante Workflows mit Dataform SQL-Workflows mit Workflows und Cloud Scheduler ausführen.

Geplante Workflowausführungen

Sie können die Häufigkeit der Ausführungen Ihres Dataform SQL-Workflows festlegen, indem Sie einen Cloud Scheduler-Job erstellen, der einen Workflows-Workflow auslöst. Mit Workflows werden Dienste in einem von Ihnen definierten Orchestrierungsworkflow ausgeführt.

Workflows führt Ihren Dataform SQL-Workflow in zwei Schritten aus. Zuerst wird Ihr Dataform-Repository-Code von Ihrem Git-Anbieter abgerufen und in einem Kompilierungsergebnis kompiliert. Anschließend wird aus dem Kompilierungsergebnis ein Dataform-SQL-Workflow erstellt und mit der von Ihnen festgelegten Häufigkeit ausgeführt.

Hinweis

  1. Rufen Sie in der Google Cloud Console die Seite Dataform auf.

    Zur Dataform-Seite

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

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Dataform-Bearbeiter (roles/dataform.editor) für Repositories zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Planen von Dataform-Ausführungen mit Workflows benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Geplanten Orchestrierungsworkflow erstellen

Wenn Sie geplante Ausführungen Ihres Dataform SQL-Workflows ausführen möchten, verwenden Sie Workflows, um einen Orchestrierungsworkflow zu erstellen und einen Cloud Scheduler-Job als Trigger hinzuzufügen.

  1. Workflows verwenden Dienstkonten, um Workflows Zugriff auf Google Cloud-Ressourcen zu gewähren. Erstellen Sie ein Dienstkonto und gewähren Sie ihm die Rolle Dataform Editor sowie die Mindestberechtigungen, die zum Verwalten Ihres Orchestrierungsworkflows erforderlich sind. Weitere Informationen finden Sie unter Workflowberechtigung für den Zugriff auf Google Cloud-Ressourcen gewähren.

  2. Erstellen Sie einen Orchestrierungsworkflow und verwenden Sie den folgenden YAML-Quellcode als Workflowdefinition:

    main:
        steps:
        - init:
            assign:
            - repository: projects/PROJECT_ID/locations/REPOSITORY_LOCATION/repositories/REPOSITORY_ID
        - createCompilationResult:
            call: http.post
            args:
                url: ${"https://dataform.googleapis.com/v1beta1/" + repository + "/compilationResults"}
                auth:
                    type: OAuth2
                body:
                    gitCommitish: GIT_COMMITISH
            result: compilationResult
        - createWorkflowInvocation:
            call: http.post
            args:
                url: ${"https://dataform.googleapis.com/v1beta1/" + repository + "/workflowInvocations"}
                auth:
                    type: OAuth2
                body:
                    compilationResult: ${compilationResult.body.name}
            result: workflowInvocation
        - complete:
            return: ${workflowInvocation.body.name}
    

    Dabei gilt:

    • PROJECT_ID: die ID Ihres Google Cloud-Projekts.
    • REPOSITORY_LOCATION ist der Standort Ihres Dataform-Repositorys.
    • REPOSITORY_ID ist der Name Ihres Dataform-Repositorys.
    • GIT_COMMITISH: Der Git-Zweig, von dem aus Dataform-Code ausgeführt werden soll. Ersetzen Sie für ein neu erstelltes Repository durch main.
  3. Planen Sie den Orchestrierungs-Workflow mit Cloud Scheduler.

Dataform SQL-Workflow zum Erstellen von Kompilierungsergebnissen anpassen

Sie können den vorhandenen Orchestrierungsworkflow aktualisieren und den Dataform SQL-Workflow definieren, der Einstellungen für die Kompilierungsergebnisanfrage im YAML-Format erstellt. Weitere Informationen zu den Einstellungen finden Sie in der Referenz zu projects.locations.repositories.compilationResults-REST-Ressource.

Wenn Sie beispielsweise allen Aktionen während der Kompilierung einen _dev schemaSuffix hinzufügen möchten, ersetzen Sie den Schritttext createCompilationResult durch das folgende Code-Snippet:

    - createCompilationResult:
        call: http.post
        args:
            url: ${"https://dataform.googleapis.com/v1beta1/" + repository + "/compilationResults"}
            auth:
                type: OAuth2
            body:
                gitCommitish: GIT_COMMITISH
                codeCompilationConfig:
                    schemaSuffix: dev

Sie können in einer Workflow-Ausführungsanfrage auch zusätzliche Einstellungen als Laufzeitargumente übergeben und mithilfe von Variablen auf diese Argumente zugreifen. Weitere Informationen finden Sie unter Laufzeitargumente in einer Ausführungsanfrage übergeben.

Anfrage für den Dataform-SQL-Workflow anpassen

Sie können den vorhandenen Orchestrierungsworkflow aktualisieren und die Dataform-Einstellungen für die Aufrufanfragen für den Workflow im YAML-Format definieren. Weitere Informationen zu den Einstellungen für Aufrufanfragen finden Sie in der Referenz zur REST-Ressource projects.locations.repositories.workflowInvocations.

Wenn Sie beispielsweise nur Aktionen mit dem Tag hourly mit allen enthaltenen Abhängigkeiten ausführen möchten, ersetzen Sie den Text createWorkflowInvocation durch das folgende Code-Snippet:

    - createWorkflowInvocation:
        call: http.post
        args:
            url: ${"https://dataform.googleapis.com/v1beta1/" + repository + "/workflowInvocations"}
            auth:
                type: OAuth2
            body:
                compilationResult: ${compilationResult.body.name}
                invocationConfig:
                    includedTags:
                    - hourly
                    transitiveDependenciesIncluded: true
                

Sie können in einer Workflow-Ausführungsanfrage auch zusätzliche Einstellungen als Laufzeitargumente übergeben und mithilfe von Variablen auf diese Argumente zugreifen. Weitere Informationen finden Sie unter Laufzeitargumente in einer Ausführungsanfrage übergeben.

Nächste Schritte