Aller au contenu principal

Spécifier un emplacement de stockage géré dans Unity Catalog

Un emplacement de stockage géré spécifie un emplacement dans le stockage objet cloud pour le stockage des données des tables gérées et des volumes gérés.

Vous pouvez associer un emplacement de stockage géré à un métastore, un catalogue ou un schéma. Les emplacements de stockage gérés à des niveaux inférieurs de la hiérarchie remplacent les emplacements de stockage définis à des niveaux supérieurs lorsque des tables gérées ou des volumes gérés sont créés.

Databricks vous recommande d'attribuer le stockage géré au niveau du catalogue pour l'isolation logique des données, avec le niveau du métastore et le niveau du schéma comme options.

Les nouveaux Workspace activés pour Unity Catalog sont automatiquement créés sans emplacement de stockage géré au niveau du métastore. Pour décider si vous avez besoin d'un stockage au niveau du metastore, consultez Démarrer avec Unity Catalog et Ajouter un stockage géré à un metastore existant.

Qu’est-ce qu’un emplacement de stockage géré ?

Les emplacements de stockage gérés possèdent les propriétés suivantes :

  • Les tables et les volumes gérés stockent les données et les fichiers de métadonnées dans des emplacements de stockage gérés.
  • Les emplacements de stockage gérés ne peuvent pas chevaucher les tables externes ou les volumes externes.

Le tableau suivant décrit comment un emplacement de stockage géré est déclaré et associé aux objets Unity Catalog :

Objet Unity Catalog associé

Comment définir

Relation avec les emplacements externes

Métastore

Configuré par l'administrateur du compte lors de la création du metastore.

Impossible de chevaucher un emplacement externe.

Catalogue standard

Spécifié lors de la création du catalogue à l’aide du mot-clé MANAGED LOCATION, ou modifié après la création à l’aide de ALTER CATALOG SET MANAGED LOCATION.

Doit être contenu dans un emplacement externe.

Catalogue étranger

Spécifié après la création du catalogue à l'aide de Catalog Explorer.

Doit être contenu dans un emplacement externe.

Schéma

Spécifié lors de la création du schéma à l'aide du mot-clé MANAGED LOCATION, ou modifié après la création à l'aide de ALTER SCHEMA SET MANAGED LOCATION.

Doit être contenu dans un emplacement externe.

Objet Unity Catalog associé

Comment définir

Relation avec les emplacements externes

Métastore

Configuré par l'administrateur du compte lors de la création du metastore.

Impossible de chevaucher un emplacement externe.

Catalogue standard

Spécifié lors de la création du catalogue à l’aide du mot-clé MANAGED LOCATION, ou modifié après la création à l’aide de ALTER CATALOG SET MANAGED LOCATION.

Doit être contenu dans un emplacement externe.

Catalogue étranger

Spécifié après la création du catalogue à l'aide de Catalog Explorer.

Doit être contenu dans un emplacement externe.

Schéma

Spécifié lors de la création du schéma à l'aide du mot-clé MANAGED LOCATION, ou modifié après la création à l'aide de ALTER SCHEMA SET MANAGED LOCATION.

Doit être contenu dans un emplacement externe.

remarque

Lorsque Unity Catalog est automatiquement activé pour un Workspace, Databricks crée un catalogue de Workspace avec un emplacement de stockage géré. Tous les utilisateurs du Workspace peuvent créer des tables et des volumes gérés dans le schéma default du catalogue du Workspace. Pour plus d'information sur les catalogues de Workspace, consultez start avec Unity Catalog.

L'emplacement de stockage géré qui stocke les données et les métadonnées pour les tables gérées et les volumes gérés utilise les règles suivantes :

  • Si le schéma conteneur a un emplacement géré, les données sont stockées dans l'emplacement géré du schéma.
  • Si le schéma conteneur ne possède pas d’emplacement géré, mais que le catalogue en possède un, les données sont stockées dans l’emplacement géré du catalogue.
  • Si ni le schéma conteneur, ni le catalogue conteneur n'ont d'emplacement géré, les données sont stockées dans l'emplacement géré du metastore.

Unity Catalog empêche le chevauchement de la gouvernance des emplacements. Voir Règles de chemin et accès dans les volumes Unity Catalog.

Emplacement de stockage géré, racine de stockage et emplacement de stockage

Lorsque vous spécifiez un MANAGED LOCATION pour un catalogue ou un schéma, l'emplacement fourni est suivi en tant que racine de stockage dans Unity Catalog. Pour s'assurer que toutes les entités gérées ont un emplacement unique, Unity Catalog ajoute des sous-répertoires hachés à l'emplacement spécifié, en utilisant le format suivant :

Objet

Chemin d'accès

Schéma

<storage-root>/__unitystorage/schemas/00000000-0000-0000-0000-000000000000

Catalogue

<storage-root>/__unitystorage/catalogs/00000000-0000-0000-0000-000000000000

Objet

Chemin d'accès

Schéma

<storage-root>/__unitystorage/schemas/00000000-0000-0000-0000-000000000000

Catalogue

