Que sont les catalogues dans Databricks ?
Un catalogue est l'unité principale d'organisation des données dans le modèle de gouvernance des données de Databricks Unity Catalog. Cet article donne une vue d'ensemble des catalogues dans Unity Catalog et la meilleure façon de les utiliser.
Les catalogues sont la première couche de l'espace de noms à trois niveaux de Unity Catalog (catalog.schema.table-etc). Ils contiennent des schémas qui, à leur tour, peuvent contenir des tables, des vues, des volumes, des modèles et des fonctions. Les catalogues sont enregistrés dans un métastore Unity Catalog de votre compte Databricks.

Comment dois-je organiser mes données en catalogues ?
Lorsque vous concevez votre modèle de gouvernance des données, vous devez accorder une attention particulière aux catalogues que vous créez. En tant que niveau le plus élevé dans le modèle de gouvernance des données de votre organisation, chaque catalogue doit représenter une unité logique d'isolation des données et une catégorie logique d'accès aux données, permettant à une hiérarchie efficace de privilèges de se propager aux schémas et aux objets de données qu'ils contiennent. Les catalogues reflètent donc souvent les unités organisationnelles ou les portées du cycle de vie de développement de logiciel. Vous pouvez choisir, par exemple, d'avoir un catalogue pour les données de production et un catalogue pour les données de développement, ou un catalogue pour les données non-client et un autre pour les données client sensibles.
Isolation des données à l'aide de catalogues
Chaque catalogue dispose généralement de son propre emplacement de stockage géré pour stocker les tables et volumes gérés, ce qui assure l'isolation physique des données au niveau du catalogue. Vous pouvez également choisir de stocker les données au niveau du métastore, en fournissant un emplacement de stockage default pour les catalogues qui n'ont pas leur propre emplacement de stockage géré. Vous pouvez ajouter du stockage au niveau du schéma pour une isolation des données plus granulaire.
Puisque votre compte Databricks a un métastore par région, les catalogues sont intrinsèquement isolés par région.
Pour plus d'informations, consultez Que sont les objets de base de données dans Databricks ? et Catalogues et schémas.
Privilèges au niveau du catalogue
Parce que les octrois sur tout objet Unity Catalog sont hérités par les enfants de cet objet, posséder un catalogue ou avoir de larges privilèges sur un catalogue est très puissant. Par exemple, les propriétaires de catalogues ont tous les privilèges sur le catalogue et les objets du catalogue, et ils peuvent accorder l'accès à n'importe quel objet du catalogue. Les utilisateurs disposant de SELECT sur un catalogue peuvent lire n'importe quelle table du catalogue. Les utilisateurs disposant de CREATE TABLE sur un catalogue peuvent créer une table dans n'importe quel schéma du catalogue.
Pour appliquer le principe du moindre privilège, selon lequel les utilisateurs disposent de l'accès minimal nécessaire pour exécuter les tâches requises, vous accordez généralement l'accès uniquement aux objets spécifiques ou au niveau de la hiérarchie que l'utilisateur exige. Mais les privilèges au niveau du catalogue permettent au propriétaire du catalogue de gérer ce que les propriétaires d'objets de niveau inférieur peuvent accorder. Même si un utilisateur dispose d'un accès accordé à un objet de données de bas niveau, tel qu'une table par exemple, cet utilisateur ne peut pas accéder à cette table à moins de posséder également le privilège USE CATALOG sur le catalogue qui contient la table.
Pour plus d'informations, consultez Gérer la propriété des objets et Référence détaillée des privilèges Unity Catalog.
Types de catalogue
Lorsque vous créez un catalogue, vous avez deux options :
- Catalogue standard : le catalogue typique, utilisé comme l'unité principale pour organiser vos objets de données dans Unity Catalog. Il s'agit du type de catalogue dont il est question dans cet article.
- Catalogue étranger : un objet Unity Catalog qui n'est utilisé que dans les scénarios de Lakehouse Federation . Un catalogue étranger reflète une base de données dans un système de données externe, vous permettant d'effectuer des requêtes en lecture seule sur ce système de données dans votre Databricks Workspace. Voir Se connecter aux bases de données et aux catalogues externes.
En plus de ces deux types de catalogues, Databricks provisionne automatiquement les catalogues suivants lorsque vous créez un nouveau Workspace :
- Catalogue
hive_metastore: Il s'agit du repository de toutes les données gérées par le Hive metastore hérité dans les Databricks Workspaces. Lorsqu'un Workspace non-Unity Catalog existant est converti en Unity Catalog, tous les objets enregistrés dans le Hive metastore hérité sont affichés dans Unity Catalog dans le cataloguehive_metastore. Pour des informations sur l'utilisation du Hive metastore avec Unity Catalog, consultez Utiliser le Hive metastore hérité avec Unity Catalog. Le Hive metastore est obsolète, et tous les Workspaces Databricks devraient migrer vers Unity Catalog. - Catalogue Workspace : dans tous les nouveaux workspaces, ce catalogue est créé pour vous par default. Généralement, il partage son nom avec le nom de votre workspace. Si ce catalogue existe, tous les utilisateurs de votre workspace (et seulement votre workspace) y ont accès par default, ce qui en fait un endroit pratique pour les utilisateurs pour essayer le processus de création et d'accès aux objets de données dans Unity Catalog. Consultez Étape 1 : Confirmer que votre workspace est activé pour Unity Catalog.
Le catalogue __databricks_internal
Databricks crée automatiquement un catalogue appelé __databricks_internal pour stocker l'état interne des fonctionnalités telles que les LakeFlow Pipelines et les tableaux de bord AI/BI. Par exemple, les LakeFlow Pipelines utilisent ce catalogue pour stocker les données sous-jacentes de certaines vues matérialisées.
Vous pourriez voir __databricks_internal dans les interfaces Unity Catalog telles que Catalog Explorer, les boîtes de dialogue de permissions, les messages d'erreur et les tables système. C'est attendu. Le nom __databricks_internal est réservé : seul Databricks crée ces assets, et vous ne pouvez pas les créer directement.
Ne pas interroger, modifier ou supprimer des objets dans le catalogue __databricks_internal. Gérez les données sous-jacentes par le biais de la fonctionnalité qui les a créées, telle que le pipeline ou le tableau de bord.
default catalog
Un catalogue default est configuré pour chaque Workspace compatible avec Unity Catalog. Le catalogue default vous permet d’effectuer des Opérations de données sans spécifier de catalogue. Si vous omettez le nom du catalogue de niveau supérieur lorsque vous effectuez des Opérations de données, le catalogue default est assumé.
Si votre Workspace a été activé pour Unity Catalog automatiquement, le catalogue de Workspace pré-provisionné est spécifié comme catalogue par default. Un administrateur de Workspace peut modifier le catalogue par default si nécessaire.
Pour plus de détails, consultez Gérer le catalogue default.
Liaison Workspace-catalogue
Si vous utilisez des workspaces pour isoler l’accès aux données des utilisateurs, vous pourriez vouloir utiliser des liaisons entre le workspace et le catalogue. Les liaisons workspace-catalogue vous permettent de limiter l'accès au catalogue par les limites du workspace. Par exemple, vous pouvez vous assurer que les administrateurs et les utilisateurs de workspace ne peuvent accéder aux données de production dans prod_catalog qu’à partir d’un environnement de workspace de production, prod_workspace. Les catalogues sont partagés avec tous les workspaces attachés au métastore actuel, sauf si vous spécifiez une liaison. Voir Liaison workspace-catalogue.
Si votre Workspace a été activé automatiquement pour Unity Catalog, le catalogue Workspace préprovisionné est associé à votre Workspace par default.