Programar ejecuciones

En este documento, se muestra cómo hacer lo siguiente en Dataform:

En la siguiente tabla, se comparan los métodos:

Método Objetivo Tipo de activador
Parámetros de configuración del flujo de trabajo Son ejecuciones de producción estándar basadas en el tiempo dentro de Dataform. Basado en el tiempo
Workflows y Cloud Scheduler Organización ligera y sin servidores de Dataform junto con otras APIs Basada en el tiempo o en eventos
Airflow administrado Canalizaciones complejas con dependencias fuera de BigQuery Basada en el tiempo o en eventos
Activadores de Cloud Build Automatizar las versiones inmediatamente después de un envío de Git Basada en eventos

Antes de comenzar

Para programar ejecuciones con configuraciones de flujo de trabajo o programar ejecuciones con flujos de trabajo y Cloud Scheduler, haz lo siguiente:

  1. En la consola de Google Cloud , ve a la página Dataform.

    Ir a Dataform

  2. Selecciona o crea un repositorio.

  3. Crea una configuración de lanzamiento.

Para programar ejecuciones con Managed Service para Apache Airflow, haz lo siguiente:

  1. Selecciona o crea un repositorio de Dataform.
  2. Otorga acceso de Dataform a BigQuery.
  3. Selecciona o crea un espacio de trabajo de Dataform.
  4. Crea al menos una tabla.
  5. Crea un entorno de Managed Airflow 2.

Roles obligatorios

Para obtener los permisos que necesitas para completar las tareas de este documento, pídele a tu administrador que te otorgue los siguientes roles de IAM:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.

Para usar una cuenta de servicio personalizada cuando crees una configuración de flujo de trabajo, otorga acceso a la cuenta de servicio personalizada.

Para usar las credenciales de usuario de una Cuenta de Google cuando crees una configuración de flujo de trabajo (vista previa), otorga acceso a la Cuenta de Google.

Para habilitar las ejecuciones programadas de una configuración de flujo de trabajo, debes otorgar el permiso iam.serviceAccounts.actAs al agente de servicio predeterminado de Dataform para la cuenta de servicio personalizada que se usa en la configuración del flujo de trabajo. Este permiso está disponible en el rol de usuario de cuenta de servicio (roles/iam.serviceAccountUser). Para obtener más información, consulta Cómo usar el modo act-as estricto.

Para mejorar la seguridad de la programación, consulta Implementa permisos de programación mejorados.

Programa ejecuciones con parámetros de configuración del flujo de trabajo

En esta sección, se muestra cómo crear una configuración de flujo de trabajo en Dataform para programar y configurar ejecuciones de flujos de trabajo. Puedes usar parámetros de configuración de flujo de trabajo para ejecutar flujos de trabajo de Dataform de manera programada.

Acerca de la configuración del flujo de trabajo

Para programar ejecuciones de Dataform de todas las acciones del flujo de trabajo o de las acciones seleccionadas en BigQuery, puedes crear parámetros de configuración del flujo de trabajo. En la configuración de un flujo de trabajo, seleccionas una configuración de versión de compilación, eliges las acciones del flujo de trabajo para la ejecución y estableces la programación de ejecución.

Luego, durante una ejecución programada de la configuración de tu flujo de trabajo, Dataform implementa tu selección de acciones del resultado de compilación más reciente en la configuración de tu versión en BigQuery. También puedes activar manualmente la ejecución de un parámetro de configuración de flujo de trabajo con workflowConfigs de la API de Dataform.

