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 :

  1. Dans votre espace de travail Azure Databricks, cliquez sur icône Catalogue Catalogue.
  2. 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 :

  1. Sélectionnez un ou plusieurs fichiers.
  2. 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 :

  1. Sélectionnez un ou plusieurs fichiers.
  2. Cliquez sur Supprimer.
  3. 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 :

  1. Cliquez sur menu Kebab à droite du nom du volume.
  2. Sélectionnez Créer un répertoire.
  3. Entrez un nom de répertoire.
  4. Cliquez sur Créer.

Supprimer des répertoires d’un volume

Pour supprimer des répertoires d’un volume, procédez comme suit :

  1. Sélectionnez un ou plusieurs répertoires.
  2. Cliquez sur Supprimer.
  3. 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 menu Kebab 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.

  1. Sélectionnez un ou plusieurs fichiers, ou un répertoire. Les fichiers doivent avoir la même disposition de données.

  2. Cliquez sur Créer une table. La boîte de dialogue Créer une table à partir de volumes s’affiche.

  3. 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.

  4. 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 pour dbutils.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 :

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 :

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}"