Ausführungen mit Workflows und Cloud Scheduler planen

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

Geplante Workflowausführungen

Sie können die Häufigkeit der Ausführungen Ihres Dataform-SQL-Workflows festlegen. Erstellen Sie dazu einen Cloud Scheduler-Job, der einen Workflow für Workflows auslöst. Workflows führt Dienste in einem von Ihnen definierten Orchestrierungsworkflow aus.

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

Hinweise

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

    Zur Seite „Dataform“

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

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Dataform Editor (roles/dataform.editor) für Repositories zu gewähren, 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.

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

Geplanten Orchestrierungsworkflow erstellen

Zum Ausführen geplanter Ausführungen Ihres Dataform-SQL-Workflows 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 weisen Sie ihm die Rolle Dataform Editor sowie die Mindestberechtigungen zu, die für die Verwaltung Ihres Orchestrierungsworkflows erforderlich sind. Weitere Informationen finden Sie unter Workflowberechtigungen 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}
    

    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, von dem aus Sie Dataform-Code ausführen möchten. Ersetzen Sie bei einem neu erstellten Repository durch main.
  3. Planen Sie den Orchestrierungsworkflow mit Cloud Scheduler.

Dataform-SQL-Workflow zum Erstellen von Kompilierungsergebnisanfragen anpassen

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

Um beispielsweise allen Aktionen während der Kompilierung ein _dev-schemaSuffix hinzuzufügen, 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 zum Aufrufen des Dataform-SQL-Workflows anpassen

Sie können den vorhandenen Orchestrierungsworkflow aktualisieren und die Einstellungen für Anfragen zum Aufrufen von Dataform-SQL-Workflows 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 und allen transitiven 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