Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Los paquetes declarativos de automatización se construyeron originalmente sobre el proveedor de Terraform de Databricks para gestionar las implementaciones. Sin embargo, las versiones 0.279.0 y posteriores de la CLI de Databricks admiten dos motores de implementación diferentes: terraform y direct. El motor de implementación directa proporciona ventajas significativas y no depende de Terraform.
Los nuevos conjuntos creados con la CLI de Databricks versión 1.3.0 y versiones posteriores usan el motor de implementación directa de forma predeterminada. Los paquetes creados con versiones anteriores de la CLI se pueden migrar desde el motor de implementación de Terraform al motor de implementación directa mediante los pasos de migración descritos en esta página.
Importante
Databricks recomienda migrar al motor directo, ya que el motor de implementación de Terraform pronto quedará en desuso y el motor de implementación directa se convertirá en el valor predeterminado. Consulte los paquetes de automatización declarativa pronto pasarán a usar por defecto el motor de implementación directa.
¿Cuáles son las ventajas de la implementación directa?
El nuevo motor de implementación directa usa el SDK de Databricks Go y tiene las siguientes ventajas:
- Evita problemas con firewalls, servidores proxy y registros de proveedor personalizados.
- Diferencias detalladas de los cambios disponibles mediante
bundle plan -o json - Implementación más rápida
- No es necesario descargar Terraform y
terraform-provider-databricksantes de la implementación - Tiempo reducido para liberar nuevos recursos de agrupación, ya que no es necesario alinearse con una versión del proveedor de Terraform
¿Cómo empiezo a usar la implementación directa?
Para empezar a usar el nuevo motor de implementación directa:
- En el caso de los conjuntos existentes, migrelos mediante
databricks bundle deployment migrate. - En el caso de los nuevos paquetes, impleméntelos con la
DATABRICKS_BUNDLE_ENGINEvariable de entorno establecida adirect.
Migración de una agrupación existente
El motor de implementación directa usa su propio archivo de estado JSON. El esquema es diferente del archivo de estado JSON de Terraform. El bundle deployment migrate comando convierte el archivo de estado Terrform (terraform.tfstate) en el archivo de estado de implementación directa (resources.json). El comando lee los identificadores de la implementación existente.
Realice una implementación completa con Terraform:
databricks bundle deploy -t my_targetMigración de la implementación:
databricks bundle deployment migrate -t my_targetCompruebe que la migración se realizó correctamente. El
databricks bundle plancomando debe realizarse correctamente y no debería mostrar ningún cambio.databricks bundle plan -t my_targetSi se produce un error en la comprobación, quite el nuevo archivo de estado:
rm .databricks/bundle/my_target/resources.jsonSi la comprobación se realiza correctamente, implemente la agrupación para sincronizar el archivo de estado con el área de trabajo:
databricks bundle deploy -t my_target
Despliegue directo de un nuevo paquete
El bundle migrate comando no funciona en agrupaciones que nunca se han implementado porque no hay ningún archivo de estado. En su lugar, realice una de las acciones siguientes:
Establezca
bundle.engineen su archivo "databricks.yml".bundle: engine: directEstablezca la variable de
DATABRICKS_BUNDLE_ENGINEentorno e implemente:DATABRICKS_BUNDLE_ENGINE=direct databricks bundle deploy -t my_target
Si se establecen la configuración y la variable de entorno, la configuración tiene prioridad.
¿Cuáles son los cambios en el motor de implementación directa?
El nuevo motor de implementación directa se comporta principalmente igual que el motor de implementación terrform, pero hay algunas diferencias. En concreto, el motor directo realiza un seguimiento del estado local y remoto de los recursos por separado y resuelve las sustituciones de recursos en dos pasos.
Cálculo de diferencias de estado de recursos
A diferencia de Terraform que mantiene un único estado de recurso (una combinación de configuración local y estado remoto), el nuevo motor mantiene estas configuraciones locales independientes y solo registra la configuración local en su archivo de estado.
El cálculo de diferencias de estado de recursos se realiza en dos pasos:
- La configuración del paquete local se compara con la configuración de instantánea usada para la implementación más reciente. El estado remoto no desempeña ningún rol.
- El estado remoto se compara con la configuración de la imagen instantánea usada para la implementación más reciente.
El resultado es que:
-
databricks.ymllos cambios de recursos nunca se omiten y siempre desencadenarán una actualización. - Los campos de recursos no administrados por la implementación no desencadenan un error de resultado incoherente. El motor directo despliega con éxito estos recursos, pero esto puede derivar en una desviación. Los recursos implementados se actualizan durante el siguiente plan o implementación.
Búsqueda de sustituciones de recursos
Las sustituciones de recursos están disponibles para la resolución de IDs de recursos, por ejemplo, ${resources.jobs.my_job.id}. Consulte Sustituciones. La resolución de sustituciones de recursos en el motor de implementación directa se realiza en dos pasos:
- Las referencias que apuntan a campos que están presentes en la configuración local se resuelven en el valor proporcionado en la configuración local.
- Las referencias que no están presentes en la configuración local se resuelven desde el estado remoto. Este es el estado capturado mediante la solicitud adecuada
GETpara un recurso determinado.
El esquema que se usa para resolver una ${resource.*} sustitución se encuentra en el archivo out.fields.txt. Los campos marcados como ALL y STATE se pueden usar para la resolución local. Los campos marcados como ALL o REMOTE se pueden usar para la resolución remota.
Compatibilidad de recursos
Los siguientes recursos requieren el motor de implementación directa y no se admiten con el motor de implementación de Terraform:
- catálogos (Catálogo de Unity)
- ubicaciones externas (catálogo de Unity)
- extremos de búsqueda vectorial
Además, el lifecycle.started campo solo está disponible en el motor de implementación directa y solo para apps, clustersy sql_warehouses. Al establecerse en true, despliega el recurso en modo iniciado. Consulte ciclo de vida.