Acerca de las ejecuciones de flujos de trabajo programadas
Para establecer la frecuencia de las ejecuciones de tu flujo de trabajo en SQL de Dataform, crea un trabajo de Cloud Scheduler que active un flujo de trabajo de Workflows. Workflows ejecutan servicios en un flujo de trabajo de organización que tú defines.
Workflows ejecuta el flujo de trabajo en SQL de Dataform en un proceso de dos pasos. Primero, extrae el código del repositorio de Dataform de tu proveedor de Git y lo compila en un resultado de compilación. Luego, usa el resultado de la compilación para crear un flujo de trabajo de SQL de Dataform y lo ejecuta con la frecuencia que establezcas.
Antes de comenzar
En la consola de Google Cloud, ve a la página Dataform.
Selecciona o crea un repositorio.
Funciones obligatorias
Si quieres obtener los permisos que necesitas para programar ejecuciones de Dataform con Workflows,
pídele a tu administrador que te otorgue el
rol de IAM de Editor de Dataform (roles/dataform.editor
) en los repositorios.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.
Es posible que también puedas obtener los permisos necesarios mediante funciones personalizadas, o bien otras funciones predefinidas.
Crea un flujo de trabajo de organización programada
Si quieres ejecutar ejecuciones programadas de tu flujo de trabajo en SQL de Dataform, usa Workflows para crear un flujo de trabajo de organización y agrega un trabajo de Cloud Scheduler como activador.
Workflows usa cuentas de servicio para otorgar a los flujos de trabajo acceso a los recursos de Google Cloud. Crea una cuenta de servicio y otórgale el rol de Editor de Dataform, así como los permisos mínimos necesarios para administrar el flujo de trabajo de organización. Si deseas obtener más información, consulta Otorga permiso a un flujo de trabajo para acceder a los recursos de Google Cloud.
Crea un flujo de trabajo de organización y usa el siguiente código fuente YAML como definición de flujo de trabajo:
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}
Reemplaza lo siguiente:
- PROJECT_ID: El ID del proyecto de Google Cloud
- REPOSITORY_LOCATION: Es la ubicación del repositorio de Dataform.
- REPOSITORY_ID: Es el nombre de tu repositorio de Dataform.
- GIT_COMMITISH: Es la rama de Git desde la que deseas ejecutar el código de Dataform. Para un repositorio recién creado, reemplázalo por
main
.
Programa el flujo de trabajo de organización con Cloud Scheduler.
Personaliza la solicitud de resultado de compilación de creación del flujo de trabajo de SQL de Dataform
Puedes actualizar el flujo de trabajo de organización existente y definir el flujo de trabajo de SQL de Dataform para crear la configuración de la solicitud de resultados de compilación en formato YAML. Para obtener más información sobre la configuración, consulta la referencia del recurso de REST projects.locations.repositories.compilationResults
.
Por ejemplo, para agregar un schemaSuffix
de _dev
a todas las acciones durante la compilación, reemplaza el cuerpo del paso createCompilationResult
por el siguiente fragmento 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
También puedes pasar parámetros de configuración adicionales como argumentos del entorno de ejecución en una solicitud de ejecución de Workflows y acceder a esos argumentos mediante variables. Para obtener más información, consulta Cómo pasar argumentos del entorno de ejecución en una solicitud de ejecución.
Personaliza la solicitud de invocación de flujo de trabajo de SQL de Dataform
Puedes actualizar el flujo de trabajo de organización existente y definir la configuración de solicitudes de invocación del flujo de trabajo de SQL de Dataform en formato YAML. Para obtener más información sobre la configuración de las solicitudes de invocación, consulta la referencia del recurso de REST projects.locations.repositories.workflowInvocations
.
Por ejemplo, para ejecutar solo acciones con la etiqueta hourly
con todas las dependencias transitivas incluidas, reemplaza el cuerpo de createWorkflowInvocation
por el siguiente fragmento 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
También puedes pasar parámetros de configuración adicionales como argumentos del entorno de ejecución en una solicitud de ejecución de Workflows y acceder a esos argumentos mediante variables. Para obtener más información, consulta Cómo pasar argumentos del entorno de ejecución en una solicitud de ejecución.
¿Qué sigue?
- Si quieres obtener más información para configurar programaciones de trabajo cron en Cloud Scheduler, consulta Configuratrabajo crons cron.
- Para obtener más información sobre los precios de Workflows, consulta Precios de Workflows.
- Para obtener más información sobre los precios de Cloud Scheduler, consulta Precios de Cloud Scheduler.
- Para aprender a programar ejecuciones con Cloud Composer y consulta Programa ejecuciones con Cloud Composer.