<storage-root>/__unitystorage/catalogs/00000000-0000-0000-0000-000000000000

Le chemin d'accès complet de l'emplacement de stockage géré est suivi en tant qu' Emplacement de stockage dans Unity Catalog.

Vous pouvez spécifier le même emplacement de stockage géré pour plusieurs schémas et catalogues.

Privilèges requis

Les utilisateurs qui disposent du privilège CREATE MANAGED STORAGE sur un emplacement externe peuvent configurer des emplacements de stockage gérés lors de la création d'un catalogue ou d'un schéma.

Les administrateurs de compte peuvent ajouter un emplacement de stockage géré facultatif au niveau du metastore.

Les utilisateurs disposant des privilèges MANAGE et USE CATALOG, ainsi que les propriétaires de catalogue, peuvent ajouter un emplacement de stockage géré à un catalogue étranger.

Pour modifier l'emplacement de stockage géré pour un catalogue ou un schéma standard, vous devez être le propriétaire du catalogue ou du schéma ou disposer du privilège MANAGE sur celui-ci, et du privilège CREATE MANAGED STORAGE sur l'emplacement externe cible.

Définir un emplacement de stockage géré pour un métastore.

Pour définir un emplacement de stockage géré pour un métastore, consultez Ajouter du stockage géré à un métastore existant.

Définir un emplacement de stockage géré pour un catalogue standard

Définissez un emplacement de stockage géré pour un catalogue standard en utilisant le mot-clé MANAGED LOCATION lors de la création du catalogue, comme dans l'exemple suivant :

SQL
CREATE CATALOG <catalog-name>
MANAGED LOCATION 's3://<external-location-bucket-path>/<directory>';

La chaîne MANAGED LOCATION, y compris le schéma et le chemin de l'URI. Doit contenir 150 caractères au maximum.

Vous pouvez également utiliser Catalog Explorer pour définir l'emplacement de stockage géré pour un catalogue. Consultez Créer des catalogues.

Modifier l'emplacement de stockage géré pour un catalogue standard.

S'applique à : coché oui Databricks SQL coché oui Databricks Runtime 18.1 et versions ultérieures

Pour modifier l'emplacement de stockage géré d'un catalogue existant, utilisez ALTER CATALOG SET MANAGED LOCATION.

remarque

La modification de l'emplacement de stockage géré n'affecte que les nouvelles tables et volumes gérés créés après le changement. Les objets gérés existants ne sont pas déplacés vers le nouvel emplacement.

SQL
ALTER CATALOG <catalog-name>
SET MANAGED LOCATION 's3://<external-location-bucket-path>/<directory>';

La chaîne MANAGED LOCATION, y compris le schéma et le chemin de l'URI. Doit contenir 150 caractères au maximum.

Définir un emplacement de stockage géré pour un catalogue étranger

Vous pouvez définir un emplacement de stockage géré pour un catalogue étranger à l'aide de Catalog Explorer.

  1. Connectez-vous à un Workspace lié au métastore.
  2. Cliquez sur Icône de données. le Catalogue .
  3. Dans le volet Catalogue , recherchez le catalogue et cliquez sur son nom.
  4. Sous **Emplacement de stockage**, cliquez sur **Ajouter un emplacement de stockage**.
  5. Dans Sélectionner un emplacement externe , sélectionnez un emplacement externe ou créez-en un nouveau et spécifiez le chemin.
  6. Cliquez sur Enregistrer .

Définir un emplacement de stockage géré pour un schéma

Définissez un emplacement de stockage géré pour un schéma en utilisant le mot-clé MANAGED LOCATION lors de la création du schéma, comme dans l'exemple suivant :

SQL
CREATE SCHEMA <catalog>.<schema-name>
MANAGED LOCATION 's3://<external-location-bucket-path>/<directory>';

La chaîne MANAGED LOCATION, y compris le schéma et le chemin de l'URI. Doit contenir 150 caractères au maximum.

Vous pouvez également utiliser Catalog Explorer pour définir l'emplacement de stockage géré pour un schéma. Consultez Créer des schémas.

Modifier l’emplacement de stockage géré pour un schéma

S'applique à : coché oui Databricks SQL coché oui Databricks Runtime 18.1 et versions ultérieures

Pour modifier l'emplacement de stockage géré d'un schéma existant, utilisez ALTER SCHEMA SET MANAGED LOCATION.

remarque

La modification de l'emplacement de stockage géré n'affecte que les nouvelles tables et volumes gérés créés après le changement. Les objets gérés existants ne sont pas déplacés vers le nouvel emplacement.

SQL
ALTER SCHEMA <catalog>.<schema-name>
SET MANAGED LOCATION 's3://<external-location-bucket-path>/<directory>';

La chaîne MANAGED LOCATION, y compris le schéma et le chemin de l'URI. Doit contenir 150 caractères au maximum.

Étapes suivantes

Unity Catalog utilise automatiquement les emplacements de stockage gérés lorsque vous créez des tables gérées et des volumes gérés. Voir les tables gérées par Unity Catalog pour Delta Lake et Apache Iceberg et Que sont les volumes Unity Catalog ?.