Tutorial: Acceso a Azure Blob Storage desde Azure Databricks mediante el tutorial de Azure Key Vault

En este tutorial se describe cómo acceder a Azure Blob Storage desde Azure Databricks mediante secretos almacenados en un almacén de claves.

En este tutorial, aprenderá a:

  • Crear un contenedor de blobs y una cuenta de almacenamiento
  • Crear una instancia de Azure Key Vault y agregar un secreto
  • Crear un área de trabajo de Azure Databricks y agregar un ámbito de secreto
  • Acceder al contenedor de blobs desde Azure Databricks

Prerrequisitos

Inicio de sesión en Azure Portal

Inicie sesión en Azure Portal.

Nota:

Este tutorial no puede llevarse a cabo mediante una suscripción de evaluación gratuita de Azure. Si tiene una cuenta gratuita, vaya a su perfil y cambiar la suscripción a pago por uso. Para más información consulte el sitio de cuentas gratuitas de Azure. Después, quite el límite de gasto y solicite un aumento de la cuota para las vCPU de su región. Cuando crea su área de trabajo de Azure Databricks, puede seleccionar el plan de tarifa de la Trial (Premium - 14-Days Free DBUs) para que el área de trabajo acceda a las DBU Premium de Azure Databricks gratis durante 14 días.

Crear un contenedor de blobs y una cuenta de almacenamiento

  1. En Azure Portal, seleccione Crear un recurso>Almacenamiento. Después, seleccione Cuenta de almacenamiento.

    Find Azure storage account resource

  2. Seleccione la suscripción y el grupo de recursos o cree uno nuevo. Escriba un nombre para la cuenta de almacenamiento y elija una ubicación. Seleccione Revisar + crear.

    Set storage account properties

  3. Si la validación no se realiza correctamente, solucione los problemas e inténtelo de nuevo. Si la validación es correcta, seleccione Crear y espere a que se cree la cuenta de almacenamiento.

  4. Vaya a la cuenta de almacenamiento recién creada y seleccione Blobs en Servicios de la página Información general. Después, seleccione + Contenedor y escriba un nombre de contenedor. Seleccione Aceptar.

    Create new container

  5. Busque un archivo para cargar en el contenedor de almacenamiento de blobs. Si no tiene un archivo, use un editor de texto para crear un archivo de texto con algo de información. En este ejemplo, un archivo denominado hw.txt contiene el texto "hello world". Guarde el archivo de texto localmente y cárguelo en el contenedor de Blob Storage.

    Upload file to container

  6. Vuelva a la cuenta de almacenamiento y seleccione Claves de acceso en Configuración. Copie el nombre de la cuenta de almacenamiento y la clave 1 en un editor de texto para usarlos más adelante en este tutorial.

    Find storage account access keys

Crear una instancia de Azure Key Vault y agregar un secreto

  1. En Azure Portal, seleccione Crear un recurso y escriba Key Vault en la barra de búsqueda.

    Create an Azure resource search box

  2. El recurso de Key Vault se selecciona automáticamente. Seleccione Crear.

    Create a Key Vault resource

  3. En la página Crear almacén de claves escriba la información siguiente y mantenga los valores predeterminados para los campos restantes:

    Propiedad Descripción
    Nombre Nombre único del almacén de claves.
    Subscription Elija una suscripción.
    Resource group Elija un grupo de recursos o cree uno.
    Location Elija una ubicación.

    Azure key vault properties

  4. Después de proporcionar la información descrita anteriormente, seleccione Crear.

  5. Vaya al almacén de claves recién creado en Azure Portal y seleccione Secretos. A continuación, seleccione + Generate/Import (+ Generar/Importar).

    Generate new key vault secret

  6. En la página Crear un secreto proporcione la información siguiente y mantenga los valores predeterminados para los campos restantes:

    Propiedad Value
    Opciones de carga Manual
    Nombre Nombre descriptivo de la clave de la cuenta de almacenamiento.
    Value key1 de la cuenta de almacenamiento.

    Properties for new key vault secret

  7. Guarde el nombre de la clave en un editor de texto para usarlo más adelante en este tutorial y seleccione Crear. Después, vaya al menú Propiedades. Copie el Nombre de DNS y el Id. de recurso en un editor de texto para usarlos más adelante en el tutorial.

    Copy Azure Key Vault DNS name and Resource ID

