Ausführungen mit Workflows und Cloud Scheduler planen

In diesem Dokument erfahren Sie, wie Sie geplante Ausführungen von Dataform-SQL-Workflows mit Workflows und Cloud Scheduler ausführen.

Geplante Workflowausführungen

Sie können die Häufigkeit der Ausführung 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.

In Workflows wird Ihr Dataform-SQL-Workflow in zwei Schritten ausgeführt. Zuerst wird der Code Ihres Dataform-Repositorys von Ihrem Git-Anbieter abgerufen und in ein Kompilierungsergebnis kompiliert. Anhand des Kompilierungsergebnisses wird dann ein Dataform-SQL-Workflow erstellt und mit der von Ihnen festgelegten Häufigkeit ausgeführt.

Hinweis

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

    Zur Seite „Dataform“

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

Erforderliche Rollen

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

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

Geplante Orchestrierungsabläufe erstellen

Wenn Sie geplante Ausführungen Ihres Dataform SQL-Workflows ausführen möchten, erstellen Sie mithilfe von Workflows einen Orchestration-Workflow und fügen Sie einen Cloud Scheduler-Job als Trigger hinzu.

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

  2. Erstellen Sie einen Orchestration-Workflow und verwenden Sie den folgenden YAML-Quellcode als Workflow-Definition:

    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}
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die ID Ihres Google Cloud Projekts
    • REPOSITORY_LOCATION: der Speicherort Ihres Dataform-Repositorys
    • REPOSITORY_ID: der Name Ihres Dataform-Repositorys
    • GIT_COMMITISH: der Git-Zweig, aus dem Sie Dataform-Code ausführen möchten. Ersetzen Sie bei einem neu erstellten Repository main.
  3. Orchestrierungsworkflow mit Cloud Scheduler planen

Anfrage zum Erstellen von Kompilierungsergebnissen für den Dataform-SQL-Workflow anpassen

Sie können den vorhandenen Orchestration-Workflow aktualisieren und die Einstellungen für die Anfrage zum Erstellen des Kompilierungsergebnisses des Dataform-SQL-Workflows im YAML-Format definieren. Weitere Informationen zu den Einstellungen finden Sie in der Referenz zur projects.locations.repositories.compilationResults REST-Ressource.

Wenn Sie beispielsweise allen Aktionen während der Kompilierung ein _dev schemaSuffix hinzufügen möchten, ersetzen Sie den createCompilationResult-Schrittkörper 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 auch zusätzliche Einstellungen als Laufzeitargumente in einer Ausführungsanfrage für Workflows übergeben und mithilfe von Variablen auf diese Argumente zugreifen. Weitere Informationen finden Sie unter Laufzeitargumente in einer Ausführungsanfrage übergeben.

Dataform-Anfrage zum Aufrufen eines SQL-Workflows anpassen

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

Wenn Sie beispielsweise nur Aktionen mit dem hourly-Tag mit allen transitiven Abhängigkeiten ausführen möchten, ersetzen Sie den createWorkflowInvocation-Textkörper 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 auch zusätzliche Einstellungen als Laufzeitargumente in einer Ausführungsanfrage für Workflows übergeben und mithilfe von Variablen auf diese Argumente zugreifen. Weitere Informationen finden Sie unter Laufzeitargumente in einer Ausführungsanfrage übergeben.

Nächste Schritte