Créer un metastore Unity Catalog

Cet article explique comment créer un metastore Unity Catalog et le lier à des espaces de travail.

Important

Les instructions de cet article ne sont pas nécessaires pour les espaces de travail qui ont été activés automatiquement pour Unity Catalog. Databricks a commencé à activer automatiquement de nouveaux espaces de travail pour Unity Catalog le 9 novembre 2023, avec une procédure de déploiement progressive entre les comptes. Vous ne devez suivre les instructions de cet article que si vous avez un espace de travail et que vous n’avez pas déjà un metastore dans votre région d’espace de travail. Pour déterminer si un metastore existe déjà dans votre région, consultez Activation automatique d’Unity Catalog.

Un metastore est le conteneur de niveau supérieur pour des données dans Unity Catalog. Les metastores Unity Catalog enregistrent des métadonnées sur les objets sécurisables (tels que les tables, les volumes, les emplacements externes et les partages) et les autorisations qui régissent l’accès à ces objets. Chaque metastore expose un espace de noms de trois niveaux (catalog.schema.table) avec lequel les données peuvent être organisées. Vous devez avoir un metastore pour chaque région dans laquelle votre organisation opère. Pour travailler avec Unity Catalog, les utilisateurs doivent se trouver sur un espace de travail attaché à un metastore dans leur région.

Pour créer un metastore, procédez comme suit :

  1. Dans votre compte Azure, créez éventuellement un emplacement de stockage pour le stockage au niveau du metastore des tables et volumes managés.

    Pour obtenir des informations qui vous aideront à déterminer si vous avez besoin d’un stockage au niveau du metastore, consultez les sections (Facultatif) Créer un stockage au niveau du metastore et Les données sont physiquement séparées dans le stockage.

  2. Dans votre compte Azure, créez une identité managée Azure qui donne accès à cet emplacement de stockage.

  3. Dans Azure Databricks, créez le metastore, attachez l’emplacement de stockage et affectez des espaces de travail au metastore.

Remarque

Outre les approches décrites dans cet article, vous pouvez également créer un metastore à l’aide du fournisseur Databricks Terraform, et plus particulièrement de la ressource databricks_metastore. Pour permettre à Unity Catalog d’accéder au metastore, utilisez databricks_metastore_data_access. Pour lier des espaces de travail à un metastore, utilisez databricks_metastore_assignment.

Avant de commencer

Avant de commencer, vous devez vous familiariser avec les concepts de base de Unity Catalog, notamment les metastores et le stockage géré. Consultez Qu’est-ce que Unity Catalog ?.

Vous devez également confirmer que vous répondez aux exigences suivantes pour toutes les étapes de configuration :

  • Vous devez être administrateur de compte Azure Databricks.

    Le premier administrateur de compte Azure Databricks doit être un administrateur général Microsoft Entra ID (anciennement Azure Active Directory) quand il se connecte pour la première fois à la console de compte Azure Databricks. Lors de la première connexion, cet utilisateur devient administrateur de compte Azure Databricks et n’a plus besoin du rôle Administrateur général Microsoft Entra ID pour accéder au compte Azure Databricks. Le premier administrateur de compte peut attribuer des utilisateurs dans le locataire Microsoft Entra ID comme administrateurs de compte supplémentaires (qui peuvent eux-mêmes attribuer d’autres administrateurs de compte). Les administrateurs de compte supplémentaires ne nécessitent pas de rôles spécifiques dans Microsoft Entra ID.

  • Les espaces de travail que vous attachez au métastore doivent figurer dans le plan Azure Databricks Premium.

  • Si vous souhaitez configurer le stockage racine au niveau du metastore, vous devez avoir l’autorisation de créer les éléments suivants dans votre locataire Azure :

    • Un compte de stockage à utiliser avec Azure Data Lake Storage Gen2. Consultez Créer un compte de stockage à utiliser avec Azure Data Lake Storage Gen2.
    • Une nouvelle ressource pour accueillir une identité managée affectée par le système. Cela nécessite que vous soyez Contributeur ou Propriétaire d’un groupe de ressources dans un abonnement quelconque du locataire.

Étape 1 (facultative) : créer un conteneur de stockage pour le stockage managé au niveau du metastore

Dans cette étape, qui est facultative, vous créez un compte et un conteneur de stockage pour stocker des données de table et de volume managés au niveau du metastore. Pour déterminer si vous avez besoin d’un stockage au niveau du metastore, consultez (Facultatif) Créer un stockage au niveau du metastore.

  1. Créez un compte de stockage pour Azure Data Lake Storage Gen2.

    Ce compte de stockage contient les tables et volumes managés Unity Catalog. Il doit s’agir d’un compte Azure Data Lake Storage Gen2 dans la même région que vos espaces de travail Azure Databricks. Consultez Créer un compte de stockage à utiliser avec Azure Data Lake Storage Gen2.

  2. Créez un conteneur de stockage qui contient vos données de tables et de volumes managés au niveau du metastore.

    Vous ne pouvez créer qu’un seul metastore par région. Vous devez utiliser la même région pour votre metastore et votre conteneur de stockage.

    Cet emplacement de stockage au niveau du metastore par défaut peut être remplacé au niveau du catalogue et du schéma. Consultez Stockage managé.

    Prenez note de l’URI ADLSv2 du conteneur, qui est au format suivant :

    abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/<metastore-name>
    

    Dans les étapes suivantes, remplacez <storage-container> par cet URI.

