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 ou un principal de service 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 du compte Azure Databricks doit être un administrateur général Microsoft Entra ID au moment où 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 peut être remplacé au niveau du catalogue et du schéma. Consultez Spécifier un emplacement de stockage managé dans Unity Catalog.

    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 Icône Catalogue Catalogue.

  6. Cliquez sur Créer un 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