Spécifier un emplacement de stockage managé dans Unity Catalog
Un emplacement de stockage managé spécifie un emplacement dans le stockage d’objets cloud pour stocker des données pour les tables managées et les volumes managés.
Vous pouvez associer un emplacement de stockage managé à un metastore, un catalogue ou un schéma. Les emplacements de stockage managés à des niveaux inférieurs dans la hiérarchie remplacent les emplacements de stockage définis à des niveaux supérieurs lorsque des tables managées ou des volumes managés sont créés.
Databricks vous recommande d’affecter un stockage managé au niveau du catalogue pour l’isolation des données logiques, avec des options au niveau du metastore et du schéma.
Les nouveaux espaces de travail activés pour le catalogue Unity sont automatiquement créés sans emplacement de stockage managé au niveau du metastore. Toutefois, le stockage au niveau du metastore est requis pour certaines fonctionnalités, telles que le partage de notebooks à l’aide du partage Delta ou l’utilisation d’emplacements intermédiaires personnels en tant que partenaire Databricks. Consultez l’activation automatique du catalogueUnity, de la gouvernance des données et des blocs de construction d’isolation des données et créer un metastore de catalogue Unity.
Qu’est-ce qu’un emplacement de stockage managé ?
Les emplacements de stockage managés ont les propriétés suivantes :
- Les tables managées et les volumes managés stockent les fichiers de données et de métadonnées dans les emplacements de stockage managés.
- Les emplacements de stockage managés ne peuvent pas chevaucher des tables externes ou des volumes externes.
Le tableau suivant décrit comment un emplacement de stockage managé est déclaré et associé à des objets Unity Catalog :
Objet Unity Catalog associé | Définition | Relation avec les emplacements externes |
---|---|---|
Metastore | Configuré par l’administrateur de compte lors de la création du metastore. | Impossible de chevaucher un emplacement externe. |
Catalogue | Spécifié lors de la création du catalogue avec le mot clé MANAGED LOCATION . |
Doit être contenu dans un emplacement externe. |
schéma | Spécifié lors de la création du schéma avec le mot clé MANAGED LOCATION . |
Doit être contenu dans un emplacement externe. |
L’emplacement de stockage managé utilisé pour stocker les données et les métadonnées des tables managées et des volumes managés utilise les règles suivantes :
- Si le schéma contenant a un emplacement managé, les données sont stockées dans l’emplacement managé par le schéma.
- Si le schéma contenant n’a pas d’emplacement managé, mais que le catalogue a un emplacement managé, les données sont stockées dans l’emplacement managé par le catalogue.
- Si ni le schéma conteneur ni le catalogue conteneur n’ont d’emplacement managé, les données sont stockées dans l’emplacement managé du metastore.
Unity Catalog empêche le chevauchement de la gouvernance des emplacements. Consultez Comment fonctionnent les chemins pour les données gérées par Unity Catalog ?.
Emplacement de stockage managé, 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 comme racine de stockage dans Unity Catalog. Pour vous assurer que toutes les entités managées ont un emplacement unique, Unity Catalog ajoute des sous-répertoires hachés à l’emplacement spécifié, au format suivant :
Object | 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 managé est suivi comme emplacement de stockage dans Unity Catalog.
Vous pouvez spécifier le même emplacement de stockage managé pour plusieurs schémas et catalogues.
Privilèges requis
Les utilisateurs disposant du privilège CREATE MANAGED STORAGE
sur un emplacement externe peuvent configurer des emplacements de stockage managés lors de la création du catalogue ou du schéma.
Les administrateurs de compte peuvent ajouter un emplacement de stockage managé facultatif au niveau du metastore.
Définir un emplacement de stockage managé pour un metastore
Pour définir un emplacement de stockage managé pour un metastore, consultez Ajouter un stockage managé à un metastore existant.
Définir un emplacement de stockage managé pour un catalogue
Définissez un emplacement de stockage managé pour un catalogue à l’aide du mot clé MANAGED LOCATION
lors de la création du catalogue, comme dans l’exemple suivant :
CREATE CATALOG <catalog-name>
MANAGED LOCATION 'abfss://<container-name>@<storage-account>.dfs.core.windows.net/<path>/<directory>';
Vous pouvez également utiliser l’Explorateur de catalogues pour définir l’emplacement de stockage géré d’un catalogue. Consultez Créer des catalogues.
Définir un emplacement de stockage managé pour un schéma
Définissez un emplacement de stockage managé pour un schéma à l’aide du mot clé MANAGED LOCATION
lors de la création du schéma, comme dans l’exemple suivant :
CREATE CATALOG <catalog>.<schema-name>
MANAGED LOCATION 'abfss://<container-name>@<storage-account>.dfs.core.windows.net/<path>/<directory>';
Vous pouvez également utiliser l’Explorateur de catalogue pour définir l’emplacement de stockage géré d’un schéma. Consultez Créer des schémas.
Étapes suivantes
Unity Catalog utilise automatiquement des emplacements de stockage managé lorsque vous créez des tables managées et des volumes managés. Consultez Utiliser des tables managées et Qu’est-ce que les volumes de catalogue Unity ?.