Gérer les fichiers dans les volumes
Cet article fournit des exemples de gestion de fichiers dans des volumes Unity Catalog pour différentes interfaces utilisateur, outils, bibliothèques et langages.
Databricks recommande d’utiliser des volumes pour gérer l’accès total aux données non tabulaires dans le stockage d’objets cloud. Voici quelques exemples de données non tabulaires incluant les éléments suivants :
- Fichiers de données pour l’ingestion, tels que CSV, JSON et Parquet.
- Fichiers texte, image et audio pour les charges de travail de science des données, ML et IA.
- Artefacts CSV ou JSON écrits par Azure Databricks pour l’intégration avec des systèmes externes.
Vous pouvez utiliser des volumes pour stocker des fichiers tels que des bibliothèques ou des scripts init et générer des artefacts. Voir Recommandations pour les fichiers dans les volumes et les fichiers d’espace de travail.
Utiliser des fichiers dans des volumes à l’aide de l’interface utilisateur de l’Explorateur de catalogues
Catalog Explorer fournit des options pour les tâches courantes de gestion de fichiers pour les fichiers stockés avec des volumes Unity Catalog.
Pour interagir avec les fichiers d’un volume, procédez comme suit :
- Dans votre espace de travail Azure Databricks, cliquez sur Catalogue.
- Recherchez ou parcourez le volume avec lequel vous souhaitez travailler et sélectionnez-le.
Pour plus d’informations sur la création et la gestion des volumes, consultez Créer et gérer des volumes.
Charger des fichiers sur un volume
Le bouton Charger sur ce volume ouvre une boîte de dialogue pour charger des fichiers. Consultez Charger des fichiers dans un volume Unity Catalog.
Les fichiers chargés ne peuvent pas dépasser 5 Go.
Télécharger des fichiers à partir d’un volume
Pour télécharger des fichiers à partir d’un volume, procédez comme suit :
- Sélectionnez un ou plusieurs fichiers.
- Cliquez sur Télécharger pour télécharger ces fichiers.
Supprimer des fichiers d’un volume
Pour supprimer des fichiers d’un volume, procédez comme suit :
- Sélectionnez un ou plusieurs fichiers.
- Cliquez sur Supprimer.
- Cliquez sur Supprimer pour confirmer dans la boîte de dialogue qui s’affiche.
Créer un répertoire vide
Pour créer un répertoire dans un volume, procédez comme suit :
- Cliquez sur à droite du nom du volume.
- Sélectionnez Créer un répertoire.
- Entrez un nom de répertoire.
- Cliquez sur Créer.
Supprimer des répertoires d’un volume
Pour supprimer des répertoires d’un volume, procédez comme suit :
- Sélectionnez un ou plusieurs répertoires.
- Cliquez sur Supprimer.
- Cliquez sur Supprimer pour confirmer dans la boîte de dialogue qui s’affiche.
Tâches de gestion des fichiers d’interface utilisateur pour les volumes
Cliquez sur le menu kebab à côté d’un nom de fichier pour effectuer les actions suivantes :
- Copier le chemin
- Télécharger un fichier
- Supprimer un fichier
- CREATE TABLE
Créer une table à partir de données dans un volume
Azure Databricks fournit une interface utilisateur pour créer une table managée Unity Catalog à partir d’un fichier, de fichiers ou d’un répertoire de fichiers dans un volume Unity Catalog.
Vous devez disposer d’autorisations CREATE TABLE
dans le schéma cible et avoir accès à un entrepôt SQL en cours d’exécution.
Sélectionnez un ou plusieurs fichiers, ou un répertoire. Les fichiers doivent avoir la même disposition de données.
Cliquez sur Créer une table. La boîte de dialogue Créer une table à partir de volumes s’affiche.
Utilisez la boîte de dialogue fournie pour passer en revue un aperçu des données et effectuer les configurations suivantes :
- Choisissez de créer une table ou de remplacer une table existante
- Sélectionnez le catalogue et le schéma cibles.
- Indiquez le nom de la table.
- (Facultatif) Remplacez les noms et les types de colonnes par défaut, ou choisissez d’exclure des colonnes.
Remarque
Cliquez sur Attributs avancés pour afficher des options supplémentaires.
Cliquez sur Créer une table pour créer la table avec les attributs spécifiés. Une fois l’opération terminée, Catalog Explorer affiche les détails du tableau.
Travailler par programmation avec des fichiers dans des volumes sur Azure Databricks
Vous pouvez lire et écrire des fichiers dans des volumes à partir de tous les langages et éditeurs d’espace de travail pris en charge au format suivant :
/Volumes/catalog_name/schema_name/volume_name/path/to/files
Vous interagissez avec les fichiers dans des volumes de la même façon que vous interagissez avec les fichiers dans n’importe quel emplacement de stockage d’objets cloud. Cela signifie que si vous gérez actuellement du code qui utilise des URI cloud, des chemins de montage DBFS ou des chemins racine DBFS pour interagir avec des données ou des fichiers. Vous pouvez mettre à jour votre code pour utiliser des volumes à la place.
Remarque
Les volumes sont utilisés uniquement pour des données non tabulaires. Databricks recommande d’inscrire des données tabulaires à l’aide de tables Unity Catalog, puis de lire et d’écrire les données à l’aide des noms de tables.
Lire et écrire des données dans des volumes
Vous pouvez utiliser Apache Spark, Pandas, Spark SQL et d’autres bibliothèques OSS pour lire et écrire des fichiers de données dans des volumes.
Les exemples suivants montrent la lecture d’un fichier CSV stocké dans un volume :
Python
df = spark.read.format("csv").load("/Volumes/catalog_name/schema_name/volume_name/data.csv")
display(df)
Pandas
import pandas as pd
df = pd.read_csv('/Volumes/catalog_name/schema_name/volume_name/data.csv')
display(df)
SQL
SELECT * FROM csv.`/Volumes/catalog_name/schema_name/volume_name/data.csv`
Commandes utilitaires pour les fichiers dans les volumes
Databricks fournit les outils suivants pour gérer les fichiers dans les volumes :
- Sous-module
dbutils.fs
dans les Utilitaires Databricks. Consultez Utilitaire de système de fichiers (dbutils.fs). - Commande magique
%fs
, qui est un raccourci pourdbutils.fs
. - Commande magique
%sh
, qui permet la commande Bash sur les volumes.
Pour obtenir un exemple d’utilisation de ces outils afin de télécharger des fichiers à partir d’Internet, décompresser des fichiers et déplacer des fichiers d’un stockage de blocs éphémères vers des volumes, consultez Télécharger des données à partir d’Internet.
Vous pouvez aussi utiliser des packages OSS pour les commandes de l’utilitaire de fichiers, telles que le module Python os
, comme illustré dans l’exemple suivant :
import os
os.mkdir('/Volumes/catalog_name/schema_name/volume_name/directory_name')
Gérer des fichiers dans des volumes à partir d’outils externes
Databricks fournit une suite d’outils permettant de gérer par programmation les fichiers dans des volumes à partir de votre environnement local ou de systèmes intégrés.
Commandes SQL pour les fichiers dans les volumes
Azure Databricks prend en charge les mots clés SQL suivants pour interagir avec des fichiers dans des volumes :
Remarque
Les notebooks Databricks ou l’éditeur de requête prennent uniquement en charge la commande LIST
.
Les connecteurs et les pilotes SQL Databricks suivants prennent en charge la gestion des fichiers dans des volumes :
- Le connecteur SQL Databricks pour Python. Voir Gérer des fichiers dans des volumes Unity Catalog.
- Le pilote SQL Databricks pour Go. Voir Gérer des fichiers dans des volumes Unity Catalog.
- Le pilote SQL Databricks pour Node.js. Voir Gérer des fichiers dans des volumes Unity Catalog.
- Le pilote JDBC Databricks. Voir Gérer des fichiers dans des volumes Unity Catalog avec le pilote JDBC Databricks.
- Le pilote ODBC Databricks. Voir Gérer des fichiers dans des volumes Unity Catalog avec le pilote ODBC Databricks.
Gérer des fichiers dans des volumes avec Databricks CLI
Utilisez les sous-commandes dans databricks fs
. Voir groupe de commandes FS.
Remarque
L’interface Databricks CLI nécessite que le schéma dbfs:/
précède tous les chemins d’accès aux volumes. Par exemple : dbfs:/Volumes/catalog_name/schema_name/volume_name/path/to/data
.
Gérer les fichiers dans les volumes avec des kit de développement logiciel (SDK)
Les kits de développement logiciel (SDK) suivants prennent en charge la gestion des fichiers dans les volumes :
- Le kit de développement logiciel (SDK) Databricks pour Python. Utilisez les méthodes disponibles dans WorkspaceClient.files. Voir des exemples dans Gérer des fichiers dans des volumes Unity Catalog.
- Le kit de développement logiciel (SDK) Databricks pour Java. Utilisez les méthodes disponibles dans WorkspaceClient.files. Voir des exemples dans Gérer des fichiers dans des volumes Unity Catalog.
- Le kit de développement logiciel (SDK) Databricks pour Go. Utilisez les méthodes disponibles dans WorkspaceClient.files. Voir des exemples dans Gérer des fichiers dans des volumes Unity Catalog.
Gérer les fichiers dans les volumes avec l’API REST
Utilisez les Fichiers API pour gérer des fichiers dans des volumes.
Exemples d’API REST pour les fichiers dans les volumes
Les exemples suivants utilisent curl
et l’API REST Databricks pour effectuer des tâches de gestion des fichiers dans des volumes.
L’exemple suivant crée un dossier vide nommé my-folder
dans le volume spécifié.
curl --request PUT "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/my-folder/" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"
L’exemple suivant crée un fichier nommé data.csv
avec les données spécifiées dans le chemin d’accès spécifié dans le volume.
curl --request PUT "https://${DATABRICKS_HOST}/api/2.0/fs/files/Volumes/main/default/my-volume/my-folder/data.csv?overwrite=true" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" \
--header "Content-Type: application/octet-stream" \
--data-binary $'id,Text\n1,Hello World!'
L’exemple suivant liste le contenu d’un volume dans le chemin d’accès spécifié. Cet exemple utilise jq pour mettre en forme le corps du fichier JSON de la réponse pour faciliter la lecture.
curl --request GET "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq .
L’exemple suivant liste le contenu d’un dossier dans un volume dans le chemin d’accès spécifié. Cet exemple utilise jq pour mettre en forme le corps du fichier JSON de la réponse pour faciliter la lecture.
curl --request GET "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/my-folder" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq .
L’exemple suivant imprime le contenu d’un fichier dans le chemin d’accès spécifié dans un volume.
curl --request GET "https://${DATABRICKS_HOST}/api/2.0/fs/files/Volumes/main/default/my-volume/my-folder/data.csv" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"
L’exemple suivant supprime un fichier dans le chemin d’accès spécifié d’un volume.
curl --request DELETE "https://${DATABRICKS_HOST}/api/2.0/fs/files/Volumes/main/default/my-volume/my-folder/data.csv" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"
L’exemple suivant supprime un dossier du volume spécifié.
curl --request DELETE "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/my-folder/" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"