Compartir a través de


Desarrollo de canalizaciones de Delta Live Tables mediante agrupaciones de recursos de Databricks

Las Agrupaciones de recursos de Databricks, también conocidas simplemente como agrupaciones, le permiten validar, implementar y ejecutar flujos de recursos de Azure Databricks mediante programación, como canalizaciones de Delta Live Tables. Consulte ¿Qué son las agrupaciones de recursos de Databricks?

En este artículo se describe cómo crear una agrupación para administrar una canalización mediante programación. Consulte ¿Qué es Delta Live Tables? La agrupación se crea mediante la plantilla de agrupación predeterminada de recursos de Databricks para Python, que consta de un cuaderno emparejado con la definición de una canalización y un trabajo para ejecutarlo. Al validar, implementar y ejecutar la canalización implementada en el área de trabajo de Azure Databricks.

Sugerencia

Si tiene canalizaciones existentes creadas mediante la interfaz de usuario o la API de Azure Databricks que desea mover a agrupaciones, debe definirlos en archivos de configuración de agrupación. Databricks recomienda crear primero una agrupación mediante los pasos siguientes y a continuación validar si la agrupación funciona. A continuación, puede agregar definiciones, cuadernos y otros orígenes a la agrupación. Consulte Adición de una definición de canalización existente a una agrupación.

Requisitos

(Opcional) Instalar un módulo de Python para admitir el desarrollo de canalizaciones locales

Databricks proporciona un módulo de Python para ayudar al desarrollo local del código de canalización de Delta Live Tables al proporcionar comprobación de sintaxis, autocompletado y comprobación de tipos de datos a medida que escribe código en el IDE.

El módulo de Python para el desarrollo local está disponible en PyPi. Para instalar el módulo, consulte Stub de Python para Delta Live Tables.

Crear una agrupación mediante una plantilla de proyecto

Cree la agrupación con la plantilla de agrupación predeterminada de Azure Databricks para Python. Esta plantilla consiste en un cuaderno que define una canalización de Delta Live Tables, que filtra los datos del conjunto de datos original. Para obtener más información sobre las plantillas de agrupaciones, consulte Plantillas de proyecto de agrupación de recursos de Databricks.

Si desea crear una agrupación desde cero, consulte Creación de una agrupación manualmente.

Paso 1 Configuración de la autenticación

En este paso, configurará la autenticación entre la CLI de Databricks en la máquina de desarrollo y el área de trabajo de Azure Databricks. En este artículo se asume que quiere usar la autenticación de usuario a máquina (U2M) de OAuth y un perfil de configuración de Azure Databricks correspondiente denominado DEFAULT para la autenticación.

Nota:

La autenticación U2M es adecuada para probar estos pasos en tiempo real. Para flujos de trabajo totalmente automatizados, Databricks recomienda usar la autenticación de máquina a máquina (M2M) de OAuth en su lugar. Consulte las instrucciones de configuración de autenticación de M2M en Autenticación.

  1. Use el 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>
    
  2. 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 comando databricks auth env --profile <profile-name>.

  3. En el explorador web, complete las instrucciones en pantalla para iniciar sesión en el área de trabajo de Azure Databricks.

  4. 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.

Paso 2: crear el conjunto

Inicialice una agrupación mediante la plantilla de proyecto de agrupación de Python predeterminada.

  1. Use el terminal o el símbolo del sistema para cambiar a un directorio de la máquina de desarrollo local que contendrá la agrupación generada de la plantilla.

  2. Use la CLI de Databricks para ejecutar el comando bundle init:

    databricks bundle init
    
  3. En Template to use, deje el valor predeterminado de default-python presionando Enter.

  4. En Unique name for this project, deje el valor predeterminado de my_project o escriba un valor diferente y, a continuación, presione Enter. Con ello se determina el nombre del directorio raíz de esta agrupación. Este directorio raíz se crea en el directorio de trabajo actual.

  5. Para Include a stub (sample) notebook, seleccione no y presione Enter. Esto indica a la CLI de Databricks que no agregue un cuaderno de ejemplo en este momento, ya que el cuaderno de ejemplo asociado a esta opción no tiene ningún código de Delta Live Tables en él.

  6. En Include a stub (sample) DLT pipeline, deje el valor predeterminado de yes presionando Enter. Esto indicará a la CLI de Databricks que agregue un cuaderno de ejemplo que tenga código de Delta Live Tables en el.

  7. Para Include a stub (sample) Python package, seleccione no y presione Enter. Con ello se indica a la CLI de Databricks que no agregue archivos de paquete wheel de Python de ejemplo ni instrucciones de compilación relacionadas a la agrupación.

