Connecter Azure Databricks à un emplacement externe OneLake

Important

Cette fonctionnalité est disponible en préversion publique. Les administrateurs d’espace de travail peuvent contrôler l’accès à Prise en charge des emplacements externes pour OneLake depuis la page Préversions. Consultez Gérer les préversions d’Azure Databricks.

Cette page explique comment se connecter à OneLake à l’aide d’un emplacement externe. Grâce à la connexion, vous pouvez créer des objets managés Unity Catalog (tables, volumes et vues, par exemple) et gouverner vos données avec Unity Catalog. Si vous souhaitez lire des données OneLake existantes à partir de Azure Databricks sans écrire, consultez Activer la fédération du catalogue OneLake.

Pour vous connecter à un chemin OneLake, vous devez disposer de deux objets sécurisables du catalogue Unity :

  • Une information d’identification pour le stockage, qui indique une identité managée ou un principal de service permettant d’accéder à votre stockage OneLake.
  • Un emplacement externe, qui définit le chemin ABFSS basé sur l’ID vers votre stockage OneLake et fait référence aux informations d’identification de stockage.

Requirements

Dans Azure Databricks :

  • Votre espace de travail Azure Databricks doit être activé pour Unity Catalog.
  • Vous devez utiliser le calcul serverless ou une ressource classique sur Databricks Runtime 18.1 ou supérieur.
  • Vous devez disposer du privilège CREATE STORAGE CREDENTIAL sur le metastore Unity Catalog et du privilège CREATE EXTERNAL LOCATION à la fois sur le metastore et sur les informations d’identification de stockage.

Dans Microsoft Fabric :

  • Vous devez avoir un espace de travail Fabric actif avec une capacité attribuée.
  • L’identité gérée ou le principal de service doit avoir le rôle Visualiseur sur l’espace de travail Fabric cible et être membre d’un rôle de sécurité OneLake sur l’élément de stockage Azure Databricks.
  • Un administrateur Fabric doit activer Les utilisateurs peuvent créer des éléments de stockage Azure Databricks dans Portail d’administration > Paramètres du locataire.
  • L’espace de travail Fabric cible doit avoir activé S’authentifier avec des jetons SAS délégués par l’utilisateur OneLake dans Paramètres de l’espace de travail > Paramètres délégués > Paramètres OneLake.

Modèle de sécurité

La sécurité OneLake est activée par défaut pour l’élément de stockage Azure Databricks, donc l’élément est verrouillé. Les rôles d’espace de travail Fabric (Administrateur, Membre, Contributeur et Lecteur) n’accordent pas l’accès à ses données. Seuls les membres du rôle de sécurité OneLake de l’objet de stockage peuvent le lire ou l’écrire.

Pour protéger vos données :

  • Ajoutez uniquement l’identité gérée du connecteur d’accès (ou votre principal de service) au rôle de sécurité OneLake.
  • N’ajoutez pas d’utilisateurs, de groupes ni d’autres principaux de service. Toute personne occupant ce poste peut lire et écrire les données directement, en dehors de la gouvernance de Unity Catalog.
  • Les utilisateurs de Fabric doivent lire les données via un élément du catalogue Azure Databricks en miroir, et non directement l’élément de stockage.

Étape 1 : Configurer l’identité et l’accès dans Azure et Fabric

  1. Dans le portail Azure, créez ou identifiez un connecteur Access pour Azure Databricks avec une identité managée ou un principal de service.
  2. Dans Microsoft Fabric, accédez à votre espace de travail cible.
  3. Cliquez sur l’icône en forme d’engrenage Paramètres de l’espace de travail, puis cliquez sur Gérer l’accès.
  4. Cliquez sur Ajouter des personnes ou des groupes et recherchez votre identité managée ou votre principal de service.
  5. Attribuez à l’identité gérée ou au principal de service le rôle Viewer.

Étape 2 : Approvisionner le stockage dans Fabric et obtenir le chemin d’accès

  1. Dans votre espace de travail Fabric, créez un élément de stockage Azure Databricks.

  2. Ouvre Manage OneLake security pour l’objet de stockage. Créez un rôle de sécurité OneLake avec la permission ReadWrite , et ajoutez l’identité gérée ou le principal de service comme seul membre.

  3. Construisez le chemin ABFSS basé sur l’ID:

    abfss://<WorkspaceID>@onelake.dfs.fabric.microsoft.com/<DatabricksStorageID>/Files/
    

    L’ID de l’espace de travail et l’ID d’élément de stockage Azure Databricks sont disponibles dans l’URL du navigateur lorsque l’élément est ouvert dans Fabric.

    Note

    L’emplacement externe nécessite le format de chemin d’accès basé sur des ID (GUID), et non sur des noms d’affichage. Les chemins d’accès basés sur des noms sont rejetés au moment de la création.

    Enregistrez ce chemin d’accès. Vous l’utilisez à l’étape 4.

