Créer un métastore Unity Catalog
Cette page explique comment créer un métastore Unity Catalog et le Link à des workspaces.
Pour les workspaces pour lesquels Unity Catalog a été activé automatiquement, les instructions de cette page sont superflues. Databricks a commencé à activer automatiquement de nouveaux Workspaces pour Unity Catalog le 6 mars 2024, 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 :
-
Dans votre compte GCP, créez éventuellement un emplacement de stockage pour le stockage au niveau du métastore 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.
-
Dans Databricks, créez le métastore. Databricks génère un compte de service.
-
Donnez au compte de service l'accès à votre compartiment GCS et attribuez des Workspace au métastore.
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.
- Si vous souhaitez configurer le stockage racine au niveau du metastore, vous devez disposer des autorisations pour créer des buckets GCS et attribuer des autorisations à ces buckets GCS dans votre compte Google Cloud.
Étape 1 (Facultatif) : Créez le compartiment GCS.
Dans cette étape, qui est facultative, vous créez un compartiment GCS pour stocker les données de tables et de volumes gérés au niveau du metastore. 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.
-
Configurez un compartiment GCS dans Google Cloud.
Le bucket de stockage est l'emplacement où les données des tables gérées seront stockées pour ce métastore. Toutes les tables gérées seront stockées dans ce bucket, sauf si vous remplacez l'emplacement de stockage au niveau du catalogue ou du schéma.
Lorsque vous créez le compartiment :
- Créez-le dans la même région que les workspaces que vous utiliserez pour accéder aux données.
- Utilisez un compartiment GCS dédié pour chaque métastore que vous créez.
- N'autorisez pas l'accès direct des utilisateurs au compartiment.
-
Notez le chemin du compartiment (
gs://bucket-name).
Étape 2 : Créez le métastore et générez éventuellement un compte de service
Pour créer un métastore :
-
Connectez-vous à la console de compte Databricks.
-
Cliquez sur
le Catalogue .
-
Cliquez sur Créer un metastore .
-
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 GCS que vous avez créé précédemment.
-
(Facultatif) Le chemin d'accès au compartiment GCS que vous avez créé dans la tâche précédente.
-
-
Cliquez sur Créer .
Si vous avez fourni un chemin d'accès à un bucket GCS à l'étape précédente, la boîte de dialogue **Fournir un accès au stockage** s'affiche. Il affiche le **nom du compte de service** généré par le système et vous demande d'accorder à ce compte de service deux rôles IAM pour le bucket GCS. Gardez cette boîte de dialogue ouverte lorsque vous passez à la tâche suivante. Cette tâche n'est requise que si vous souhaitez activer le stockage au niveau du métastore.
Si vous n'avez pas fourni de chemin vers un compartiment GCS, vous êtes invité à attribuer des workspaces au métastore. Consultez l'étape 4 : Attribuer des Workspace au métastore ou Activer un Workspace pour Unity Catalog.
Étape 3 (facultatif) : Donnez au compte de service l'accès à votre bucket GCS
Dans cette étape, qui n’est requise que si vous avez terminé l’étape 1, donnez l’accès du compte de service généré par le système à votre compartiment de stockage :
-
Dans un autre tab ou une autre fenêtre de navigateur, accédez à la console Google Cloud et ouvrez le compartiment GCS que vous avez fourni à l'étape précédente.
-
Sur l'onglet Permission tab , cliquez sur + Accorder l'accès et attribuez au compte de service les rôles suivants :
- Lecteur de compartiment de stockage ancienne génération
- Administrateur d'objet de stockage
Utilisez l'adresse e-mail du compte de service comme identifiant principal.
-
Retournez à la boîte de dialogue Fournir l'accès au stockage dans la console de compte Databricks et cliquez sur Autorisations accordées .
Databricks valide que le compte de service dispose de l'accès correct au compartiment.
-
Lorsque la validation est réussie, vous pouvez sélectionner les workspaces à attribuer au métastore.
Pour savoir comment attribuer des Workspace à des metastores, consultez la section suivante ou Activez un Workspace pour Unity Catalog.
Étape 4 : Attribuer des Workspace au métastore
Dans le cadre de l'Étape 2 : Créer le metastore et générer éventuellement un compte de service, vous êtes invité à attribuer des workspaces au metastore. Si vous avez ignoré cette étape ou devez ajouter d'autres workspaces, procédez comme suit :
- En tant qu'administrateur de compte, connectez-vous à la console du compte.
- Cliquez sur
le Catalogue .
- Cliquez sur le nom du métastore.
- Cliquez sur l'onglet **Workspaces**.
- Cliquez sur Attribuer aux Workspace .
- Sélectionnez un ou plusieurs workspaces. Vous pouvez saisir une partie du nom du workspace pour filtrer la liste.
- Faites défiler jusqu'en bas de la boîte de dialogue et cliquez sur Attribuer .
- Dans la boîte de dialogue de confirmation, cliquez sur Activer .
Étape 5 : Transférer le rôle d'administrateur de metastore à 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.
Étape 6 : 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.
-
Créez un fichier JSON avec la configuration suivante :
JSON[
{
"origin": ["https://*.gcp.databricks.com"],
"method": ["GET"],
"responseHeader": ["Content-Type"],
"maxAgeSeconds": 3600
}
] -
À l'aide de la CLI gcloud, exécutez la commande
storage buckets updateavec l'indicateur--cors-file:gcloud storage buckets update gs://<bucket-name> --cors-file=<cors-config-file>Où :
<bucket-name>est le nom de votre compartiment. Par exemple,my-bucket.<cors-config-file>est le chemin d'accès au fichier JSON que vous avez créé à l'Étape 1.
Pour plus d'informations, consultez la documentation Google Cloud.