Paso 3: exploración de la agrupación

Para ver los archivos que generó la plantilla, cambie al directorio raíz de la agrupación recién creada. Entre los tipos de especial interés se incluyen los siguientes:

  • databricks.yml: este archivo especifica el nombre de programación de la agrupación, incluye una referencia a la definición de canalización y especifica la configuración sobre el área de trabajo de destino.
  • resources/<project-name>_job.yml y resources/<project-name>_pipeline.yml: estos archivos definen el trabajo que contiene una tarea de actualización de canalización y la configuración de la canalización.
  • src/dlt_pipeline.ipynb: este archivo es un cuaderno que, cuando se ejecute, ejecutará la canalización.

Para personalizar canalizaciones, las asignaciones dentro de una declaración de canalización corresponden a la carga de solicitud de la operación de creación de la canalización, tal como se define en POST /api/2.0/pipelines en la referencia de API REST, expresada en formato YAML.

Paso 4: Validación del archivo de configuración de la agrupación del proyecto

En este paso, comprobará si la configuración de la agrupación es válida.

  1. En el directorio raíz, use la CLI de Databricks para ejecutar el comando bundle validate de la siguiente manera:

    databricks bundle validate
    
  2. Si se devuelve un resumen de la configuración de la agrupación, indica que la validación se ha realizado correctamente. Si se devuelven errores, corrija los errores y repita este paso.

Si realiza algún cambio en la agrupación después de este paso, debe repetir el paso para comprobar si la configuración de la agrupación sigue siendo válida.

Paso 5: implementación del proyecto local en el área de trabajo remota

En este paso, implementará el cuaderno local en el área de trabajo remota de Azure Databricks y creará la canalización de Delta Live Tables en el área de trabajo.

  1. En la raíz de la agrupación, use la CLI de Databricks para ejecutar el comando bundle deploy de la siguiente manera:

    databricks bundle deploy -t dev
    
  2. Compruebe si se implementó el cuaderno local: en la barra lateral del área de trabajo de Azure Databricks, haga clic en Área de trabajo.

  3. Haga clic en la carpeta Usuarios ><your-username>> .bundle ><project-name>> dev > archivos > src. El cuaderno debería estar en esta carpeta.

  4. Compruebe si se creó la canalización: en la barra lateral del área de trabajo de Azure Databricks, haga clic en Delta Live Tables.

  5. En la pestaña Delta Live Tables, haga clic en [dev <your-username>] <project-name>_pipeline.

Si realiza algún cambio en la agrupación después de este paso, debe repetir los pasos 4 y 5 para comprobar si la configuración de la agrupación sigue siendo válida y volver a implementar el proyecto.

Paso 6: ejecución del proyecto implementado

En este paso, desencadenará la ejecución de la canalización de Delta Live Tables en el área de trabajo desde la línea de comandos.

  1. En el directorio raíz, use la CLI de Databricks para ejecutar el comando bundle run, tal y como se indica a continuación, reemplazando <project-name> por el nombre del proyecto del paso 2:

    databricks bundle run -t dev <project-name>_pipeline
    
  2. Copie el valor de Update URL que aparece en el terminal y pegue este valor en el explorador web para abrir el área de trabajo de Azure Databricks.

  3. En el área de trabajo de Azure Databricks, una vez completada correctamente la canalización, haga clic en la vista taxi_raw y la vista materializada filtered_taxis para ver los detalles.

