Créez un emplacement externe pour connecter le stockage cloud à Azure Databricks
Cet article décrit comment configurer un emplacement externe dans Unity Catalog pour connecter le stockage cloud à Azure Databricks.
Les emplacements externes associent les informations d’identification de stockage Unity Catalog aux conteneurs de stockage d’objets cloud. Les emplacements externes sont utilisés pour définir des emplacements de stockage managés pour les catalogues et les schémas, et pour définir des emplacements pour les tables externes et les volumes externes.
Vous pouvez créer un emplacement externe qui fait référence au stockage dans un conteneur de stockage Azure Data Lake Storage Gen2 ou un bucket Cloudflare R2.
Vous pouvez créer un emplacement externe à l’aide de l’Explorateur de catalogues, de l’interface CLI Databricks, de commandes SQL dans un notebook ou une requête SQL Databricks ou de Terraform.
Pour plus d’informations sur les utilisations d’emplacements externes et la relation entre les informations d’identification de stockage et les emplacements externes, consultez Gérer l’accès au stockage cloud à l’aide du catalogue Unity.
Avant de commencer
Configuration requise :
Vous devez créer le conteneur de stockage Azure Data Lake Storage Gen2 ou le seau Cloudflare R2 que vous souhaitez utiliser comme emplacement externe avant de créer l’objet emplacement externe dans Azure Databricks.
Les comptes de stockage Azure Data Lake Storage Gen2 que vous utilisez en tant qu’emplacements externes doivent avoir un espace de noms hiérarchique.
Vous devez disposer d’un identifiant de stockage défini dans Azure Databricks qui donne accès au chemin d’accès à l’emplacement de stockage en ligne. Veuillez consulter les rubriques Créer des informations d’identification de stockage pour la connexion à Azure Data Lake Storage Gen2 et Créer des informations d’identification de stockage pour la connexion à Cloudflare R2.
Conditions requises pour les autorisations :
- Vous devez avoir le
CREATE EXTERNAL LOCATION
privilège sur le metastore et sur l’identifiant de stockage référencé dans l’emplacement externe. Les administrateurs de metastore ontCREATE EXTERNAL LOCATION
sur le metastore par défaut.
Créer un emplacement externe manuellement à l’aide de l’Explorateur de catalogues
Vous pouvez créer un emplacement externe à l’aide de l’Explorateur de catalogues.
Autorisations et conditions préalables : voir Avant de commencer.
Pour créer l’emplacement externe :
Connectez-vous à un espace de travail attaché au metastore.
Dans la barre latérale, cliquez sur Catalogue.
Dans la page Accès rapide, cliquez sur le bouton Données > externes, accédez à l’onglet Emplacements externes, puis cliquez sur Créer un emplacement.
Entrez un nom d’emplacement externe.
Copiez éventuellement le chemin d’accès du conteneur à partir d’un point de montage existant (conteneurs Azure Data Lake Storage Gen2 uniquement).
Si vous n’effectuez pas de copie à partir d’un point de montage existant, utilisez le champ URL pour entrer le chemin d’accès du conteneur de stockage ou le chemin d’accès du compartiment R2 que vous souhaitez utiliser comme emplacement externe.
Par exemple,
abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path>
our2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>
.Sélectionnez les informations d’identification de stockage qui autorisent l’accès à l’emplacement externe.
(Facultatif) Si vous souhaitez que les utilisateurs aient un accès en lecture seule à l’emplacement externe, cliquez sur Options avancées, puis sélectionnez Lecture seule. Pour plus d’informations, consultez Marquer un emplacement externe en lecture seule.
Cliquez sur Créer.
(Facultatif) Liez l’emplacement externe à des espaces de travail spécifiques.
Par défaut, tout utilisateur privilégié peut se servir d’un emplacement externe sur n’importe quel espace de travail attaché au metastore. Si vous voulez autoriser l’accès seulement depuis des espaces de travail spécifiques, accédez à l’onglet Espaces de travail et attribuez des espaces de travail. Consultez (Facultatif) Affecter un emplacement externe à des espaces de travail spécifiques.
Accordez l’autorisation d’utiliser un emplacement externe.
Pour que quiconque puisse utiliser l’emplacement externe, vous devez accorder des autorisations :
- Pour utiliser l’emplacement externe pour ajouter un emplacement de stockage managé au metastore, au catalogue ou au schéma, accordez le privilège
CREATE MANAGED LOCATION
. - Pour créer des tables ou des volumes externes, accordez
CREATE EXTERNAL TABLE
ouCREATE EXTERNAL VOLUME
.
Pour utiliser l’Explorateur de catalogues pour accorder des autorisations :
- Cliquez sur le nom de l’emplacement externe pour ouvrir le volet d’informations.
- Sous l'onglet Autorisations, cliquez sur Octroyer.
- Dans la boîte de dialogue Accorder sur
<external location>
, sélectionnez les utilisateurs, les groupes ou les principaux de service dans le champ Principaux, puis sélectionnez le privilège que vous souhaitez accorder. - Cliquez sur Octroyer.
- Pour utiliser l’emplacement externe pour ajouter un emplacement de stockage managé au metastore, au catalogue ou au schéma, accordez le privilège
Créer un emplacement externe à l’aide de SQL
Pour créer un emplacement externe à l’aide de SQL, exécutez la commande suivante dans un notebook ou l’éditeur de requête SQL. Remplacez les valeurs de l’espace réservé. Pour connaître les autorisations requises et les prérequis, consultez Avant de commencer.
<location-name>
: Nom de l’emplacement externe. Silocation_name
inclut des caractères spéciaux, tels que des traits d’union (-
), il doit être entouré d’accents graves (` `
). Voir Noms.<bucket-path>
: Chemin d’accès de votre locataire Cloud auquel cet emplacement externe accorde l’accès. Par exemple,abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path>
our2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>
.<storage-credential-name>
:Nom des informations d’identification de stockage qui autorisent la lecture et l’écriture dans le conteneur de stockage ou le chemin d’accès du compartiment. Si le nom des informations d’identification du stockage contient des caractères spéciaux, tels que des traits d’union (-
), il doit être entouré d’accents graves (` `
).
CREATE EXTERNAL LOCATION [IF NOT EXISTS] `<location-name>`
URL '<bucket-path>'
WITH ([STORAGE] CREDENTIAL `<storage-credential-name>`)
[COMMENT '<comment-string>'];
Si vous voulez limiter l’accès d’un emplacement externe à des espaces de travail spécifiques de votre compte, ce qui est également appelé liaison d’espace de travail ou isolation d’emplacement externe, consultez (Facultatif) Affecter un emplacement externe à des espaces de travail spécifiques.
(Facultatif) Affecter un emplacement externe à des espaces de travail spécifiques
Important
Cette fonctionnalité est disponible en préversion publique.
Par défaut, un emplacement externe est accessible depuis tous les espaces de travail du metastore. Cela signifie que si un utilisateur a reçu un privilège (commercialisation READ FILES
) sur cet emplacement externe, il peut exercer ce privilège depuis n’importe quel espace de travail attaché au metastore. Si vous utilisez des espaces de travail pour isoler l’accès aux données utilisateur, vous pouvez autoriser l’accès à un emplacement externe seulement depuis des espaces de travail spécifiques. Cette fonctionnalité est appelée liaison d’espace de travail ou isolation d’emplacement externe.
Les cas d’usage classiques pour lier un emplacement externe à des espaces de travail spécifiques sont notamment les suivants :
- Faire en sorte que des ingénieurs données disposant du privilège
CREATE EXTERNAL TABLE
sur un emplacement externe qui contient des données de production peuvent créer des tables externes à cet emplacement seulement dans un espace de travail de production. - Faire en sorte que les ingénieurs données disposant du privilège
READ FILES
sur un emplacement externe qui contient des données sensibles puissent utiliser seulement des espaces de travail spécifiques pour accéder à ces données.
Pour plus d’informations sur la restriction d’autres types d’accès aux données par espace de travail, consultez Limiter l’accès catalogue à des espaces de travail spécifiques.
Important
Les liaisons d'espace de travail sont référencées au moment où des privilèges sont exercés sur les emplacements externes. Par exemple, si un utilisateur crée une table externe en émettant l’instruction CREATE TABLE myCat.mySch.myTable LOCATION 'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance'
à partir de l’espace de travail myWorkspace
, les vérifications de liaison d’espace de travail suivantes sont effectuées en plus des vérifications normales de privilèges utilisateur :
- L’emplacement externe couvrant
'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance'
est-il lié àmyWorkspace
? - Le catalogue
myCat
est-il lié àmyWorkspace
avec un niveau d’accèsRead & Write
?
Si l’emplacement externe est par la suite délié de myWorkspace
, la table externe continue de fonctionner.
Cette fonctionnalité vous permet également de remplir un catalogue à partir d’un espace de travail central et de le mettre à la disposition d’autres espaces de travail à l’aide de liaisons de catalogue, sans rendre l’emplacement externe disponible dans ces autres espaces de travail.
Lier un emplacement externe à un ou plusieurs espaces de travail
Pour affecter un emplacement externe à des espaces de travail spécifiques, vous pouvez utiliser l’Explorateur de catalogues ou l’interface CLI Databricks.
Autorisations requises : administrateur de metastore ou propriétaire d’emplacement externe.
Remarque
Les administrateurs de metastore peuvent voir tous les emplacements externes d’un metastore en utilisant Catalog Explorer et les propriétaires d’emplacement externe peuvent voir tous les emplacements externes dont ils sont propriétaires dans un metastore, que l’emplacement externe soit ou non affecté à l’espace de travail actuel. Les emplacements externes qui ne sont pas affectés à l’espace de travail apparaissent en grisé.
Explorateur de catalogues
Connectez-vous à un espace de travail lié au metastore.
Dans la barre latérale, cliquez sur Catalogue.
Dans la page Accès rapide, cliquez sur le bouton Données >externes pour accéder à l’onglet Emplacements externes.
Sélectionnez l’emplacement externe et accédez à l’onglet Espaces de travail.
Sous l’onglet Espaces de travail , désactivez la case à cocher Tous les espaces de travail ont accès .
Si votre emplacement externe est déjà lié à un ou plusieurs espaces de travail, cette case est déjà décochée.
Cliquez sur Affecter à des espaces de travail, puis entrez ou recherchez les espaces de travail que vous souhaitez attribuer.
Pour révoquer l’accès, accédez à l’onglet Espaces de travail, sélectionnez l’espace de travail, puis cliquez sur Révoquer. Pour autoriser l’accès depuis tous les espaces de travail, cochez la case Tous les espaces de travail ont accès.
INTERFACE DE LIGNE DE COMMANDE
Il existe deux groupes de commandes de l’interface CLI Databricks et deux étapes nécessaires pour affecter un emplacement externe à un espace de travail.
Dans les exemples suivants, remplacez <profile-name>
par le nom de votre profil de configuration d’authentification Azure Databricks. Il doit inclure la valeur d’un jeton d’accès personnel, en plus du nom de l’instance de l’espace de travail et de l’ID d’espace de travail de l’espace de travail où vous avez généré le jeton d’accès personnel. Consultez Authentification à l’aide de jetons d’accès personnels Azure Databricks.
Utilisez la commande
external-locations
du groupe de commandesupdate
pour définir leisolation mode
de l’emplacement externe surISOLATED
:databricks external-locations update <my-location> \ --isolation-mode ISOLATED \ --profile <profile-name>
La valeur par défaut
isolation-mode
concerneOPEN
tous les espaces de travail attachés au metastore.Utilisez la commande
workspace-bindings
du groupe de commandesupdate-bindings
pour affecter les espaces de travail à l’emplacement externe :databricks workspace-bindings update-bindings external-location <my-location> \ --json '{ "add": [{"workspace_id": <workspace-id>}...], "remove": [{"workspace_id": <workspace-id>}...] }' --profile <profile-name>
Utilisez les propriétés
"add"
et"remove"
pour ajouter ou supprimer des liaisons d’espace de travail.Remarque
La liaison en lecture seule (
BINDING_TYPE_READ_ONLY
) n’est pas disponible pour les emplacements externes. Par conséquent, il n’existe aucune raison de définirbinding_type
pour la liaison d’emplacements externes.
Pour lister toutes les affectations d’espace de travail pour un emplacement externe, utilisez la commande get-bindings
du groupe de commande workspace-bindings
:
databricks workspace-bindings get-bindings external-location <my-location> \
--profile <profile-name>
Consultez également les Liaisons de l’espace de travail dans les informations de référence sur l’API REST.
Dissocier un emplacement externe d’un espace de travail
Les instructions à suivre pour révoquer l’accès d’un espace de travail à un emplacement externe en utilisant l’Explorateur de catalogues ou le groupe de commandes CLI workspace-bindings
figurent dans Lier un emplacement externe à un ou plusieurs espaces de travail.
Étapes suivantes
- Accordez à d’autres utilisateurs l’autorisation d’utiliser des emplacements externes. Consultez Gérer les emplacements externes.
- Définissez des emplacements de stockage managés à l’aide d’emplacements externes. Consultez Spécifier un emplacement de stockage managé dans Unity Catalog.
- Définissez des tables externes à l’aide d’emplacements externes. Consultez Utiliser des tables externes.
- Définissez des volumes externes à l’aide d’emplacements externes. Consultez Qu’est-ce que les volumes de catalogue Unity ?.