Compartir a través de


Transformación con Azure Databricks

SE APLICA A: Azure Data Factory Azure Synapse Analytics

Sugerencia

Pruebe Data Factory en Microsoft Fabric, una solución de análisis todo en uno para empresas. Microsoft Fabric abarca todo, desde el movimiento de datos hasta la ciencia de datos, el análisis en tiempo real, la inteligencia empresarial y los informes. Obtenga información sobre cómo iniciar una nueva evaluación gratuita.

En este tutorial, crearás una canalización de extremo a extremo que contenga las actividades Validation (Validación), Copy data (Copiar datos) y Notebook (Cuaderno) en Azure Data Factory.

  • Validation garantiza que el conjunto de datos de origen esté listo para el consumo subsecuente antes de iniciar el trabajo de copia y análisis.

  • Copiar datos (Copy data) duplica el conjunto de datos de origen en el almacenamiento receptor, que se monta como DBFS en el cuaderno de Azure Databricks. De esta manera, el conjunto de datos puede ser consumido directamente por Spark.

  • Notebook: desencadena el cuaderno de Databricks que transforma el conjunto de datos. También agrega el conjunto de datos a una carpeta procesada o a Azure Synapse Analytics.

Por motivos de simplicidad, la plantilla de este tutorial no crea un desencadenador programado. Puede agregar uno si es necesario.

Diagrama de la canalización

Requisitos previos

  • Una cuenta de Azure Blob Storage con un contenedor llamado sinkdata para su uso como receptor.

    Anote el nombre de la cuenta de almacenamiento, el nombre del contenedor y la clave de acceso. Los necesitará más adelante en la plantilla.

  • Un área de trabajo de Azure Databricks.

Importar un cuaderno para la transformación

Para importar un cuaderno de Transformation al área de trabajo de Databricks:

  1. Inicie sesión en su área de trabajo de Azure Databricks.

  2. Haga clic con el botón derecho en una carpeta del área de trabajo y seleccione Importar.

  3. Seleccione Importar desde: URL. En el cuadro de texto, escriba https://adflabstaging1.blob.core.windows.net/share/Transformations.html.

    Selecciones para importar un cuaderno

  4. Actualicemos el cuaderno de Transformation con la información de la conexión de almacenamiento.

    En el cuaderno importado, vaya a command 5 (comando 5), como se muestra en el siguiente fragmento de código.

    • Reemplace <storage name> y <access key> por su propia información de conexión de almacenamiento.
    • Use la cuenta de almacenamiento con el contenedor sinkdata.
    # Supply storageName and accessKey values  
    storageName = "<storage name>"  
    accessKey = "<access key>"  
    
    try:  
      dbutils.fs.mount(  
        source = "wasbs://sinkdata\@"+storageName+".blob.core.windows.net/",  
        mount_point = "/mnt/Data Factorydata",  
        extra_configs = {"fs.azure.account.key."+storageName+".blob.core.windows.net": accessKey})  
    
    except Exception as e:  
      # The error message has a long stack track. This code tries to print just the relevant line indicating what failed.
    
    import re
    result = re.findall(r"\^\s\*Caused by:\s*\S+:\s\*(.*)\$", e.message, flags=re.MULTILINE)
    if result:
      print result[-1] \# Print only the relevant error message
    else:  
      print e \# Otherwise print the whole stack trace.  
    
  5. Genere un token de acceso de Databricks para Data Factory para acceder a Databricks.

    1. En el área de trabajo de Azure Databricks, seleccione el nombre de usuario de Azure Databricks de la barra superior y, a continuación, seleccione Configuración en la lista desplegable.
    2. Seleccione Programador.
    3. Después, junto a Tokens de acceso, seleccione Administrar.
    4. Seleccione Generar nuevo token.
    5. (Opcional) Escriba un comentario que le ayude a identificar este token en el futuro y cambie la duración predeterminada del token de 90 días. Para crear un token sin duración (no recomendado), deje el cuadro Duración (días) vacío (en blanco).
    6. Selecciona Generar.
    7. Copie el token mostrado en una ubicación segura y, a continuación, seleccione Listo.

Guarde el token de acceso para usarlo más adelante en la creación de un servicio vinculado de Databricks. El token de acceso será similar a dapi32db32cbb4w6eee18b7d87e45exxxxxx.