Étape 3 : Créer un identifiant de stockage Unity Catalog

  1. Connectez-vous à votre espace de travail Azure Databricks compatible avec le catalogue Unity.

  2. Dans la barre latérale, cliquez sur l’icône Données.Catalogue.

  3. Cliquez sur Ajouter ou ajouter une icône, puis sur Créer des informations d’identification.

  4. Sélectionnez un type d'authentification d'une identité managée Azure.

  5. Entrez un nom de l’identifiant de stockage et un commentaire facultatif.

  6. Entrez l’ID du connecteur Access (l’ID de ressource du connecteur d’accès associé à votre identité managée).

    L’ID de ressource est au format suivant :

    /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
    
  7. (Facultatif) Si vous avez créé le connecteur d’accès à l’aide d’une identité managée affectée par l’utilisateur, entrez l’ID d’identité managée.

  8. Cliquez sur Créer.

Étape 4 : Créer l’emplacement externe OneLake

  1. Dans la barre latérale, cliquez sur l’icône Données.Catalogue.

  2. Cliquez sur Ajouter ou ajouter une icône, puis sur Créer un emplacement externe.

  3. Entrez un nom d’emplacement externe.

  4. Sous Type de stockage, sélectionnez OneLake.

  5. Sous Informations d’identification de stockage, sélectionnez les informations d’identification que vous avez créées à l’étape 3.

  6. Sous URL, entrez le chemin ABFSS basé sur l’ID à partir de l’étape 2. Par exemple:

    abfss://<WorkspaceID>@onelake.dfs.fabric.microsoft.com/<DatabricksStorageID>/Files/
    
  7. Cliquez sur Créer.

  8. Cliquez sur Tester la connexion pour vérifier l’emplacement externe.

Étape 5 : Créer des objets catalogue Unity sur l’emplacement externe OneLake

Après avoir créé l’emplacement externe, vous pouvez créer un catalogue qui l’utilise comme stockage managé. OneLake stocke les données des tables gérées (Delta et Iceberg), des volumes, des vues matérialisées et des tables de streaming que vous créez dans ce catalogue.

-- Create a catalog with the OneLake external location as managed storage
CREATE CATALOG my_onelake_catalog
MANAGED LOCATION '<onelake_external_location_path>';

-- Create a schema
CREATE SCHEMA my_onelake_catalog.sales;

-- Create a managed table
CREATE TABLE my_onelake_catalog.sales.orders (
  id INT,
  name STRING,
  created_at TIMESTAMP
);

-- Insert data
INSERT INTO my_onelake_catalog.sales.orders
VALUES (1, 'example', current_timestamp());

Remplacez <onelake_external_location_path> par l’URL d’emplacement externe ou un sous-chemin d’accès dans celui-ci.

Limitations

Cette fonctionnalité présente les limitations suivantes :

  • Fabric Spark ne peut pas lire les tables avec des commits de catalogue

    Les validations du catalogue sont activées par défaut pour les tables managées Unity Catalog des nouveaux catalogues et schémas grâce aux mises à niveau automatiques. Les validations du catalogue font d’Unity Catalog la source de référence pour l’état des tables. Les clients Delta doivent obtenir le dernier état de table via Unity Catalog, ce que Fabric Spark ne fait pas. En conséquence, Fabric Spark, y compris les notebooks Fabric et les définitions de jobs Spark, ne peut pas lire les tables avec des commits de catalogue via un catalogue Azure Databricks en miroir.

    Comme solution de contournement, désactivez les commits de catalogue sur les tables que les charges de travail Fabric Spark doivent lire. Désactiver les commits de catalogue désactive aussi les fonctionnalités qui en dépendent pour cette table. Consultez Désactiver les validations du catalogue.

    ALTER TABLE <table-name> DROP FEATURE 'catalogManaged';
    
  • Le partage Databricks-to-Open n’est pas pris en charge

    Vous ne pouvez pas utiliser le partage Databricks-to-Open pour partager des tables gérées dont le stockage est sur OneLake. Le partage Databricks-to-Open donne aux destinataires des URL pré-signées vers les fichiers de données de la table, et les chemins de stockage OneLake ne prennent pas en charge les URL pré-signées.

  • Fabric n'affiche FILE pas les colonnes

    Fabric ne reconnaît pas le type FILE et exclut donc les colonnes FILE des catalogues Azure Databricks mis en miroir. Fabric reflète toujours les autres colonnes du tableau, mais les utilisateurs de Fabric ne peuvent pas accéder au fichier depuis une ligne.

Troubleshoot

Error Résolution
403 Forbidden lors de l’accès au chemin OneLake Vérifiez que (1) l’identité gérée ou le principal de service possède le rôle Viewer sur l’espace de travail Fabric, (2) qu’il est membre d’un rôle de sécurité OneLake avec la permission ReadWrite sur l’élément de stockage Azure Databricks, et (3) que l’espace de travail Fabric dispose d’une attribution active de capacité.
Avertissement événements des fichiers ignorés lus pendant le test de connexion Cet avertissement est attendu. Les chemins OneLake ne prennent pas en charge les notifications d’événements de fichiers. L’emplacement externe fonctionne correctement.
Échec de la création ou du test des informations d’identification de stockage Vérifiez que : (1) l'identifiant de ressource de l'identité gérée est correct ; (2) que l'identité gérée a le rôle Viewer sur l'espace de travail Fabric cible et fait partie du rôle de sécurité OneLake de l'élément de stockage ; et (3) que le chemin utilise le format basé sur l'ID correct (abfss://<WorkspaceID>@onelake.dfs.fabric.microsoft.com/<DatabricksStorageID>/Files/).

Ressources supplémentaires