Si realiza algún cambio en la agrupación después de este paso, debe repetir los pasos del 4 al 6 para comprobar si la configuración de la agrupación sigue siendo válida, volver a implementar el proyecto y ejecutarlo.

Paso 7: limpieza

En este paso, eliminará el cuaderno implementado y la canalización del área de trabajo.

  1. En el directorio raíz, use la CLI de Databricks para ejecutar el comando bundle destroy de la siguiente manera:

    databricks bundle destroy -t dev
    
  2. Confirme la solicitud de eliminación de la canalización: cuando se le pida que destruya permanentemente los recursos, escriba y y presione Enter.

  3. Confirme la solicitud de eliminación del cuaderno: cuando se le pida que destruya permanentemente la carpeta implementada previamente y todos sus archivos, escriba y y presione Enter.

  4. Si también se desea eliminar la agrupación de la máquina de desarrollo, ahora se puede eliminar el directorio local del paso 2.

Adición de una definición de canalización existente a una agrupación

Puede usar una definición de canalización de Delta Live Tables existente como base para definir una nueva canalización en un archivo de configuración de agrupación. Para obtener una definición de canalización existente, puede recuperarla manualmente mediante la interfaz de usuario o puede generarla mediante programación mediante la CLI de Databricks.

Obtención de una definición de canalización existente mediante la interfaz de usuario

Para obtener la representación de YAML de una definición de canalización existente desde la interfaz de usuario del área de trabajo de Azure Databricks:

  1. En la barra lateral del área de trabajo de Azure Databricks, haga clic en Flujos de trabajo.

  2. En la pestaña Delta Live Tables, haga clic en el vínculo Nombre de la canalización.

  3. Junto al botón Desarrollo, haga clic en el kebab y, a continuación, haga clic en Ver YAML de configuración.

  4. Para copiar el archivo YAML de la definición de la canalización en el cuadro de diálogo YAML de configuración de canalización en el portapapeles local, haga clic en el icono de copiar.

  5. Agregue el archivo YAML que copió al archivo databricks.yml del lote o cree un archivo de configuración para la canalización en la carpeta resources del proyecto de agrupación y haga referencia a él desde el archivo databricks.yml. Consulte recursos.

  6. Descargue y agregue los archivos y cuadernos de Python a los que se hace referencia al origen del proyecto de agrupación. Normalmente, los artefactos de agrupación están en el directorio src de una agrupación.

    Sugerencia

    Puede exportar un cuaderno existente desde un área de trabajo de Azure Databricks al formato .ipynb haciendo clic en Archivo > Exportar > Cuaderno de IPython desde la interfaz de usuario del cuaderno de Azure Databricks.

    Después de agregar los cuadernos, los archivos de Python y otros artefactos a la agrupación, asegúrese de que la definición de la canalización hace referencia a ellos de manera adecuada. Por ejemplo, para un cuaderno denominado hello.ipynb que se encuentra en el directorio src/ de la agrupación:

    resources:
      pipelines:
        hello-pipeline:
          name: hello-pipeline
          libraries:
            - notebook:
                path: ../src/hello.ipynb
    

Generación de una definición de canalización existente mediante la CLI de Databricks

Para generar mediante programación la configuración de agrupación para una canalización existente:

  1. Recupere el identificador de la canalización existente en el panel lateral Detalles de canalización de la canalización en la IU o utilice el comando databricks pipelines list-pipelines de la CLI de Databricks.

  2. Ejecute el comando de la CLI de Databricks bundle generate pipeline y establezca el identificador de la canalización:

    databricks bundle generate pipeline --existing-pipeline-id 6565621249
    

    Este comando crea un archivo de configuración de agrupación para la canalización en la carpeta resources del lote y descarga los artefactos a los que se hace referencia en la carpeta src.

    Sugerencia

    Si usa primero bundle deployment bind para enlazar un recurso en una agrupación a uno en el área de trabajo, el recurso del área de trabajo se actualiza en función de la configuración definida en la agrupación a la que se enlaza después del siguiente bundle deploy. Para obtener información sobre bundle deployment bind, vea Enlazar recursos de agrupación.