Volumes
S’applique à : Databricks SQL Databricks Runtime 13.3 LTS et versions ultérieures Unity Catalog uniquement
Les volumes sont des objets Unity Catalog qui représentent un volume logique de stockage dans un emplacement de stockage d’objets cloud. Les volumes fournissent des fonctionnalités d’accès, de stockage, de gouvernance et d’organisation des fichiers. Alors que les tables fournissent une gouvernance sur les jeux de données tabulaires, les volumes ajoutent une gouvernance aux jeux de données non tabulaires. Vous pouvez utiliser des volumes pour stocker et accéder à des fichiers dans n’importe quel format, y compris des données structurées, semi-structurées et non structurées.
Les volumes sont similaires aux tables, aux vues et aux autres objets organisés sous un schéma dans Unity Catalog.
Un volume peut être géré ou externe.
Pour connaître les détails et les limitations, consultez Qu’est-ce que les volumes Unity Catalog ?.
Volume managé
Un volume managé est un volume de stockage gouverné par Unity Catalog créé dans l’emplacement de stockage géré du schéma conteneur. Les volumes managés permettent la création d’un stockage gouverné pour travailler avec des fichiers sans la surcharge des emplacements externes et des informations d’identification de stockage. Vous n’avez pas besoin de spécifier un emplacement lors de la création d’un volume managé, et tout l’accès aux fichiers pour les données des volumes managés passe par des chemins d’accès gérés par Unity Catalog.
Volume externe
Un volume externe est un volume de stockage gouverné par Unity Catalog inscrit dans un répertoire au sein d’un emplacement externe.
Nommage et référence de volume
Un nom de volume est un identificateur qui peut être qualifié avec un nom de catalogue et de schéma dans les commandes SQL.
Le chemin d’accès aux fichiers dans les volumes utilise le format suivant :
/Volumes/<catalog_identifier>/<schema_identifier>/<volume_identifier>/<path>/<file_name>
Notez qu’Azure Databricks normalise les identificateurs en minuscules.
Azure Databricks prend également en charge un schéma dbfs:/
facultatif. Le chemin d’accès suivant fonctionne également :
dbfs:/Volumes/<catalog_identifier>/<schema_identifier>/<volume_identifier>/<path>/<file_name>
Remarque
Vous pouvez également accéder aux données dans des volumes externes en utilisant des URI de stockage cloud.
Gestion des fichiers dans les volumes
S’applique à : Connecteur Databricks SQL
À l’aide d’un connecteur Databricks SQL, vous pouvez gérer des fichiers dans des volumes à l’aide des commandes suivantes :
- PUT INTO pour copier un fichier à partir de votre stockage local vers un volume.
- GET pour copier un fichier d’un volume vers votre stockage local.
- REMOVE pour supprimer un fichier d’un volume.
Exemples
--- Create an external volume under the directory “my-path”
> CREATE EXTERNAL VOLUME IF NOT EXISTS myCatalog.mySchema.myExternalVolume
COMMENT 'This is my example external volume'
LOCATION 's3://my-bucket/my-location/my-path'
OK
--- Set the current catalog
> USE CATALOG myCatalog;
OK
--- Set the current schema
> USE SCHEMA mySchema;
OK
--- Create a managed volume; it is not necessary to specify a location
> CREATE VOLUME myManagedVolume
COMMENT 'This is my example managed volume';
OK
--- List the files inside the volume, all names are lowercase
> LIST '/Volumes/mycatalog/myschema/myexternalvolume'
sample.csv
> LIST 'dbfs:/Volumes/mycatalog/myschema/mymanagedvolume'
sample.csv
--- Print the content of a csv file
> SELECT * FROM csv.`/Volumes/mycatalog/myschema/myexternalvolume/sample.csv`
20
> SELECT * FROM csv.`dbfs:/Volumes/mycatalog/myschema/mymanagedvolume/sample.csv`
20