Étape 2 (facultative) : créer une identité managée pour accéder à l’emplacement de stockage managé

Dans cette étape, qui est requise uniquement si vous avez terminé l’étape 1, vous créez un connecteur d’accès Azure Databricks qui contient une identité managée et lui donnez accès au conteneur de stockage.

Suivez les instructions de Utiliser les identités managées Azure dans Unity Catalog pour accéder au stockage.

Remarque

Vous pouvez utiliser une identité managée Azure ou un principal de service comme identité donnant accès au conteneur de stockage du metastore. Databricks recommande vivement les identités managées, car elles ne vous obligent pas à gérer les informations d’identification ni de permuter les secrets, et vous pouvez vous connecter à un compte Azure Data Lake Storage Gen2 qui est protégé par un pare-feu de stockage. Si vous souhaitez utiliser un principal de service, consultez Créer un stockage managé Unity Catalog à l’aide d’un principal de service (hérité).

Étape 3 : créer le metastore et attacher un espace de travail

Chaque région Azure Databricks nécessite son propre metastore Unity Catalog.

Vous créez un metastore pour chaque région dans laquelle votre organisation opère. Vous pouvez lier chacun de ces metastores régionaux à n’importe quel nombre d’espaces de travail de cette région. Chaque espace de travail lié présente le même affichage des données dans le metastore, et le contrôle d’accès aux données peut être géré dans les espaces de travail. Vous pouvez accéder aux données d’autres metastores à l’aide du partage Delta.

Si vous avez choisi de créer un stockage au niveau du metastore, le metastore utilise le conteneur de stockage et l’identité managée Azure que vous avez créés au cours des étapes précédentes.

Pour créer un metastore

  1. Si vous décidez de créer un stockage au niveau du metastore, assurez-vous que vous disposez du chemin d’accès au conteneur de stockage et de l’ID de ressource du connecteur d’accès Azure Databricks que vous avez créé dans la tâche précédente.

  2. Connectez-vous à votre espace de travail en tant qu’administrateur de compte.

  3. Cliquez sur votre nom d’utilisateur dans la barre supérieure de l’espace de travail, puis sélectionnez Gérer le compte.

  4. Connectez-vous à la console de compte Azure Databricks.

  5. Cliquez sur Catalog iconCatalogue.

  6. Cliquez sur Create Metastore.

  7. Entrez les informations suivantes :

    • Nom pour le metastore.

    • Région dans laquelle le metastore sera déployé.

      Il doit s’agir de la même région que celle des espaces de travail que vous souhaitez utiliser pour accéder aux données. Si vous avez choisi de créer un conteneur de stockage pour le stockage au niveau du metastore, cette région doit également être la même.

    • (Facultatif) Chemin d’accès d’ADLS Gen 2 : entrez le chemin d’accès du conteneur de stockage que vous allez utiliser comme stockage racine pour le metastore.

      Le préfixe abfss:// est ajouté automatiquement.

    • (Facultatif) ID du connecteur d’accès : entrez l’ID de ressource du connecteur d’accès Azure Databricks au format suivant :

      /subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
      
  8. Cliquez sur Créer.

  9. À l’invite, sélectionnez les espaces de travail à lier au metastore.

    Pour plus d’informations, consultez Activer un espace de travail pour Unity Catalog.

  10. Transférez le rôle d’administrateur de metastore vers un groupe.

    L’utilisateur qui crée un metastore en est propriétaire et est également appelé administrateur de metastore. L’administrateur de metastore peut créer des objets de niveau supérieur dans le metastore, tels que des catalogues, et gérer l’accès aux tables ainsi qu’à d’autres objets. Databricks recommande de réaffecter le rôle d’administrateur metastore à un groupe. Consultez Attribuer un administrateur de metastore.

  11. Activez la gestion Azure Databricks des chargements sur des volumes managés.

    Azure Databricks utilise le partage de ressources cross-origin (CORS) pour charger des données vers des volumes managés dans Unity Catalog. Consultez Configurer le compte de stockage Unity Catalog pour CORS.

Étapes suivantes

Ajouter un stockage managé à un metastore existant

Le stockage managé au niveau du metastore est facultatif et n’est pas inclus pour les metastores créés automatiquement. Vous pouvez ajouter un stockage au niveau du metastore à votre metastore si vous préférez un modèle d’isolation des données qui stocke les données de manière centralisée pour plusieurs espaces de travail. Vous avez besoin d’un stockage au niveau du metastore si vous souhaitez partager des notebooks à l’aide du partage Delta ou si vous êtes un partenaire Azure Databricks qui utilise des emplacements intermédiaires personnels.

