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. Para usar estos comportamientos para un destino específico, establezca un mode
o configure presets
para un destino en la asignación de configuración targets
. Para obtener información sobre targets
, consulte asignación de destinos de configuración de agrupación.
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 en modo de desarrollo mediante la ejecución del comando databricks bundle deploy -t <target-name>
implementa los comportamientos siguientes, que se pueden personalizar mediante valores preestablecidos:
- Antepone todos los recursos que no se implementan como archivos o cuadernos con el prefijo
[dev ${workspace.current_user.short_name}]
y las etiquetas de cada trabajo implementado y canalización con unadev
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 comandobundle 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 comandobundle deploy
, puede establecer la asignacióncompute_id
aquí, o como una asignación secundaria de la asignaciónbundle
, en el id. del clúster que se va a usar. - Pausa todas las programaciones y desencadenadores de los recursos implementados, como trabajos o supervisores de calidad. Reanude las programaciones y los desencadenadores de un trabajo individual estableciendo
schedule.pause_status
enUNPAUSED
. - 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
en1
. - 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
entrue
.
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 en modo de producción mediante la ejecución del comando databricks bundle deploy -t <target-name>
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_path
root_path
, ostate_path
no se invalidan en un usuario específico. - Valida que se especifican las asignaciones
run_as
ypermissions
para aclarar qué identidades tienen permisos específicos para las implementaciones.
- Valida que las asignaciones
A diferencia del comportamiento anterior para establecer la asignación de
mode
adevelopment
, establecer la asignación demode
aproduction
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 decompute_id
.
Valores preestablecidos personalizados
Las agrupaciones de recursos de Databricks admiten valores preestablecidos configurables para destinos, lo que permite personalizar los comportamientos de los destinos. Los valores preestablecidos disponibles se enumeran en la tabla siguiente:
Valor preestablecido | Descripción |
---|---|
name_prefix |
Cadena de prefijo que se va a anteponer a los nombres de recursos. |
pipelines_development |
Si la canalización está o no en modo de desarrollo. Los valores válidos son true y false . |
trigger_pause_status |
Estado de pausa que se aplicará a todos los desencadenadores y programaciones. Los valores válidos son PAUSED y UNPAUSED . |
jobs_max_concurrent_runs |
Número máximo de ejecuciones simultáneas permitido para los trabajos. |
tags |
Conjunto de etiquetas key:value que se aplican a todos los recursos que admiten etiquetas, que incluyen trabajos y experimentos. Las agrupaciones de recursos de Databricks no admiten etiquetas para el recurso schema . |
Nota:
Si se establecen mode
y presets
, los valores preestablecidos invalidan el comportamiento del modo predeterminado y la configuración de los recursos individuales invalida los valores preestablecidos. Por ejemplo, si una programación se establece en UNPAUSED
, pero el valor preestablecido trigger_pause_status
se establece en PAUSED
, la programación se reanuda.
En el ejemplo siguiente se muestra una configuración de valores preestablecidos personalizada para el destino denominado dev
:
targets:
dev:
presets:
name_prefix: "testing_" # prefix all resource names with testing_
pipelines_development: true # set development to true for pipelines
trigger_pause_status: PAUSED # set pause_status to PAUSED for all triggers and schedules
jobs_max_concurrent_runs: 10 # set max_concurrent runs to 10 for all jobs
tags:
department: finance