Aller au contenu principal

Créer un métastore Unity Catalog

Cette page explique comment créer un métastore Unity Catalog et le Link à des workspaces.

important

Pour les workspaces pour lesquels Unity Catalog a été activé automatiquement, les instructions de cette page sont superflues. Databricks a commencé à activer de nouveaux workspaces pour Unity Catalog automatiquement le 8 novembre 2023, avec un déploiement progressif sur tous les comptes. Vous devez suivre les instructions de cette page uniquement si vous avez un workspace et que vous n'avez pas encore de metastore dans la région de votre workspace. Pour déterminer si un metastore existe déjà dans votre région, consultez Se familiariser avec Unity Catalog.

Un métastore est le conteneur de premier niveau des données dans Unity Catalog. Les métastores Unity Catalog enregistrent les métadonnées concernant les objets sécurisables (tels que les tables, les volumes, les emplacements externes et les partages) et les autorisations qui régissent leur accès. Chaque métastore expose un espace de noms à trois niveaux (catalog.schema.table) par lequel les données peuvent être organisées. Vous devez disposer d'un métastore pour chaque région dans laquelle votre organisation opère. Pour travailler avec Unity Catalog, les utilisateurs doivent se trouver sur un Workspace qui est rattaché à un métastore dans leur région.

Pour créer un métastore, procédez comme suit :

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

    Pour obtenir des informations pour vous aider à décider si vous avez besoin d'un stockage au niveau du métastore, consultez Spécifier un emplacement de stockage géré dans Unity Catalog.

  2. Dans votre compte AWS, créez un rôle IAM qui donne accès à cet emplacement de stockage.

  3. Dans Databricks, créez le metastore, en attachant l'emplacement de stockage, et attribuez des Workspaces au metastore.

remarque

En plus des approches décrites dans cet article, vous pouvez également créer un métastore en utilisant le fournisseur Databricks Terraform, plus précisément la ressource databricks_metastore. Pour permettre à Unity Catalog d'accéder au métastore, utilisez databricks_metastore_data_access. Pour lier des workspaces à un métastore, utilisez databricks_metastore_assignment.

Avant de commencer

Avant de commencer, vous devriez vous familiariser avec les concepts de base du Unity Catalog, y compris les métastores et le stockage géré. Voir Qu'est-ce que Unity Catalog ?

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

  • Vous devez être administrateur de compte Databricks.
  • Votre compte Databricks doit être sur le forfait Premium ou supérieur.
  • Si vous souhaitez configurer un stockage racine au niveau du metastore, vous devez avoir la possibilité de créer des compartiments S3, des rôles IAM, des politiques IAM et des relations d'approbation inter-comptes dans votre compte AWS.

Étape 1 (Facultatif) : Créez un compartiment S3 pour le stockage géré au niveau du metastore dans AWS

Au cours de cette étape, facultative, vous créez le compartiment S3 requis par Unity Catalog pour stocker les données des tables gérées et des volumes au niveau du métastore. Vous créez le compartiment S3 dans votre propre compte AWS. Pour déterminer si vous avez besoin d'un stockage au niveau du métastore, consultez Spécifier un emplacement de stockage géré dans Unity Catalog.

  1. Dans AWS, créez un compartiment S3.

    Ce compartiment S3 sera l'emplacement de stockage au niveau du métastore pour les tables gérées et les volumes gérés dans Unity Catalog. Cet emplacement de stockage peut être remplacé au niveau du catalogue et du schéma. Voir Spécifier un emplacement de stockage géré dans Unity Catalog

    Exigences :

    • Si vous avez plus d’un métastore, vous devez utiliser un compartiment S3 dédié pour chacun d’eux.
    • Localisez le compartiment dans la même région que les Workspaces à partir desquels vous souhaitez accéder aux données.
    • N’utilisez pas la notation par points (par exemple, incorrect.bucket.name.notation) dans les noms de compartiments S3. Bien qu'AWS autorise les points dans les noms de compartiments, Databricks ne prend pas en charge les compartiments S3 avec notation par points. Les compartiments contenant des points peuvent entraîner des problèmes de compatibilité avec des fonctionnalités telles qu'OpenSharing en raison d'échecs de validation des certificats SSL. Pour plus d'informations, consultez les meilleures pratiques de dénomination de compartiments AWS.
    • Le bucket ne peut pas avoir une liste de contrôle d'accès S3 qui lui est associée.
  2. Prenez note du chemin d'accès au compartiment S3, qui commence par s3://.

  3. Si vous activez le chiffrement KMS sur le compartiment S3, prenez note du nom de la clé de chiffrement KMS.

