Compartir a través de


Modos de implementación de agrupaciones de recursos de Databricks

En este artículo se describe la sintaxis de los modos de implementación de agrupaciones de recursos de Databricks. Las agrupaciones permiten la administración mediante programación de flujos de trabajo de Azure Databricks. Consulte ¿Qué son las agrupaciones de recursos de Databricks?

En los flujos de trabajo de CI/CD, los desarrolladores suelen codificar, probar, implementar y ejecutar soluciones en varias fases o modos. Por ejemplo, el conjunto más sencillo de modos incluye un modo de desarrollo para la validación de preproducción, seguido de un modo de producción para entregas validadas. Las agrupaciones de recursos de Databricks proporcionan una colección opcional de comportamientos predeterminados que corresponden a cada uno de estos modos. Las implementaciones de agrupación pueden usar estos comportamientos con una declaración de modo de una sola línea, en lugar de especificar manualmente estos comportamientos predeterminados en el archivo de configuración de agrupación, y quizás olvidarse de agregar o configurar uno de los comportamientos previstos más a lo largo del proceso.

Modo de desarrollo

Para implementar la agrupación en modo de desarrollo, primero debe agregar la mode asignación, establecida en development, al destino previsto. Por ejemplo, este destino denominado dev se trata como destino de desarrollo:

targets:
  dev:
    mode: development

La implementación de un destino de desarrollo mediante la ejecución del databricks bundle deploy -t <target-name> comando implementa los comportamientos siguientes:

  • Antepone todos los recursos que no se implementan como archivos o cuadernos con el prefijo [dev ${workspace.current_user.userName}] y las etiquetas de cada trabajo implementado y canalización con una dev etiqueta de Azure Databricks.
  • Marca todas las canalizaciones de Delta Live Tables implementadas relacionadas como development: true. Vea Uso del modo de desarrollo para ejecutar actualizaciones de canalización.
  • Habilita el uso de --compute-id <cluster-id> en llamadas relacionadas al comando bundle deploy, que invalida todas y cada una de las definiciones de clúster existentes que ya están especificadas en el archivo de configuración de agrupación relacionado. En lugar de usar --compute-id <cluster-id> en llamadas relacionadas al comando bundle deploy, puede establecer la asignación compute_id aquí, o como una asignación secundaria de la asignación bundle, en el id. del clúster que se va a usar.
  • Pause todas las programaciones y desencadenadores en los trabajos implementados. Reanude las programaciones y los desencadenadores de un trabajo individual estableciendo schedule.pause_status en UNPAUSED.
  • Habilite las ejecuciones simultáneas en todos los trabajos implementados para una iteración más rápida. Deshabilite las ejecuciones simultáneas para un trabajo individual estableciendo max_concurrent_runs en 1.
  • Deshabilite el bloqueo de implementación para una iteración más rápida. Este bloqueo impide que se produzcan conflictos de implementación que es poco probable que se produzcan en modo de desarrollo. Vuelva a habilitar el bloqueo estableciendo bundle.deployment.lock.enabled en true.

Modo de producción

Para implementar la agrupación en modo de producción, primero debe agregar la mode asignación, establecida en production, al destino previsto. Por ejemplo, este destino denominado prod se trata como destino de producción:

targets:
  prod:
    mode: production

La implementación de un destino de producción mediante la ejecución del databricks bundle deploy -t <target-name> comando implementa los comportamientos siguientes:

  • Valida que todas las canalizaciones de Delta Live Tables implementadas relacionadas estén marcadas como development: false.

  • Valida que la rama de Git actual es igual a la rama de Git especificada en el destino. Especificar una rama de Git en el destino es opcional y se puede realizar con una propiedad adicional git como se indica a continuación:

    git:
      branch: main
    

    Esta validación se puede invalidar especificando --force durante la implementación.

  • Databricks recomienda usar entidades de servicio para implementaciones de producción. Puede aplicar esto estableciendo run_as en una entidad de servicio. Consulte Administración de entidades de servicio y Especificación de una identidad de ejecución para un flujo de trabajo de conjuntos de recursos de Databricks. Si no usa entidades de servicio, tenga en cuenta los siguientes comportamientos adicionales:

    • Valida que las asignaciones artifact_path, file_pathroot_path, o state_path no se invalidan en un usuario específico.
    • Valida que se especifican las asignaciones run_as y permissions para aclarar qué identidades tienen permisos específicos para las implementaciones.
  • A diferencia del comportamiento anterior para establecer la asignación de mode a development, establecer la asignación de mode a production no permite anular ninguna definición de clúster existente especificada en el archivo de configuración de agrupación relacionado, por ejemplo mediante la opción --compute-id <cluster-id> o la asignación de compute_id.