Crear un área de trabajo de Azure Databricks y agregar un ámbito de secreto

  1. En Azure Portal, seleccione Crear un recursoAnálisisAzure Databricks.

    Databricks on Azure portal

  2. En el servicio Azure Databricks, proporcione los valores siguientes para crear un área de trabajo de Databricks.

    Propiedad Descripción
    Nombre del área de trabajo Proporcione un nombre para el área de trabajo de Databricks
    Subscription En el cuadro desplegable, seleccione la suscripción de Azure.
    Resource group Seleccione el mismo grupo de recursos que contiene el almacén de claves.
    Location Seleccione la misma ubicación que tiene la instancia de Azure Key Vault. Para todas las regiones disponibles, consulte el artículo de servicios de Azure disponibles por región.
    Nivel de precios Elija entre Standard o Premium. Para más información sobre estos planes, consulte la página de precios de Databricks.

    Databricks workspace properties

    Seleccione Crear.

  3. En Azure Portal, vaya al recurso de Azure Databricks recién creado y seleccione Launch Workspace (Iniciar área de trabajo).

    Launch Azure Databricks workspace

  4. Una vez abierta el área de trabajo de Azure Databricks en una ventana independiente, anexe #secrets/createScope a la dirección URL. La dirección URL debe tener el siguiente formato:

    https://<\location>.azuredatabricks.net/?o=<\orgID>#secrets/createScope.

  5. Escriba un nombre de ámbito y el nombre DNS y el identificador de recurso de Azure Key Vault que guardó anteriormente. Guarde el nombre del ámbito en un editor de texto para usarlo más adelante en este tutorial. Seleccione Crear.

    Create secret scope in the Azure Databricks workspace

Acceder al contenedor de blobs desde Azure Databricks

  1. En la página principal del área de trabajo de Azure Databricks, seleccione Nuevo clúster en Tareas comunes.

    Create a new Azure Databricks cluster

  2. Escriba un nombre de clúster y seleccione Create cluster (Crear clúster). El clúster tarda unos minutos en crearse.

  3. Una vez creado el clúster, vaya a la página principal del área de trabajo de Azure Databricks y seleccione New Notebook (Nuevo bloc de notas) en Tareas comunes.

    Create a new Azure Databricks notebook

  4. Escriba un nombre de cuaderno y establezca el lenguaje en Python. Establezca el nombre del clúster que creó en el paso anterior.

  5. Ejecute el siguiente comando para montar el contenedor de almacenamiento de blobs. Recuerde cambiar los valores de las siguientes propiedades:

    • your-container-name
    • your-storage-account-name
    • mount-name
    • config-key
    • scope-name
    • key-name
    dbutils.fs.mount(
    source = "wasbs://<your-container-name>@<your-storage-account-name>.blob.core.windows.net",
    mount_point = "/mnt/<mount-name>",
    extra_configs = {"<conf-key>":dbutils.secrets.get(scope = "<scope-name>", key = "<key-name>")})
    
    • mount-name es una ruta de acceso de DBFS que representa la ubicación en la que se montará el contenedor de Blob Storage o una carpeta dentro del contenedor (especificado en el origen). Se creará un directorio con el valor de mount-name que proporcione.
    • conf-key puede ser fs.azure.account.key.<\your-storage-account-name>.blob.core.windows.net o fs.azure.sas.<\your-container-name>.<\your-storage-account-name>.blob.core.windows.net
    • scope-name es el nombre del ámbito del secreto que creó en la sección anterior.
    • key-name es el nombre del secreto que creó para la clave de la cuenta de almacenamiento en el almacén de claves.

    Create blob storage mount in notebook

  6. Ejecute el siguiente comando para leer el archivo de texto del contenedor de almacenamiento de blobs en una trama de datos. Cambie los valores del comando para que coincidan con el nombre de montaje y el de archivo.

    df = spark.read.text("/mnt/<mount-name>/<file-name>")
    

    Read file to dataframe

  7. Use el siguiente comando para ver el contenido del archivo.

    df.show()
    

    Show dataframe

  8. Para desmontar el contenedor de almacenamiento de blobs, ejecute el siguiente comando:

    dbutils.fs.unmount("/mnt/<mount-name>")
    

    Unmount storage account

  9. Observe que una vez que se haya desmontado el montaje, ya no podrá leer de la cuenta de almacenamiento de blobs.

    Unmount storage account error

Limpieza de recursos

Si no va a seguir usando esta aplicación, elimine el grupo de recursos mediante los siguientes pasos:

  1. En el menú izquierdo de Azure Portal, seleccione Grupos de recursos y vaya al grupo de recursos en cuestión.

  2. Seleccione Eliminar grupo de recursos y escriba el nombre del grupo de recursos. A continuación, seleccione Eliminar.

Pasos siguientes

Continúe con el siguiente artículo para aprender a implementar un entorno de Databricks que tenga una red virtual insertada y un punto de conexión de servicio habilitado para Cosmos DB.