Partager via


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 :

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 ont CREATE 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 :

  1. Connectez-vous à un espace de travail attaché au metastore.

  2. Dans la barre latérale, cliquez sur Icône Catalogue Catalogue.

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

  4. Entrez un nom d’emplacement externe.

  5. Copiez éventuellement le chemin d’accès du conteneur à partir d’un point de montage existant (conteneurs Azure Data Lake Storage Gen2 uniquement).

  6. 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> ou r2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>.

  7. Sélectionnez les informations d’identification de stockage qui autorisent l’accès à l’emplacement externe.

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

  9. Cliquez sur Créer.

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

  11. 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 ou CREATE EXTERNAL VOLUME.

    Pour utiliser l’Explorateur de catalogues pour accorder des autorisations :

    1. Cliquez sur le nom de l’emplacement externe pour ouvrir le volet d’informations.
    2. Sous l'onglet Autorisations, cliquez sur Octroyer.
    3. 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.
    4. Cliquez sur Octroyer.

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. Si location_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> ou r2://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ès Read & 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

  1. Connectez-vous à un espace de travail lié au metastore.

  2. Dans la barre latérale, cliquez sur Icône Catalogue Catalogue.

  3. Dans la page Accès rapide, cliquez sur le bouton Données >externes pour accéder à l’onglet Emplacements externes.

  4. Sélectionnez l’emplacement externe et accédez à l’onglet Espaces de travail.

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

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

  1. Utilisez la commande external-locations du groupe de commandes update pour définir le isolation mode de l’emplacement externe sur ISOLATED :

    databricks external-locations update <my-location> \
    --isolation-mode ISOLATED \
    --profile <profile-name>
    

    La valeur par défaut isolation-mode concerne OPEN tous les espaces de travail attachés au metastore.

  2. Utilisez la commande workspace-bindings du groupe de commandes update-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éfinir binding_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