Uso de esta plantilla

  1. Vaya a la plantilla Transformation with Azure Databricks (Transformación con Azure Databricks) y cree nuevos servicios vinculados para las siguientes conexiones.

    Configuración de conexiones

    • Conexión al blob de origen: para acceder a los datos de origen.

      Para este ejercicio, puede usar el almacenamiento de blobs público que contiene los archivos de origen. Tome como referencia la siguiente captura de pantalla para la configuración. Use la siguiente dirección URL de SAS para conectarse al almacenamiento de origen (acceso de solo lectura):

      https://storagewithdata.blob.core.windows.net/data?sv=2018-03-28&si=read%20and%20list&sr=c&sig=PuyyS6%2FKdB2JxcZN0kPlmHSBlD8uIKyzhBWmWzznkBw%3D

      Selecciones para el método de autenticación y la dirección URL de SAS

    • Conexión al blob de destino: para almacenar los datos copiados.

      En la ventana Nuevo servicio vinculado, seleccione su blob de almacenamiento de destino.

      Blob de almacenamiento receptor como un nuevo servicio vinculado

    • Azure Databricks: para conectarse al clúster de Databricks.

      Cree un servicio vinculado de Databricks con la clave de acceso que ha generado anteriormente. Puede seleccionar un clúster interactivo si tiene uno. En este ejemplo se usa la opción New job cluster (Nuevo clúster de trabajo).

      Selecciones para conectarse al clúster

  2. Seleccione Usar esta plantilla. Verá que se ha creado una canalización.

    Crear una canalización

Introducción y configuración de canalizaciones

En la nueva canalización, la mayoría de las opciones se han configurado automáticamente con los valores predeterminados. Revise las configuraciones de la canalización y realice los cambios necesarios.

  1. En la actividad Validation llamada Availability flag (Marca de disponibilidad), compruebe que el valor del conjunto de datos de origen sea el conjunto SourceAvailabilityDataset que ha creado anteriormente.

    Valor del conjunto de datos de origen

  2. En la actividad Copy data llamada file-to-blob (de archivo a blob), compruebe las pestañas Source (Origen) y Sink (Receptor). Cambie la configuración si es necesario.

    • Source tab Pestaña de origen

    • Pestaña Sink (Receptor)Pestaña Sink (Receptor)

  3. En la actividad NotebookTransformation, revise y actualice las rutas y la configuración según sea necesario.

    El campo Servicio vinculado de Databricks debería estar rellenado previamente con el valor de un paso anterior, como se muestra aquí: Valor rellenado para el servicio vinculado de Databricks

    Para comprobar la configuración de Notebook:

    1. Seleccione la pestaña Configuración. En Ruta del cuaderno, compruebe que la ruta predeterminada es correcta. Es posible que necesite examinar y elegir la ruta de acceso correcta del cuaderno.

      Ruta de acceso del cuaderno

    2. Expanda el selector Base Parameters (Parámetros base) y compruebe que los parámetros coinciden con lo que se muestra en la siguiente captura de pantalla. Estos parámetros se pasan al cuaderno de Databricks desde Data Factory.

      Parámetros base

  4. Compruebe que los parámetros de canalización coinciden con los que aparecen en la siguiente captura de pantalla: Parámetros de canalización

  5. Conéctese a sus conjuntos de datos.

    Nota

    En los siguientes conjuntos de datos, la ruta de acceso del archivo se ha especificado automáticamente en la plantilla. Si se requiere algún cambio, asegúrese de especificar la ruta de acceso para el contenedor y el directorio en caso de error de conexión.

    • SourceAvailabilityDataset: para comprobar si los datos de origen están disponibles.

      Selecciones para el servicio vinculado y la ruta de acceso al archivo de SourceAvailabilityDataset

    • SourceFilesDataset: para acceder a los datos de origen.

      Selecciones para el servicio vinculado y la ruta de acceso al archivo de SourceFilesDataset

    • DestinationFilesDataset: sirve para copiar los datos en la ubicación de destinos del receptor. Use los valores siguientes:

      • Linked service - (Servicio vinculado): sinkBlob_LS, creado en un paso anterior.

      • File path - (Ruta de acceso del archivo): sinkdata/staged_sink.

        Selecciones para el servicio vinculado y la ruta de archivo de DestinationFilesDataset

  6. Seleccione Debug para ejecutar la canalización. Puede consultar el vínculo a los registros de Databricks si quiere obtener registros de Spark más detallados.

    Enlace a los registros de Databricks desde la salida

    También puede comprobar el archivo de datos mediante el Explorador de Azure Storage.

    Nota

    Para correlacionar con las ejecuciones de canalización de Data Factory, este ejemplo agrega el ID de ejecución de la canalización de Data Factory a la carpeta de salida. Esto ayuda a hacer un seguimiento de los archivos generados por cada ejecución. Identificador de ejecución del pipeline añadido