Étape 2 (facultatif) : créer un rôle IAM pour accéder à l'emplacement de stockage

Lors de cette étape, qui est requise uniquement si vous avez terminé l'étape 1, vous créez le rôle IAM requis par Unity Catalog pour accéder au compartiment S3 que vous avez créé à l'étape précédente. Suivez ces instructions dans Créer un identifiant de stockage qui accède à un compartiment AWS S3:

Étape 3 : créer le metastore et attacher un Workspace

Chaque région Databricks nécessite son propre métastore Unity Catalog.

Vous créez un métastore pour chaque région dans laquelle votre organisation opère. Vous pouvez Link chacun de ces métastores régionaux à un nombre quelconque d'Workspaces dans cette région. Chaque Workspace lié a la même vue des données dans le métastore, et le contrôle d’accès aux données peut être géré sur l’ensemble des Workspaces. Vous pouvez accéder aux données d’autres métastores à l’aide d’ OpenSharing.

Si vous avez choisi de créer un stockage au niveau du metastore, le metastore utilisera le compartiment S3 et le rôle IAM que vous avez créés lors des étapes précédentes.

Pour créer un métastore :

  1. Connectez-vous à la console de compte Databricks.

  2. Cliquez sur Icône de données. le Catalogue .

  3. Cliquez sur Créer un metastore .

  4. Saisissez les informations suivantes :

    • Un nom pour le métastore.

    • La région où vous souhaitez déployer le métastore.

      Ceci doit se trouver dans la même région que les Workspaces que vous souhaitez utiliser pour accéder aux données. Assurez-vous que cela corresponde à la région du compartiment de stockage que vous avez créé précédemment.

    • (Facultatif) Le chemin du compartiment S3 (vous pouvez omettre s3://) et le nom du rôle IAM pour le compartiment et le rôle que vous avez créés lors des étapes précédentes.

  5. Cliquez sur Créer .

  6. Lorsque vous y êtes invité, sélectionnez les Workspaces à Link au métastore.

    Pour plus de détails, consultez Activer un workspace pour Unity Catalog.

  7. Transférez le rôle d’administrateur du métastore à un groupe.

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

  8. Activer la gestion Databricks des upload vers les volumes gérés.

    Databricks utilise le partage de ressources inter-origines (CORS) pour upload des données dans des volumes gérés dans Unity Catalog.

    Si, au lieu d'utiliser les instructions qui suivent, vous souhaitez utiliser un Template AWS CloudFormation, sachez que CloudFormation utilise certains noms de propriétés qui diffèrent de ceux listés dans ces instructions. Utilisez les instructions de configuration CORS dans la référence AWS CloudFormation pour obtenir les noms de propriétés corrects.

    1. Utilisez la console AWS pour sélectionner votre compartiment dans la liste des compartiments.

    2. Sélectionner les autorisations .

    3. Sélectionnez **Modifier** sous **Partage de ressources inter-origines (CORS)**.

    4. Copiez la configuration JSON suivante dans la zone de texte :

      JSON
      [
      {
      "AllowedHeaders": [],
      "AllowedMethods": ["PUT"],
      "AllowedOrigins": ["https://*.databricks.com"],
      "ExposeHeaders": [],
      "MaxAgeSeconds": 1800
      }
      ]
    5. Sélectionnez Enregistrer les modifications .

Étapes suivantes