Sobre as execuções de fluxo de trabalho programadas
É possível definir a frequência de execuções do fluxo de trabalho do Dataform SQL criando um job do Cloud Scheduler que aciona um fluxo de trabalho Workflows. O Workflows executa serviços em um fluxo de trabalho de orquestração que você define.
O Workflows executa seu fluxo de trabalho SQL do Dataform em um processo de duas etapas. Primeiro, ele extrai o código do repositório do Dataform do seu provedor Git e o compila em um resultado de compilação. Em seguida, ele usa o resultado da compilação para criar um fluxo de trabalho SQL do Dataform e o executa na frequência que você definiu.
Antes de começar
No console do Google Cloud, acesse a página Dataform.
Selecione ou crie um repositório.
Funções exigidas
Para ter as permissões necessárias para programar execuções do Dataform com o Workflows,
peça ao administrador para conceder a você o papel do IAM de
Editor do Dataform (roles/dataform.editor
) nos repositórios.
Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.
Talvez você também consiga receber as permissões necessárias por meio de papéis personalizados ou outros papéis predefinidos.
Criar um fluxo de trabalho de orquestração programado
Para executar execuções programadas do fluxo de trabalho SQL do Dataform, use Workflows para criar um fluxo de trabalho de orquestração e adicionar um job do Cloud Scheduler como gatilho.
O Workflows usa contas de serviço para dar aos fluxos de trabalho acesso aos recursos do Google Cloud. Crie uma conta de serviço e conceda a ela o papel de Editor do Dataform, bem como as permissões mínimas necessárias para gerenciar o fluxo de trabalho de orquestração. Para mais informações, consulte Conceder permissão a um fluxo de trabalho para acessar os recursos do Google Cloud.
Crie um fluxo de trabalho de orquestração e use o seguinte código-fonte YAML como definição do fluxo de trabalho:
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}
Substitua:
- PROJECT_ID: o ID do seu projeto do Google Cloud;
- REPOSITORY_LOCATION: o local do repositório do Dataform.
- REPOSITORY_ID: o nome do repositório do Dataform
- GIT_COMMITISH: a ramificação do Git em que você quer
executar o código do Dataform. Para um repositório recém-criado,
substitua por
main
.
Programe o fluxo de trabalho de orquestração usando o Cloud Scheduler.
Personalizar a solicitação de resultado da compilação do fluxo de trabalho do Dataform SQL
É possível atualizar o fluxo de trabalho de orquestração atual
e definir as configurações de solicitação de resultado da compilação do fluxo de trabalho
SQL do Dataform SQL no formato YAML. Para mais informações sobre as configurações,
consulte a referência do recurso REST projects.locations.repositories.compilationResults
.
Por exemplo, para adicionar um _dev
schemaSuffix
a todas as ações durante a compilação,
substitua o corpo da etapa createCompilationResult
pelo seguinte snippet de código:
- createCompilationResult:
call: http.post
args:
url: ${"https://dataform.googleapis.com/v1beta1/" + repository + "/compilationResults"}
auth:
type: OAuth2
body:
gitCommitish: GIT_COMMITISH
codeCompilationConfig:
schemaSuffix: dev
Também é possível transmitir outras configurações como argumentos de ambiente de execução em uma solicitação de execução do Workflows e acessar esses argumentos usando variáveis. Para mais informações, consulte Transmitir argumentos de ambiente de execução em uma solicitação de execução.
Personalize a solicitação de invocação do fluxo de trabalho do Dataform SQL
É possível atualizar o fluxo de trabalho de orquestração atual
e definir as configurações de solicitação de invocação do fluxo de trabalho SQL do Dataform
no formato YAML. Para mais informações sobre as configurações da solicitação
de invocação, consulte a
referência do recurso REST projects.locations.repositories.workflowInvocations
.
Por exemplo, para executar apenas ações com a tag hourly
com todas as dependências transitivas incluídas, substitua o corpo createWorkflowInvocation
pelo seguinte snippet de código:
- 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
Também é possível transmitir outras configurações como argumentos de ambiente de execução em uma solicitação de execução do Workflows e acessar esses argumentos usando variáveis. Para mais informações, consulte Transmitir argumentos de ambiente de execução em uma solicitação de execução.
A seguir
- Para saber mais sobre a configuração de programações de cron job no Cloud Scheduler, consulte Configurar programações de cron job.
- Para saber mais sobre os preços do Workflows, consulte Preços dos fluxos de trabalho.
- Para saber mais sobre os preços do Cloud Scheduler, consulte Preços do programador.
- Para saber como programar execuções com o Cloud Composer, consulte Programar execuções com o Cloud Composer.