Se connecter à Azure Blob Storage avec WASB (hérité)
Microsoft a déprécié le Driver Windows Azure Storage Blob (WASB) pour Azure Blob Storage en faveur du Driver Azure Blob Filesystem (ABFS) ; consultez Se connecter à Azure Data Lake Storage et Azure Blob Storage. ABFS présente de nombreux avantages par rapport à WASB ; consultez la documentation Azure sur ABFS.
Cet article fournit une documentation pour la maintenance du code qui utilise le driver WASB. Databricks recommande d'utiliser ABFS pour toutes les connexions au Stockage Azure Blob.
Configurer les identifiants WASB dans Databricks
Le Driver WASB vous permet d'utiliser soit une clé d'accès de compte de stockage, soit une signature d'accès partagé (SAS). (Si vous lisez des données à partir d'un compte de stockage public, vous n'avez pas besoin de configurer les identifiants).
Databricks recommande d'utiliser des secrets chaque fois que vous devez transmettre des informations d'identification dans Databricks. Les secrets sont accessibles à tous les utilisateurs ayant accès au Secret Scope qui les contient.
Vous pouvez transmettre des identifiants :
- Limité au cluster dans la configuration Spark
- Limité au Notebook
Databricks recommande de mettre à niveau toutes vos connexions afin d'utiliser ABFS pour accéder à Azure Blob Storage, qui fournit des modèles d'accès similaires à WASB. Utilisez ABFS pour une sécurité et des performances optimales lors de l'interaction avec Azure Blob Storage.
Pour configurer les informations d'identification du cluster, définissez les propriétés de configuration Spark lorsque vous créez le cluster. Les identifiants définis au niveau du cluster sont disponibles pour tous les utilisateurs ayant accès à ce cluster.
Pour configurer les identifiants délimités par le notebook, utilisez spark.conf.set(). Les identifiants passés au niveau du Notebook sont disponibles pour tous les utilisateurs ayant accès à ce Notebook.
Définition des identifiants Azure Blob Storage avec une clé d’accès au compte de stockage
Une clé d'accès de compte de stockage octroie un accès complet à tous les conteneurs au sein d'un compte de stockage. Bien que ce modèle soit utile pour le prototypage, évitez de l'utiliser en production afin de réduire les risques associés à l'octroi d'un accès illimité aux données de production.
spark.conf.set(
"fs.azure.account.key.<storage-account-name>.blob.core.windows.net",
"<storage-account-access-key>"
)
Vous pouvez mettre à niveau les URI de clé de compte pour utiliser ABFS. Pour plus d'informations, consultez Se connecter à Azure Data Lake Storage et à Stockage Blob.
Définition des informations d'identification d'Azure Blob Storage avec une signature d'accès partagé (SAS)
Vous pouvez utiliser des jetons SAS pour configurer un accès limité à un seul conteneur dans un compte de stockage qui expire à un moment précis.
spark.conf.set(
"fs.azure.sas.<container-name>.<storage-account-name>.blob.core.windows.net",
"<sas-token-for-container>"
)
Accéder au Stockage Azure Blob à l'aide de l'API DataFrame
L'API Apache Spark DataFrame peut utiliser des informations d'identification configurées au niveau du Notebook ou du cluster. Tous les URI de Driver WASB spécifient les noms du conteneur et du compte de stockage. Le nom du répertoire est facultatif et peut spécifier plusieurs répertoires imbriqués par rapport au conteneur.
wasbs://<container-name>@<storage-account-name>.blob.core.windows.net/<directory-name>
Les exemples de code suivants montrent comment vous pouvez utiliser l'API DataFrames et la référence des utilitaires Databricks (dbutils) pour interagir avec un répertoire nommé dans un conteneur.
df = spark.read.format("parquet").load("wasbs://<container-name>@<storage-account-name>.blob.core.windows.net/<directory-name>")
dbutils.fs.ls("wasbs://<container-name>@<storage-account-name>.blob.core.windows.net/<directory-name>")
Pour mettre à jour ABFS au lieu de WASB, mettez à jour vos URI. Pour plus d'informations, consultez Étape 4 : Accéder au stockage Azure
Accéder à Azure Blob Storage avec SQL
Les identifiants définis dans la configuration de session d'un Notebook ne sont pas accessibles aux Notebooks exécutant Spark SQL.
Une fois qu'une clé d'accès au compte ou un SAS est configuré dans votre configuration de cluster, vous pouvez utiliser des requêtes Spark SQL standard avec Azure Blob Storage :
-- SQL
CREATE DATABASE <db-name>
LOCATION "wasbs://<container-name>@<storage-account-name>.blob.core.windows.net/";
Pour mettre à jour ABFS au lieu de WASB, mettez à jour vos URI ; consultez Étape 4 : Accéder au stockage Azure