Consultez également Stockage managé.

Spécifications

  • Vous devez disposer d’au moins un espace de travail attaché au metastore Unity Catalog.
  • Autorisations Azure Databricks requises :
    • Pour créer un emplacement externe, vous devez être un administrateur de metastore ou un utilisateur disposant des privilèges CREATE EXTERNAL LOCATION et CREATE STORAGE CREDENTIAL.
    • Pour ajouter l’emplacement de stockage à la définition du metastore, vous devez être administrateur de compte. Pour obtenir des instructions sur l’activation du rôle d’administrateur de compte dans votre compte, consultez Établir votre premier administrateur de compte.
  • Autorisations de locataire Azure requises :
    • Permission de créer un compte de stockage à utiliser avec Azure Data Lake Storage Gen2. Ce compte de stockage doit avoir un espace de noms hiérarchique. Consultez Créer un compte de stockage à utiliser avec Azure Data Lake Storage Gen2.
    • Autorisation de créer une nouvelle ressource pour contenir une identité managée affectée par le système. Cela nécessite que vous soyez Contributeur ou Propriétaire d’un groupe de ressources dans un abonnement quelconque du locataire.

Étape 1 : Créer l’emplacement de stockage

Suivez les instructions de l’Étape 1 (facultatif) : Créer un conteneur de stockage pour le stockage managé au niveau du metastore et l’Étape 2 (facultatif) : Créer une identité managée pour accéder à l’emplacement de stockage managé pour créer un conteneur de stockage dans Azure Data Lake Storage Gen2 et un connecteur d’accès Azure Databricks qui contient une identité managée qui a accès au conteneur de stockage.

Étape 2 : Créer un emplacement externe dans Unity Catalog

Dans cette étape, vous créez un emplacement externe dans Unity Catalog qui fait référence au chemin ADLS Gen2 que vous venez de créer.

  1. Créez des informations d’identification de stockage.

    Les informations d’identification de stockage représentent l’identité managée Azure que vous avez créée à l’Étape 1 : Créer l’emplacement de stockage.

    Suivez les instructions fournies dans Créer des informations d’identification de stockage pour la connexion à Azure Data Lake Storage Gen2.

  2. Créez un emplacement externe qui référence les informations d’identification de stockage que vous avez créées à l’étape précédente et le conteneur de stockage ADLS Gen 2 que vous avez créé à l’Étape 1 : Créer l’emplacement de stockage.

    Suivez les instructions fournies dans Créer un emplacement externe pour connecter le stockage cloud à Azure Databricks.

  3. Accordez-vous le privilège CREATE MANAGED STORAGE sur l’emplacement externe.

    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-vous dans le champ Principaux, puis sélectionnez CREATE MANAGED STORAGE.
    4. Cliquez sur Octroyer.

Étape 3 : Ajouter l’emplacement de stockage au metastore

Une fois que vous avez créé un emplacement externe qui représente le compartiment de stockage du metastore, vous pouvez l’ajouter au metastore.

  1. En tant qu’administrateur de compte, connectez-vous à la console de compte.

  2. Cliquez sur Catalog iconCatalogue.

  3. Cliquez sur le nom du metastore.

  4. Vérifiez que vous êtes l’Administrateur du metastore.

    Si ce n’est pas le cas, cliquez sur Modifier et attribuez-vous le statut d’administrateur du metastore. Vous pouvez vous le désattribuer lorsque vous avez terminé cette procédure.

  5. Sous l’onglet Configuration , en regard du chemin d’accès d’ADLS Gen2, cliquez sur Définir.

  6. Dans la boîte de dialogue Définir la racine du metastore, entrez le chemin d’accès d’ADLS Gen2 que vous avez utilisé pour créer l’emplacement externe, puis cliquez sur Mettre à jour.

    Vous ne pouvez pas modifier ce chemin une fois que vous l’avez défini.

Supprimer un metastore

Si vous fermez votre compte Azure Databricks ou si vous avez une autre raison de supprimer l’accès aux données gérées par votre metastore Unity Catalog, vous pouvez supprimer le metastore.

Avertissement

Tous les objets gérés par le metastore deviennent inaccessibles avec les espaces de travail Azure Databricks. Il est impossible d’annuler cette opération.

Les données et métadonnées de table managées sont supprimées automatiquement après 30 jours. Les données de table externes dans votre stockage cloud ne sont pas affectées par la suppression du metastore.

Pour supprimer un metastore :

  1. En tant qu’administrateur de metastore, connectez-vous à la console de compte.
  2. Cliquez sur Catalog iconCatalogue.
  3. Cliquez sur le nom du metastore.
  4. Sous l’onglet Configuration, cliquez sur le menu à trois boutons tout en haut à droite et sélectionnez Supprimer.
  5. Dans la boîte de dialogue de confirmation, entrez le nom du metastore et cliquez sur Supprimer.