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
- Una suscripción a Azure: cree una cuenta gratuita
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
En Azure Portal, seleccione Crear un recurso>Almacenamiento. Después, seleccione Cuenta de almacenamiento.

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.

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

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.

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.

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

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

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. 
Después de proporcionar la información descrita anteriormente, seleccione Crear.
Vaya al almacén de claves recién creado en Azure Portal y seleccione Secretos. A continuación, seleccione + Generate/Import (+ Generar/Importar).

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

Crear un área de trabajo de Azure Databricks y agregar un ámbito de secreto
En Azure Portal, seleccione Crear un recursoAnálisisAzure Databricks.

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. 
Seleccione Crear.
En Azure Portal, vaya al recurso de Azure Databricks recién creado y seleccione Launch Workspace (Iniciar área de trabajo).

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

Acceder al contenedor de blobs desde Azure Databricks
En la página principal del área de trabajo de Azure Databricks, seleccione Nuevo clúster en Tareas comunes.

Escriba un nombre de clúster y seleccione Create cluster (Crear clúster). El clúster tarda unos minutos en crearse.
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.

Escriba un nombre de cuaderno y establezca el lenguaje en Python. Establezca el nombre del clúster que creó en el paso anterior.
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.netofs.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.

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>")
Use el siguiente comando para ver el contenido del archivo.
df.show()
Para desmontar el contenedor de almacenamiento de blobs, ejecute el siguiente comando:
dbutils.fs.unmount("/mnt/<mount-name>")
Observe que una vez que se haya desmontado el montaje, ya no podrá leer de la cuenta de almacenamiento de blobs.

Limpieza de recursos
Si no va a seguir usando esta aplicación, elimine el grupo de recursos mediante los siguientes pasos:
En el menú izquierdo de Azure Portal, seleccione Grupos de recursos y vaya al grupo de recursos en cuestión.
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.