Una configuración del flujo de trabajo de Dataform contiene los siguientes parámetros de configuración de ejecución:

  • Es el ID de la configuración del flujo de trabajo.
  • Es la configuración de lanzamiento.
  • Es la cuenta de servicio.

    Esta es la cuenta de servicio personalizada asociada con la configuración del flujo de trabajo. Puedes seleccionar una cuenta de servicio personalizada asociada a tu proyecto Google Cloud o ingresar manualmente una cuenta de servicio diferente. De forma predeterminada, las configuraciones de flujos de trabajo usan las mismas cuentas de servicio que sus repositorios.

    Las credenciales de la cuenta de servicio son el método de autorización predeterminado para la creación y ejecución de configuraciones de flujos de trabajo programados.

  • Credenciales de usuario de la Cuenta de Google (vista previa)

    Las credenciales de usuario de la Cuenta de Google son el método de autorización predeterminado para la creación y ejecución manuales y no programadas de la configuración del flujo de trabajo. Para obtener más información, consulta Autoriza tu Cuenta de Google.

  • Acciones del flujo de trabajo que se ejecutarán:

    • Todas las acciones.
    • Selección de acciones
    • Selección de etiquetas
  • Es la programación de ejecución y la zona horaria.

Crea una configuración de flujo de trabajo

Para crear una configuración de flujo de trabajo de Dataform, sigue estos pasos:

  1. En tu repositorio, ve a Lanzamientos y programación.
  2. En la sección Configuración del flujo de trabajo, haz clic en Crear.
  3. En el panel Crear configuración de flujo de trabajo, en el campo ID de configuración, ingresa un ID único para la configuración del flujo de trabajo.

    Los IDs solo pueden incluir números, letras, guiones y guiones bajos.

  4. En el menú Configuración de lanzamiento, selecciona una configuración de lanzamiento de compilación.

  5. En la sección Autenticación, autoriza la configuración del flujo de trabajo con las credenciales de usuario de tu Cuenta de Google o una cuenta de servicio.

    • Para usar las credenciales de usuario de tu Cuenta de Google (versión preliminar), selecciona Ejecutar con mis credenciales de usuario.

      Opcional: En la sección Opciones de acceso extendido, selecciona los servicios adicionales que requiere tu flujo de trabajo:

      • Knowledge Catalog: Permite actualizaciones de metadatos de Google Cloud Knowledge Catalog.
      • Google Drive: Permite el acceso de solo lectura a los archivos de Google Drive.
      • Bigtable: Permite el acceso de solo lectura a los datos de Google Bigtable.
    • Para usar una cuenta de servicio personalizada, selecciona Ejecutar con la cuenta de servicio seleccionada y, luego, selecciona la cuenta de servicio asociada con tu proyecto Google Cloud al que tienes acceso. Si no seleccionas una cuenta de servicio, la configuración del flujo de trabajo usará la cuenta de servicio del repositorio.

  6. Opcional: En el campo Frecuencia de programación, ingresa la frecuencia de las ejecuciones en el formato unix-cron.

    Para verificar que Dataform ejecute el resultado de compilación más reciente en la configuración de versión correspondiente, mantén un descanso de al menos una hora entre el momento de la creación del resultado de compilación y el momento de la ejecución programada.

  7. Opcional: En el menú Zona horaria, selecciona la zona horaria para las ejecuciones.

    La zona horaria predeterminada es UTC.

  8. Selecciona las acciones del flujo de trabajo que se ejecutarán:

    • Para ejecutar todo el flujo de trabajo, haz clic en Todas las acciones.
    • Para ejecutar las acciones seleccionadas en el flujo de trabajo, haz clic en Selección de acciones y, luego, selecciona las acciones.
    • Para ejecutar acciones con las etiquetas seleccionadas, haz clic en Selección de etiquetas y, luego, selecciona las etiquetas.
    • Opcional: Para ejecutar las acciones o etiquetas seleccionadas y sus dependencias, selecciona la opción Incluir dependencias.
    • Opcional: Para ejecutar las acciones o etiquetas seleccionadas y sus elementos dependientes, selecciona la opción Incluir dependientes.
    • Opcional: Para volver a compilar todas las tablas desde cero, selecciona la opción Ejecutar con actualización completa.

      Sin esta opción, Dataform actualiza las tablas incrementales sin volver a compilarlas desde cero.

    • Opcional: Establece la prioridad del trabajo de consulta de BigQuery con la opción Ejecutar como trabajo interactivo con alta prioridad (predeterminada). De forma predeterminada, BigQuery ejecuta las consultas como trabajos de consulta interactivos, que están diseñados para comenzar a ejecutarse lo más rápido posible. Si borras esta opción, las consultas se ejecutarán como trabajos de consulta por lotes, que tienen una prioridad más baja.

  9. Haz clic en Crear. Si seleccionaste Ejecutar con mis credenciales de usuario como método de autenticación, debes autorizar tu Cuenta de Google (versión preliminar).

