¿Qué son los conjuntos de recursos de Databricks?
Conjuntos de recursos de Databricks (DAB) es una herramienta para facilitar la adopción de procedimientos recomendados de ingeniería de software, como el control de código fuente, su revisión, las pruebas, y la integración continua y la entrega continuas (CI/CD) de los proyectos de datos e IA. Los conjuntos permiten describir recursos de Databricks, por ejemplo, trabajos, canalizaciones y cuadernos, como archivos de origen. Estos archivos de origen proporcionan una definición completa de un proyecto, incluido cómo se debe estructurar, probar e implementar, lo que facilita la colaboración en proyectos durante la fase de desarrollo activo.
Los conjuntos proporcionan una manera de incluir metadatos junto con los archivos de origen del proyecto. Al implementar un proyecto mediante conjuntos, estos metadatos se usan para aprovisionar una infraestructura y otros recursos. Luego, la colección de metadatos y archivos de origen del proyecto se implementa como un conjunto individual en el entorno de destino. Una agrupación incluye las siguientes partes:
- Configuraciones necesarias de áreas de trabajo e infraestructuras
- Archivos de origen, como cuadernos y archivos de Python, que incluyen la lógica de negocios
- Definiciones y configuración de los recursos de Databricks, como los trabajos de Azure Databricks, las canalizaciones de Delta Live Tables, los puntos de conexión de Servicio de modelos, los experimentos de MLflow y los modelos registrados de MLflow
- Pruebas unitarias y pruebas de integración.
En el diagrama siguiente se proporciona una vista general de una canalización de desarrollo y CI/CD con conjuntos:
¿Cuándo debo usar los conjuntos de recursos de Databricks?
Los conjuntos de recursos de Databricks son un enfoque de infraestructura como código (IaC) para administrar proyectos de Databricks. Úselos cuando quiera administrar proyectos complejos en los que son esenciales varios colaboradores y la automatización, y la integración e implementación continuas (CI/CD) son un requisito. Dado que los conjuntos se definen y administran mediante archivos y plantillas de YAML que se crean y mantienen junto con el código fuente, se asignan bien a escenarios en los que IaC es un enfoque adecuado.
Algunos escenarios ideales para agrupaciones incluyen:
- Desarrolle proyectos de datos, análisis y aprendizaje automático en un entorno basado en equipo. Las agrupaciones pueden ayudarle a organizar y administrar varios archivos de código fuente de forma eficaz. Esto garantiza una colaboración fluida y procesos simplificados.
- Iteración de los problemas de ML más rápido. Administre los recursos de canalización de ML (como los trabajos de entrenamiento e inferencia por lotes) mediante proyectos de ML que siguen los procedimientos recomendados de producción desde el principio.
- Establezca estándares organizativos para nuevos proyectos mediante la creación de plantillas de agrupación personalizadas que incluyan permisos predeterminados, entidades de servicio y configuraciones de CI/CD.
- Cumplimiento normativo: en los sectores en los que el cumplimiento normativo es un problema importante, los paquetes pueden ayudar a mantener un historial con versiones del código y del trabajo de infraestructura. Esto ayuda a la gobernanza y garantiza que se cumplen los estándares de cumplimiento necesarios.
¿Cómo funcionan los conjuntos de recursos de Databricks?
Los metadatos de los conjuntos se definen mediante los archivos YAML que especifican los artefactos, los recursos y la configuración de un proyecto de Databricks. Puede crear este archivo YAML manualmente o generarlo mediante una plantilla de conjunto. Después, se puede usar la CLI de Databricks para validar, implementar y ejecutar conjuntos, para lo que hay que usar estos archivos YAML. Los proyectos de conjuntos se pueden ejecutar desde IDE, terminales, o bien directamente en Databricks. En este artículo se usa la CLI de Databricks.
Los conjuntos se pueden crear manualmente o con una plantilla. La CLI de Databricks proporciona plantillas predeterminadas para casos de uso sencillos, pero para trabajos más específicos o complejos, se pueden crear plantillas de conjuntos personalizadas para implementar los procedimientos recomendados de su equipo y mantener unas configuraciones comunes coherentes.
Para obtener más información sobre el YAML de configuración que se usa para expresar los conjuntos de recursos de Databricks, consulta Configuraciones de conjuntos de recursos de Databricks.
Configuración del entorno para usar conjuntos
Use la CLI de Databricks para implementar fácilmente conjuntos desde la línea de comandos. Para instalar la CLI de Databricks, consulte Instalación o actualización de la CLI de Databricks.
Los conjuntos de recursos de Databricks están disponibles en la CLI de Databricks, versión 0.218.0 o posteriores. Para encontrar la versión de la CLI de Databricks que está instalada, ejecuta el siguiente comando:
databricks --version
Después de instalar la CLI de Databricks, compruebe que las áreas de trabajo remotas de Databricks estén configuradas correctamente. Los conjuntos requieren que se habilite la característica de archivos de área de trabajo, ya que esta característica admite que se trabaje con archivos que no sean cuadernos de Databricks, como los archivos .py
y .yml
. Si usas la versión 11.3 LTS o posterior de Databricks Runtime, esta característica está habilitada de manera predeterminada.
Autenticación
Azure Databricks proporciona varios métodos de autenticación:
- Para escenarios de autenticación asistidos, como flujos de trabajo manuales en los que se usa el explorador web para iniciar sesión en el área de trabajo de Azure Databricks de destino (cuando se le solicite la CLI de Databricks), use la autenticación de usuario a máquina (U2M) de OAuth. Este método es ideal para experimentar con los tutoriales de introducción para Databricks Asset Bundles o para el rápido desarrollo de agrupaciones.
- En escenarios de autenticación desatendida, como flujos de trabajo totalmente automatizados en los que no hay oportunidad de usar el explorador web para iniciar sesión en el área de trabajo de Azure Databricks de destino en ese momento, use la autenticación de máquina a máquina (M2M) de OAuth. Este método requiere el uso de entidades de servicio de Azure Databricks y es ideal para usar conjuntos de recursos de Databricks con sistemas de CI/CD, como GitHub.
Para la autenticación U2M de OAuth, haga lo siguiente:
Use la CLI de Databricks para iniciar la administración de tokens de OAuth localmente mediante la ejecución del siguiente comando para cada área de trabajo de destino.
En el comando siguiente, reemplace
<workspace-url>
por la dirección URL de Azure Databricks por área de trabajo, por ejemplo,https://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
La CLI de Databricks le pide que guarde la información que especificó como un perfil de configuración de Azure Databricks. Presione
Enter
para aceptar el nombre del perfil sugerido o escriba el nombre de un perfil nuevo o existente. Cualquier perfil existente con el mismo nombre se sobrescribe con la información que especificó. Puede usar perfiles para cambiar rápidamente el contexto de autenticación entre varias áreas de trabajo.Para obtener una lista de los perfiles existentes, en un terminal o símbolo del sistema independiente, use la CLI de Databricks para ejecutar el comando
databricks auth profiles
. Para ver la configuración existente de un perfil específico, ejecute el comandodatabricks auth env --profile <profile-name>
.En el explorador web, complete las instrucciones en pantalla para iniciar sesión en el área de trabajo de Azure Databricks.
Para ver el valor actual del token de OAuth de un perfil y la próxima marca de tiempo de expiración del token’, ejecute uno de los siguientes comandos:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
Si tiene varios perfiles con el mismo valor de
--host
, es posible que tenga que especificar las opciones--host
y-p
para ayudar a la CLI de Databricks a encontrar la información correcta del token de OAuth coincidente.
Puede usar este nombre de perfil de configuración de una o varias de las maneras siguientes cada vez que valide, implemente, ejecute o destruya agrupaciones:
- Con la opción de línea de comandos
-p <profile-name>
, anexada a los comandosdatabricks bundle validate
,databricks bundle deploy
,databricks bundle run
odatabricks bundle destroy
. Consulte Desarrollo de conjuntos de recursos de Databricks. - Como valor de la asignación
profile
en el archivo de configuración de agrupación de la asignaciónworkspace
de nivel superior (aunque Azure Databricks recomienda usar la asignaciónhost
en lugar de la asignaciónprofile
, ya que hace que los archivos de configuración de agrupación sean más portátiles). Consulte la cobertura de la asignación deprofile
en área de trabajo. - Si el nombre del perfil de configuración es
DEFAULT
, se usa de forma predeterminada cuando la opción de línea de comandos-p <profile-name>
o la asignación deprofile
(o elhost
) es no se especifica.
Para la autenticación de OAuth M2M, haga lo siguiente:
Complete las instrucciones de configuración de autenticación M2M de OAuth. Consulte Autenticación del acceso a Azure Databricks con una entidad de servicio mediante OAuth (OAuth M2M).
Instale la CLI de Databricks en el recurso de proceso de destino de una de las maneras siguientes:
- Para instalar manualmente la CLI de Databricks en el recurso de proceso en tiempo real, consulte Instalación o actualización de la CLI de Databricks.
- Para usar Acciones de GitHub para instalar automáticamente la CLI de Databricks en una máquina virtual de GitHub, consulte setup-cli en GitHub.
- Para usar otros sistemas de CI/CD para instalar automáticamente la CLI de Databricks en una máquina virtual, consulte la documentación del proveedor del sistema de CI/CD e Instalación o actualización de la CLI de Databricks.
Establezca las siguientes variables de entorno en el recurso de proceso de la siguiente manera:
DATABRICKS_HOST
, establecido en la URL por espacio de trabajo de Azure Databricks, por ejemplohttps://adb-1234567890123456.7.azuredatabricks.net
.DATABRICKS_CLIENT_ID
, se establece en el valor del identificador de aplicación de la entidad de servicio de Azure Databricks.DATABRICKS_CLIENT_SECRET
, se establece en el valor secreto de OAuth de la entidad de servicio de Azure Databricks.
Para establecer estas variables de entorno, consulte la documentación del sistema operativo del recurso de proceso de destino o del sistema CI/CD.
Desarrollar su primer conjunto de recursos de Databricks
La forma más rápida de iniciar el desarrollo de conjuntos es usando una plantilla de proyecto de agrupación. Crea el primer proyecto de conjunto usando el comando init de agrupación de la CLI de Databricks. Este comando presenta una elección de las plantillas de conjunto predeterminadas proporcionadas por Databricks y formula una serie de preguntas para inicializar variables de proyecto.
databricks bundle init
La creación de la agrupación es el primer paso del ciclo de vida de una agrupación. El segundo paso consiste en desarrollar la agrupación, uno de cuyos elementos clave es definir la configuración y los recursos del paquete en databricks.yml
y los archivos de configuración de recursos. Para obtener Información sobre la configuración de agrupación, consulta Configuraciones de agrupaciones de recursos de Databricks.
Sugerencia
Los ejemplos de configuración de agrupación se pueden encontrar en Ejemplos de configuración de agrupación y en el Repositorio de ejemplos de agrupación en GitHub.
Pasos siguientes
- Cree una agrupación que implemente un cuaderno en un área de trabajo de Azure Databricks y, a continuación, ejecute ese cuaderno implementado como un trabajo de Azure Databricks. Consulte Desarrollo de un trabajo en Azure Databricks mediante conjuntos de recursos de Databricks.
- Cree una agrupación que implemente un cuaderno en un área de trabajo de Azure Databricks y, a continuación, ejecute ese cuaderno implementado como una canalización de Delta Live Tables. Consulte Desarrollo de canalizaciones de Delta Live Tables mediante conjuntos de recursos de Databricks.
- Cree una agrupación que implemente y ejecute una pila de MLOps. Consulte Conjuntos de recursos de Databricks para pilas de MLOps.
- Agregue una agrupación a un flujo de trabajo CI/CD (integración continua/implementación continua) en GitHub. Consulte Ejecución de un flujo de trabajo de CI/CD con una agrupación de recursos de Databricks y Acciones de GitHub.
- Cree una agrupación que compile, implemente y ejecute un archivo wheel de Python. Consulte Desarrollo de un archivo wheel de Python mediante conjuntos de recursos de Databricks.
- Cree una plantilla personalizada que usted y otros usuarios puedan usar para crear un conjunto. Una plantilla personalizada puede incluir permisos predeterminados, entidades de servicio y configuración de CI/CD personalizada. Consulta Plantillas de proyecto de agrupación de recursos de Databricks.
- Migración de dbx a agrupaciones de recursos de Databricks. Consulta Migración de dbx a agrupaciones de recursos de Databricks.
- Descubre las nuevas versiones de actualización de características más importantes para las agrupaciones de recursos de Databricks. Consulta Notas de la versión de actualización de características de agrupaciones de recursos de Databricks.