Aller au contenu principal

Montage du stockage d'objets cloud sur Databricks

important

Les montages DBFS sont un modèle obsolète et ne sont pas compatibles avec l'architecture de compute serverless Databricks. Les nouveaux comptes sont provisionnés sans accès à ces fonctionnalités. Databricks recommande d'utiliser plutôt les emplacements externes du Unity Catalog.

Databricks permet aux utilisateurs de monter le stockage d'objets cloud sur le Databricks File System (DBFS) afin de simplifier les modèles d'accès aux données pour les utilisateurs qui ne connaissent pas bien les concepts du cloud. Les données montées ne fonctionnent pas avec Unity Catalog, et Databricks recommande de ne plus utiliser les montages et de gérer plutôt la gouvernance des données avec Unity Catalog.

Comment Databricks monte-t-il le stockage d'objets cloud ?

Les montages Databricks créent un Link entre un workspace et le stockage d'objets cloud, ce qui vous permet d'interagir avec le stockage d'objets cloud à l'aide de chemins de fichiers familiers relatifs au système de fichiers Databricks. Les montages fonctionnent en créant un alias local sous le répertoire /mnt qui stocke les informations suivantes :

  • Emplacement du stockage d'objets cloud.
  • Spécifications du Driver pour se connecter au compte de stockage ou au conteneur.
  • Des identifiants de sécurité sont requis pour accéder aux données.

Quelle est la syntaxe pour le montage du stockage ?

Le source spécifie l’URI du stockage d’objets (et peut éventuellement encoder les identifiants de sécurité). Le mount_point spécifie le chemin local dans le répertoire /mnt. Certaines sources de stockage d’objets prennent en charge un argument encryption_type facultatif. Pour certains modèles d'accès, vous pouvez passer des spécifications de configuration supplémentaires sous forme de dictionnaire à extra_configs.

remarque

Databricks recommande de définir la configuration Spark et Hadoop spécifique au point de montage sous forme d’options à l’aide de extra_configs. Ceci garantit que les configurations sont liées au point de montage plutôt qu'au cluster ou à la session.

Python
dbutils.fs.mount(
source: str,
mount_point: str,
encryption_type: Optional[str] = "",
extra_configs: Optional[dict[str:str]] = None
)

Veuillez vérifier auprès des administrateurs de votre Workspace et de votre cloud avant de configurer ou de modifier les montages de données, car une configuration incorrecte peut fournir un accès non sécurisé à tous les utilisateurs de votre Workspace.

remarque

En plus des approches décrites dans cet article, vous pouvez automatiser le montage d'un compartiment avec le fournisseur Databricks Terraform et databricks_mount.

Démonter un point de montage

Pour démonter un point de montage, utilisez la commande suivante :

Python
dbutils.fs.unmount("/mnt/<mount-name>")
attention

Pour éviter les erreurs, ne modifiez jamais un point de montage pendant que d'autres Jobs le lisent ou l'écrivent. Après avoir modifié un point de montage, exécutez toujours dbutils.fs.refreshMounts() sur tous les autres clusters en cours d'exécution pour propager toute mise à jour de point de montage. Voir la commande refreshMounts (dbutils.fs.refreshMounts).

Accéder à un compartiment GCS via DBFS

Pour travailler avec les montages DBFS, le nom de votre compartiment ne doit pas contenir de trait de soulignement. Pour écrire dans un compartiment GCS, vous devez fournir un projectId Google Cloud pour le compartiment.

Vous devez utiliser l'adresse e-mail du compte de service lors de la configuration de la sécurité de votre cluster.

Vous pouvez monter un compartiment sur Qu’est-ce que DBFS ?. Le montage est un pointeur vers un emplacement GCS, de sorte que les données ne sont jamais synchronisées localement.

L'exemple suivant montre la syntaxe de base pour le montage d'un bucket GCS :

Python
bucket_name = "my-gcs-bucket"
mount_name = "my-mount"
dbutils.fs.mount(
f"gs://{bucket_name}",
f"/mnt/databricks/{mount_name}",
extra_configs = {"fs.gs.project.id": "my-project-id"}
)