Por ejemplo, la siguiente configuración del flujo de trabajo ejecuta acciones con la etiqueta hourly cada hora en la zona horaria CEST:

  • ID de configuración: production-hourly
  • Configuración de lanzamiento: -
  • Frecuencia: 0 * * * *
  • Zona horaria: Central European Summer Time (CEST)
  • Selección de acciones del flujo de trabajo: selección de etiquetas, etiqueta hourly

Autoriza tu Cuenta de Google

Para autenticar el recurso con las credenciales de usuario de tu Cuenta de Google, debes otorgar permiso de forma manual a las canalizaciones de BigQuery para obtener el token de acceso de tu Cuenta de Google y acceder a los datos de origen en tu nombre. Puedes otorgar la aprobación manual con la interfaz del diálogo de OAuth. Si seleccionas alguna de las opciones de acceso extendido, debes otorgar acceso a esos servicios, por ejemplo, Google Drive o Knowledge Catalog.

Solo debes otorgar permiso a las canalizaciones de BigQuery una vez.

Para revocar el permiso que otorgaste, sigue estos pasos:

  1. Ve a la página de tu Cuenta de Google.
  2. Haz clic en BigQuery Pipelines.
  3. Haga clic en Quitar acceso.

Cambiar el propietario de la configuración del flujo de trabajo actualizando las credenciales también requiere aprobación manual si el nuevo propietario de la Cuenta de Google nunca antes creó una configuración del flujo de trabajo.

Cómo editar la configuración de un flujo de trabajo

Para editar la configuración de un flujo de trabajo, sigue estos pasos:

  1. En tu repositorio, ve a Lanzamientos y programación.
  2. En la configuración del flujo de trabajo que deseas editar, haz clic en el menú Más y, luego, en Editar.
  3. En el panel Editar configuración del flujo de trabajo, edita la configuración del flujo de trabajo y, luego, haz clic en Guardar.

Borra la configuración de un flujo de trabajo

Para borrar la configuración de un flujo de trabajo, sigue estos pasos:

  1. En tu repositorio, ve a Lanzamientos y programación.
  2. En la configuración del flujo de trabajo que deseas borrar, haz clic en el menú Más y, luego, en Borrar.
  3. En el cuadro de diálogo Borrar configuración de lanzamiento, haz clic en Borrar.

Programa ejecuciones con Workflows y Cloud Scheduler

En esta sección, se muestra cómo programar ejecuciones de flujos de trabajo de Dataform con Workflows y Cloud Scheduler.

Acerca de las ejecuciones programadas del flujo de trabajo

Puedes establecer la frecuencia de las ejecuciones de tu flujo de trabajo de Dataform si creas un trabajo de Cloud Scheduler que active un flujo de trabajo de Workflows. Workflows ejecuta servicios en un flujo de trabajo de organización que tú defines.

Workflows ejecuta tu flujo de trabajo de Dataform en un proceso de dos pasos. Primero, extrae el código de tu 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 Dataform y lo ejecuta con la frecuencia que establezcas.

Crea un flujo de trabajo de organización programado

Para programar ejecuciones de tu flujo de trabajo de Dataform, usa Workflows para crear un flujo de trabajo de organización y agrega un trabajo de Cloud Scheduler como activador.

  1. Workflows usa cuentas de servicio para otorgar acceso a los recursos deGoogle Cloud . Crea una cuenta de servicio y otórgale los siguientes permisos:

  2. Crea un flujo de trabajo de organización y usa el siguiente código fuente en YAML como definición del 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/v1/" + repository + "/compilationResults"}
                auth:
                    type: