Aller au contenu principal

Gérer les fichiers dans les volumes Unity Catalog avec le Driver JDBC Databricks (Simba)

remarque

Cette page s'applique au Driver JDBC Simba (hérité), versions inférieures à la version 3. Databricks recommande vivement de migrer vers le Driver JDBC Databricks pour la connectivité JDBC. Il inclut des améliorations telles que la prise en charge des vues des indicateurs Unity Catalog, des transactions couvrant plusieurs instructions SQL, des procédures stockées, une récupération plus rapide des grands résultats et la télémétrie client intégrée.

Cette page décrit comment upload, download et supprimer des fichiers dans les volumes Unity Catalog à l'aide du Driver JDBC Databricks.

Exigences

  • Databricks JDBC Driver version 2.6.38 ou supérieure
  • Mode query natif activé (default). Si cette option est désactivée, ajoutez UseNativeQuery=1 ou UseNativeQuery=2 à votre chaîne de connexion.

Pour un exemple Java complet avec la configuration de l'authentification, consultez Paramètres d'authentification pour le Driver JDBC Databricks (Simba).

upload a file

Pour upload un fichier, ajoutez la propriété StagingAllowedLocalPaths à votre chaîne de connexion avec le chemin d'accès du fichier à upload. Pour plusieurs emplacements source, utilisez une liste séparée par des virgules (par exemple, /tmp/,/usr/tmp/).

important

Dans les environnements multi-tenant où les utilisateurs contrôlent l'URL JDBC (tels que les outils de BI ou les services de développement), définissez StagingAllowedLocalPaths sur un emplacement sandbox ou un chemin non existant. Cela empêche les utilisateurs d'écrire des fichiers arbitraires et d'interférer avec le déploiement interne du service.

Pour remplacer un fichier existant, ajoutez OVERWRITE à l'instruction.

Java
// ...
p.put("StagingAllowedLocalPaths", "/tmp/");

Connection conn = DriverManager.getConnection(url, p);
Statement stmt = conn.createStatement();

stmt.executeQuery("PUT '" +
"/tmp/my-data.csv" +
"' INTO '" +
"/Volumes/main/default/my-volume/my-data.csv" +
"' OVERWRITE")
// ...

download a file

Utilisez GET pour download un fichier d'un volume vers un chemin local :

Java
// ...
Connection conn = DriverManager.getConnection(url, p);
Statement stmt = conn.createStatement();

stmt.executeQuery("GET '" +
"/Volumes/main/default/my-volume/my-data.csv" +
"' TO '" +
"/tmp/my-downloaded-data.csv" +
"'")
// ...

Supprimer un fichier

Utilisez REMOVE pour supprimer un fichier d'un volume :

Java
// ...
Connection conn = DriverManager.getConnection(url, p);
Statement stmt = conn.createStatement();

stmt.executeQuery("REMOVE '" +
"/Volumes/main/default/my-volume/my-data.csv" +
"'")
// ...