Règles de chemin d'accès et accès dans les volumes Unity Catalog
Cette page explique les restrictions concernant les chevauchements de chemins dans Unity Catalog, détaille les modèles d'accès basés sur les chemins pour les fichiers de données dans les objets Unity Catalog et décrit comment Unity Catalog gère les chemins pour les tables et les volumes.
Restrictions de chevauchement de chemins dans Unity Catalog
Unity Catalog assure la gouvernance des données en empêchant le chevauchement des répertoires gérés de données. Unity Catalog applique les règles suivantes :
- Les emplacements externes ne peuvent pas se chevaucher avec d'autres emplacements externes.
- Les tables et les volumes stockent les fichiers de données dans des emplacements externes ou l'emplacement racine du metastore.
- Les volumes ne peuvent pas se chevaucher d'autres volumes.
- Les tables ne peuvent pas chevaucher d'autres tables.
- Les tables et les volumes ne peuvent pas se chevaucher.
- Les emplacements de stockage gérés ne peuvent pas se chevaucher. Voir Spécifier un emplacement de stockage géré dans Unity Catalog.
- Les volumes externes ne peuvent pas chevaucher les emplacements de stockage gérés.
- Les tables externes ne peuvent pas chevaucher les emplacements de stockage gérés.
Ces règles signifient que les restrictions suivantes existent dans Unity Catalog :
- Vous ne pouvez pas définir un emplacement externe dans un autre emplacement externe.
- Vous ne pouvez pas définir un volume au sein d'un autre volume.
- Vous ne pouvez pas définir une table dans une autre table.
- Vous ne pouvez pas définir une table sur des fichiers de données ou des répertoires au sein d'un volume.
- Vous ne pouvez pas définir de volume sur un répertoire au sein d'une table.
Vous pouvez toujours utiliser l'accès basé sur le chemin pour écrire ou lire des fichiers de données à partir de volumes, y compris Delta Lake. Vous ne pouvez pas enregistrer ces fichiers de données en tant que tables dans le métastore Unity Catalog.
Chemins entièrement managés pour les tables et les volumes
Lorsque vous créez une table ou un volume géré, Unity Catalog crée un nouveau répertoire dans l'emplacement de stockage configuré par Unity Catalog et associé au schéma conteneur. Le nom de ce répertoire est généré aléatoirement pour éviter toute collision potentielle avec d’autres répertoires déjà présents. Ce comportement diffère de la manière dont Hive metastore crée les tables gérées.
L'accès basé sur le chemin d'accès aux tables gérées par Unity Catalog n'est pas pris en charge. Interagissez toujours avec les tables gérées par Unity Catalog en utilisant les noms de table et les volumes gérés par Unity Catalog en utilisant les chemins d'accès aux volumes.
Chemins d'emplacements externes pour les tables et les volumes
Lorsque vous créez une table ou un volume externe, vous spécifiez un chemin d’accès au sein d’un emplacement externe régi par Unity Catalog.
Pour éviter les conflits de chemin, Databricks recommande de créer des tables et des volumes externes dans des sous-répertoires plutôt qu'à la racine d'un emplacement externe.
Pour faciliter l’utilisation, interagissez avec les tables externes Unity Catalog en utilisant les noms de table, et les volumes externes en utilisant les chemins de volume. Les utilisateurs disposant de privilèges suffisants peuvent également accéder aux données directement en utilisant le chemin d’accès complet du stockage cloud.
L'accès aux données via les URIs cloud pour ces objets est entièrement régi par les privilèges Unity Catalog, qui remplacent tous les privilèges sur l'emplacement externe lui-même. Consultez les restrictions de chevauchement de chemin dans Unity Catalog et la référence des privilèges Unity Catalog.
Accéder aux données dans Unity Catalog
Les objets Unity Catalog donnent accès aux données par le biais d'identifiants d'objets, de chemins de volume ou d'URI cloud. Vous pouvez utiliser ces valeurs pour accéder aux données associées aux volumes et aux tables.
Les tables Unity Catalog sont accessibles à l'aide d'un identifiant à trois niveaux selon le modèle suivant :
<catalog_name>.<schema_name>.<table_name>
Chemins d'accès aux fichiers de volume dans Unity Catalog
Les volumes fournissent un chemin de fichier pour accéder aux fichiers de données avec le modèle suivant :
/Volumes/<catalog_name>/<schema_name>/<volume_name>/<path_to_file>
Les URI cloud exigent que les utilisateurs fournissent le Driver, l'identifiant du conteneur de stockage et le chemin complet vers les fichiers cibles, comme dans l'exemple suivant :
s3://<bucket_name>/<path>
Le tableau suivant présente les méthodes d'accès autorisées pour les objets Unity Catalog :
Objet | Identifiant d'objet | Chemin d'accès au fichier | URI de cloud |
|---|---|---|---|
Emplacement externe | Non | Non | Oui |
Table gérée | Oui | Non | Non |
Table externe | Oui | Non | Oui |
Volume géré | Non | Oui | Non |
Volume externe | Non | Oui | Oui |
Les volumes Unity Catalog utilisent des identifiants d'objet à trois niveaux avec le modèle suivant pour les commandes de gestion (telles que CREATE VOLUME et DROP VOLUME) :
<catalog_name>.<schema_name>.<volume_name>
Pour travailler réellement avec des fichiers dans des volumes, vous devez utiliser l'accès par chemin d'accès.