Sobre execuções programadas de fluxos de trabalho
É possível definir a frequência de execuções do fluxo de trabalho SQL do Dataform criando um job do Cloud Scheduler que aciona um fluxo de trabalho do Workflows. O Workflows executa serviços em um fluxo de trabalho de orquestração definido por você.
Os fluxos de trabalho executam o fluxo de trabalho SQL do Dataform em um processo de duas etapas. Primeiro, ele extrai o código do repositório do Dataform do provedor do 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 definida.
Antes de começar
No Console do Google Cloud, acesse a página Dataform.
Selecione ou crie um repositório.
Funções exigidas
Para receber as permissões necessárias para programar execuções do Dataform com fluxos de trabalho,
peça ao administrador que conceda a você o
Papel do IAM de editor do Dataform (roles/dataform.editor
) nos repositórios.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.
Criar um fluxo de trabalho de orquestração programado
Para executar execuções programadas do fluxo de trabalho do Dataform SQL, use fluxos de trabalho para criar um fluxo de trabalho de orquestração e adicionar um job do Cloud Scheduler como acionador.
O Workflows usa contas de serviço para dar acesso a recursosGoogle 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 Google Cloud recursos.
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 projeto 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 criação de resultado da compilação do fluxo de trabalho SQL do Dataform
É possível atualizar o fluxo de trabalho de orquestração atual
e definir as configurações de solicitação de resultado de compilação
de criação do fluxo de trabalho SQL do Dataform 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 schemaSuffix
_dev
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 de fluxos de trabalho 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.
Personalizar a solicitação de invocação do fluxo de trabalho SQL do Dataform
É 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 do Dataform SQL
no formato YAML. Para mais informações sobre as configurações de 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
sequência de comandos abaixo:
- 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 de fluxos de trabalho 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 como configurar 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 do Workflows.
- Para saber mais sobre os preços do Cloud Scheduler, consulte Preços do Scheduler.
- Para saber como programar execuções com o Cloud Composer, consulte Programar execuções com o Cloud Composer.