Créer et gérer des catalogues
Cet article montre comment créer et gérer des catalogues dans Unity Catalog. Un catalogue contient des schémas (bases de données), et un schéma contient des tables, des vues, des volumes, des modèles et des fonctions.
Remarque
Dans les espaces de travail activés automatiquement pour le catalogue Unity, un catalogue d’espaces de travail a été créé par défaut. Tous les utilisateurs de votre espace de travail (et uniquement de votre espace de travail) y ont accès par défaut. Consultez étape 1 : vérifiez que votre espace de travail est activé pour le catalogue Unity.
Remarque
Pour savoir comment créer un catalogue étranger, un objet Unity Catalog qui reflète une base de données dans un système de données externe, consultez Créer un catalogue étranger. Voir aussi Gérer et utiliser des catalogues étrangers.
Spécifications
Pour créer un catalogue :
Vous devez être administrateur de metastore Azure Databricks ou disposer du privilège
CREATE CATALOG
sur le metastore.Vous devez disposer d’un metastore Unity Catalog lié à l’espace de travail où vous effectuez la création du catalogue.
Le cluster que vous utilisez pour exécuter un notebook afin de créer un catalogue doit utiliser un mode d’accès conforme à Unity Catalog. Voir Modes d’accès aux fichiers.
Les entrepôts SQL prennent toujours en charge Unity Catalog.
Créer un catalogue
Pour créer un catalogue, vous pouvez utiliser Catalog Explorer ou une commande SQL.
Catalog Explorer
Connectez-vous à un espace de travail lié au metastore.
Cliquez sur Catalogue.
Cliquez sur le bouton Créer un catalogue.
Sélectionnez le type de catalogue que vous souhaitez créer :
- Catalogue standard : objet sécurisable qui organise les ressources de données gérées par Unity Catalog. Pour tous les cas d’usage à l’exception de Lakehouse Federation.
- Catalogue étranger est un objet sécurisable dans le catalogue Unity qui reflète une base de données dans un système de données externe avec Lakehouse Federation. Consultez Vue d’ensemble de la configuration de Lakehouse Federation.
(Facultatif mais fortement recommandé) Spécifiez un emplacement de stockage managé. Nécessite le privilège
CREATE MANAGED STORAGE
sur l’emplacement externe. Consultez Spécifier un emplacement de stockage managé dans Unity Catalog.Important
Si votre espace de travail n’a pas d’emplacement de stockage au niveau du metastore, vous devez spécifier un emplacement de stockage managé lorsque vous créez un catalogue.
Cliquez sur Créer.
(Facultatif) Spécifiez l’espace de travail auquel le catalogue est lié.
Par défaut, le catalogue est partagé avec tous les espaces de travail attachés au metastore actuel. Si le catalogue contient des données qui doivent être limitées à des espaces de travail spécifiques, accédez à l’onglet Espaces de travail et ajoutez ces espaces de travail.
Pour plus d’informations, consultez (Facultatif) Affecter un catalogue à des espaces de travail spécifiques.
Attribuez des autorisations pour votre catalogue. Consultez Privilèges Unity Catalog et objets sécurisables.
SQL
Exécutez la commande SQL suivante dans un notebook ou dans l’éditeur Databricks SQL. Les éléments entre crochets sont optionnels. Remplacez les valeurs d’espace réservé :
<catalog-name>
: Nom du catalogue.<location-path>
: facultatif mais fortement recommandé. Fournissez un chemin d’accès d’emplacement de stockage si vous souhaitez que les tables managées de ce catalogue soient stockées à un emplacement différent du stockage racine par défaut configuré pour le metastore.Important
Si votre espace de travail n’a pas d’emplacement de stockage au niveau du metastore, vous devez spécifier un emplacement de stockage managé lorsque vous créez un catalogue.
Ce chemin doit être défini dans une configuration d’emplacement externe et vous devez disposer du privilège
CREATE MANAGED STORAGE
sur la configuration d’emplacement externe. Vous pouvez utiliser le chemin défini dans la configuration de l’emplacement externe ou un sous-chemin (en d’autres termes,'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance'
ou'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance/product'
). Nécessite Databricks Runtime 11.3 ou version ultérieure.<comment>
: description facultative ou autre commentaire.
Remarque
Si vous créez un catalogue étranger (objet sécurisable dans le catalogue Unity qui met en miroir une base de données dans un système de données externe, utilisé pour la fédération Lakehouse), la commande SQL est
CREATE FOREIGN CATALOG
et les options sont différentes. Voir Créer un catalogue étranger.CREATE CATALOG [ IF NOT EXISTS ] <catalog-name> [ MANAGED LOCATION '<location-path>' ] [ COMMENT <comment> ];
Par exemple, pour créer un catalogue nommé
example
:CREATE CATALOG IF NOT EXISTS example;
Si vous souhaitez limiter l’accès au catalogue à des espaces de travail spécifiques dans votre compte (liaison espace de travail-catalogue), consultez la section Lier un catalogue à un ou plusieurs espaces de travail.
Pour obtenir les descriptions des paramètres, consultez CREATE CATALOG.
Attribuez des privilèges au catalogue. Consultez Privilèges Unity Catalog et objets sécurisables.
Quand vous créez un catalogue, deux schémas (bases de données) sont créés automatiquement : default
et information_schema
.
Vous pouvez également créer un schéma à l’aide du fournisseur Databricks Terraform et databricks_schema. Vous pouvez récupérer des informations sur les catalogues à l’aide de databricks_catalogs.
(Facultatif) Affecter un catalogue à des espaces de travail spécifiques
Si vous utilisez des espaces de travail pour isoler l’accès aux données utilisateur, vous pouvez limiter l’accès au catalogue à des espaces de travail spécifiques dans votre compte, également appelés liaison espace de travail-catalogue. La valeur par défaut consiste à partager le catalogue avec tous les espaces de travail attachés au metastore actuel.
Vous pouvez soit autoriser l’accès en lecture et en écriture au catalogue à partir d’un espace de travail (par défaut), soit spécifier un accès en lecture seule. Si vous spécifiez un accès en lecture seule, toutes les opérations d’écriture sont bloquées de l’espace de travail vers le catalogue.
Les cas d’usage classiques pour lier un catalogue à des espaces de travail spécifiques sont les suivants :
- S’assurer que les utilisateurs peuvent accéder uniquement aux données de production à partir d’un environnement d’espace de travail de production.
- S’assurer que les utilisateurs peuvent traiter uniquement les données sensibles à partir d’un espace de travail dédié.
- Permettre aux utilisateurs d’accéder en lecture seule aux données de production à partir d’un espace de travail « développeur » pour effectuer des tâches de développement et des tests.
Remarque
Vous pouvez également lier des emplacements externes et des informations d’identification de stockage à des espaces de travail spécifiques, limitant ainsi la capacité à accéder aux données dans des emplacements externes aux utilisateurs privilégiés de ces espaces de travail. Voir (Facultatif) Affecter un emplacement externe à des espaces de travail spécifiques et (Facultatif) Affecter des informations d’identification de stockage à des espaces de travail spécifiques.
Exemple de liaison espace de travail-catalogue
Prenons l’exemple de l’isolation de la production et du développement. Si vous spécifiez que vos catalogues de données de production ne sont accessibles qu’à partir d’espaces de travail de production, cela remplace les subventions individuelles accordées aux utilisateurs.
Dans ce diagramme, prod_catalog
est lié à deux espaces de travail de production. Supposons qu’un utilisateur a obtenu l’accès à une table dans prod_catalog
appelée my_table
(à l’aide de GRANT SELECT ON my_table TO <user>
). Si l’utilisateur tente d’accéder my_table
dans l’espace de travail Dev, il reçoit un message d’erreur. L’utilisateur peut accéder uniquement à my_table
partir des espaces de travail Prod ETL et Prod Analytics.
Les liaisons de catalogue d’espace de travail sont respectées dans toutes les zones de la plateforme. Par exemple, si vous interrogez le schéma d’informations, vous voyez uniquement les catalogues accessibles dans l’espace de travail où vous émettez la requête. La traçabilité des données et les interfaces utilisateur de recherche affichent également uniquement les catalogues affectés à l’espace de travail (que ce soit à l’aide de liaisons ou par défaut).
Lier un catalogue à un ou plusieurs espaces de travail
Pour affecter un catalogue à des espaces de travail spécifiques, vous pouvez utiliser Catalog Explorer ou l’API REST Unity Catalog.
Autorisations requises : administrateur de metastore ou propriétaire des objets partage.
Remarque
Les administrateurs de metastore peuvent voir tous les catalogues d’un metastore à l’aide de Catalog Explorer, et les propriétaires de catalogues peuvent voir tous les catalogues qu’ils possèdent dans un metastore, que le catalogue soit ou non affecté à l’espace de travail actuel. Les catalogues qui ne sont pas affectés à l’espace de travail apparaissent grisés, et aucun objet enfant n’est visible ou interrogeable.
Explorateur de catalogues
Connectez-vous à un espace de travail lié au metastore.
Cliquez sur Catalogue.
Dans le volet Catalogue, à gauche, cliquez sur le nom du catalogue.
Le volet principal de Catalog Explorer est défini par défaut sur la liste Catalogs. Vous pouvez également sélectionner le catalogue.
Sous l’onglet Espaces de travail , désactivez la case à cocher Tous les espaces de travail ont accès .
Si votre catalogue est déjà lié à un ou plusieurs espaces de travail, cette case à cocher est déjà désactivée.
Cliquez sur Affecter à des espaces de travail, puis entrez ou recherchez les espaces de travail que vous souhaitez attribuer.
(Facultatif) Spécifiez un accès en lecture seule à l’espace de travail.
Dans le menu Gérer le niveau d’accès, sélectionnez Changer l’accès en lecture seule.
Vous pouvez annuler cette sélection à tout moment en modifiant le catalogue et en sélectionnant Modifier l’accès en lecture et en écriture.
Pour révoquer l’accès, accédez à l’onglet Espaces de travail, sélectionnez l’espace de travail, puis cliquez sur Révoquer.
API
Il existe deux API et deux étapes requises pour affecter un catalogue à un espace de travail. Dans les exemples suivants, remplacez par <workspace-url>
le nom instance de votre espace de travail. Pour savoir comment obtenir le nom de l’instance et l’ID de l’espace de travail, consultez Obtenir des identificateurs pour les objets de l’espace de travail. Pour en savoir plus sur l’obtention de jetons d’accès, consultez Authentification pour l’automatisation Azure Databricks : vue d’ensemble.
Utilisez
catalogs
l’API pour définir le catalogue deisolation mode
àISOLATED
:curl -L -X PATCH 'https://<workspace-url>/api/2.1/unity-catalog/catalogs/<my-catalog> \ -H 'Authorization: Bearer <my-token> \ -H 'Content-Type: application/json' \ --data-raw '{ "isolation_mode": "ISOLATED" }'
La valeur par défaut
isolation mode
concerneOPEN
tous les espaces de travail attachés au metastore.Utilisez l’API
bindings
de mise à jour pour affecter les espaces de travail au catalogue :curl -L -X PATCH 'https://<workspace-url>/api/2.1/unity-catalog/bindings/catalog/<my-catalog> \ -H 'Authorization: Bearer <my-token> \ -H 'Content-Type: application/json' \ --data-raw '{ "add": [{"workspace_id": <workspace-id>, "binding_type": <binding-type>}...], "remove": [{"workspace_id": <workspace-id>, "binding_type": "<binding-type>}...] }'
Utilisez les propriétés
"add"
et"remove"
pour ajouter ou supprimer des liaisons d’espace de travail.<binding-type>
peut avoir la valeur“BINDING_TYPE_READ_WRITE”
(par défaut) ou“BINDING_TYPE_READ_ONLY”
.
Pour répertorier toutes les affectations d’espace de travail pour un catalogue, utilisez l’API bindings
de liste :
curl -L -X GET 'https://<workspace-url>/api/2.1/unity-catalog/bindings/catalog/<my-catalog> \
-H 'Authorization: Bearer <my-token> \
Dissocier un catalogue d’un espace de travail
Les instructions pour révoquer l’accès à un espace de travail à un catalogue à l’aide de Catalog Explorer ou de l’API bindings
sont fournies dans Lier un catalogue à un ou plusieurs espaces de travail.
Important
Si votre espace de travail a été activé automatiquement pour le catalogue Unity et que vous disposez automatiquement d’un catalogue d’espaces de travail, les administrateurs de l’espace de travail possèdent ce catalogue et disposent de toutes les autorisations sur ce catalogue dans l’espace de travail uniquement. Si vous dissociez ce catalogue ou le liez à d’autres catalogues, vous devez accorder manuellement les autorisations requises aux membres du groupe d’administrateurs d’espace de travail en tant qu’utilisateurs individuels ou à l’aide de groupes au niveau du compte, car le groupe d’administrateurs d’espace de travail est un groupe local d’espace de travail. Pour plus d’informations sur les groupes de comptes et les groupes locaux à l’espace de travail, consultez la section Différence entre les groupes de comptes et les groupes locaux d’espace de travail.
Ajouter des schémas à votre catalogue
Pour savoir comment ajouter des schémas (bases de données) à votre catalogue, consultez l’article Créer et gérer des schémas (bases de données).
Consulter les détails du catalogue
Pour consulter les informations sur un catalogue, vous pouvez utiliser Catalog Explorer ou une commande SQL.
Catalog Explorer
Connectez-vous à un espace de travail lié au metastore.
Cliquez sur Catalogue.
Dans le volet Catalogue, recherchez le catalogue et cliquez sur son nom.
Certains détails sont répertoriés en haut de la page. D’autres peuvent être affichés sous les ongletsSchémas, Détails, Autorisations et Espaces de travail.
SQL
Exécutez la commande SQL suivante dans un notebook ou dans l’éditeur Databricks SQL. Les éléments entre crochets sont optionnels. Remplacez l’espace réservé <catalog-name>
.
Pour plus de détails, consultez DÉCRIRE LE CATALOGUE.
DESCRIBE CATALOG <catalog-name>;
Utilisez CATALOG EXTENDED
pour obtenir tous les détails.
Supprimer un catalogue
Pour supprimer un catalogue, vous pouvez utiliser Catalog Explorer ou une commande SQL. Pour supprimer un catalogue, vous devez en être le propriétaire.
Explorateur de catalogues
Vous devez supprimer tous les schémas du catalogue, sauf information_schema
, avant de pouvoir supprimer un catalogue. Ceci inclut le schéma default
créé automatiquement.
- Connectez-vous à un espace de travail lié au metastore.
- Cliquez sur Catalogue.
- Dans le volet Catalogue, à gauche, cliquez sur le catalogue à supprimer.
- Dans le volet des détails, cliquez sur le menu à trois points à gauche du bouton Créer une base de données, puis sélectionnez Supprimer.
- Dans la boîte de dialogue Supprimer le catalogue, cliquez sur Supprimer.
SQL
Exécutez la commande SQL suivante dans un notebook ou dans l’éditeur Databricks SQL. Les éléments entre crochets sont optionnels. Remplacez l’espace réservé <catalog-name>
.
Pour obtenir les descriptions des paramètres, consultez DROP CATALOG.
Si vous utilisez DROP CATALOG
sans l’option CASCADE
, vous devez supprimer tous les schémas du catalogue, sauf information_schema
, avant de pouvoir supprimer le catalogue. Ceci inclut le schéma default
créé automatiquement.
DROP CATALOG [ IF EXISTS ] <catalog-name> [ RESTRICT | CASCADE ]
Par exemple, pour supprimer un catalogue nommé vaccine
et ses schémas :
DROP CATALOG vaccine CASCADE
Gérer le catalogue par défaut
Un catalogue par défaut est configuré dans chaque espace de travail dans lequel Unity Catalog est activé. Le catalogue par défaut vous permet d’effectuer des opérations de données sans spécifier de catalogue. Si vous omettez le nom du catalogue de premier niveau quand vous effectuez des opérations de données, le catalogue par défaut est utilisé.
Un administrateur d’espace de travail peut afficher ou changer le catalogue par défaut à l’aide de l’interface utilisateur des paramètres d’administration. Vous pouvez également définir le catalogue par défaut d’un cluster à l’aide d’une configuration Spark.
Les commandes qui ne spécifient pas le catalogue (par exemple, GRANT CREATE TABLE ON SCHEMA myschema TO mygroup
) sont évaluées pour le catalogue dans l’ordre suivant :
- Le catalogue est-il défini pour la session à l’aide d’une instruction
USE CATALOG
ou d’un paramètre JDBC ? - La configuration Spark
spark.databricks.sql.initial.catalog.namespace
est-elle définie sur le cluster ? - Existe-t-il un catalogue par défaut d’espace de travail défini pour le cluster ?
Configuration du catalogue par défaut quand Unity Catalog est activé
Le catalogue par défaut initialement configuré dans votre espace de travail dépend de la façon dont votre espace de travail a été activé pour Unity Catalog :
- Pour certains espaces de travail activés automatiquement pour le catalogue Unity, le catalogue d’espaces de travail a été défini comme catalogue par défaut. Consultez Activation automatique de Unity Catalog.
- Pour tous les autres espaces de travail, le catalogue
hive_metastore
a été défini comme catalogue par défaut.
Si vous passez du metastore Hive à Unity Catalog au sein d’un espace de travail existant, il est généralement judicieux d’utiliser hive_metastore
comme catalogue par défaut pour éviter d’impacter le code existant qui fait référence au metastore Hive.
Modifier le catalogue par défaut
Un administrateur d’espace de travail peut modifier le catalogue par défaut pour l’espace de travail. Toute personne autorisée à créer ou à modifier un cluster peut définir un autre catalogue par défaut pour le cluster.
Avertissement
La modification du catalogue par défaut peut interrompre les opérations de données existantes qui en dépendent.
Pour configurer un autre catalogue par défaut pour un espace de travail :
- Connectez-vous à votre espace de travail en tant qu’administrateur d’espace de travail.
- Cliquez sur votre nom d’utilisateur dans la barre supérieure de l’espace de travail, puis sélectionnez Paramètres dans la liste déroulante.
- Cliquez sur l’onglet Avancé.
- Dans la ligne Catalogue par défaut de l’espace de travail, entrez le nom du catalogue, puis cliquez sur Enregistrer.
Redémarrez vos entrepôts et clusters SQL pour que la modification apportée prenne effet. Tous les entrepôts et clusters SQL, après création ou redémarrage, utilisent ce catalogue comme espace de travail par défaut.
Vous pouvez également remplacer le catalogue par défaut d’un cluster spécifique en définissant la configuration Spark suivante sur le cluster. Cette approche n’est pas disponible pour les entrepôts SQL :
spark.databricks.sql.initial.catalog.name
Pour obtenir des instructions, consultez Configuration de Spark.
Consulter le catalogue par défaut actuel
Pour obtenir le catalogue par défaut actuel pour votre espace de travail, vous pouvez utiliser une instruction SQL dans un notebook ou une requête de l’éditeur SQL. Un administrateur d’espace de travail peut obtenir le catalogue par défaut à l’aide de l’interface utilisateur des paramètres d’administration.
Paramètres d’administration
- Connectez-vous à votre espace de travail en tant qu’administrateur d’espace de travail.
- Cliquez sur votre nom d’utilisateur dans la barre supérieure de l’espace de travail, puis sélectionnez Paramètres dans la liste déroulante.
- Cliquez sur l’onglet Avancé.
- Dans la ligne Catalogue par défaut de l’espace de travail, consultez le nom du catalogue.
Sql
Exécutez la commande suivante dans un notebook ou une requête de l’éditeur SQL qui s’exécute sur un entrepôt SQL ou un cluster conforme à Unity Catalog. Le catalogue par défaut de l’espace de travail est retourné si aucune instruction USE CATALOG
ou aucun paramètre JDBC n’a été défini sur la session, et si aucune configuration spark.databricks.sql.initial.catalog.namespace
n’est définie pour le cluster.
SELECT current_catalog();
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour