Partager via


Gérer des fichiers dans des volumes de catalogue Unity avec le pilote JDBC Databricks (Simba)

Remarque

Cette page s’applique aux versions du pilote JDBC Databricks antérieures à la version 3. Pour la version 3 et ultérieure, consultez Databricks JDBC Driver.

Cette page explique comment charger, télécharger et supprimer des fichiers dans des volumes de catalogue Unity à l’aide du pilote JDBC Databricks.

Spécifications

  • Databricks JDBC Driver version 2.6.38 ou ultérieure
  • Mode de requête natif activé (par défaut). Si elle est désactivée, ajoutez UseNativeQuery=1 ou UseNativeQuery=2 à votre chaîne de connexion.

Pour obtenir un exemple Java complet avec la configuration de l’authentification, consultez les paramètres d’authentification pour le pilote JDBC Databricks (Simba) .

Charger un fichier

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

Important

Dans les environnements multilocataires où les utilisateurs contrôlent l’URL JDBC (par exemple, les outils décisionnels ou les services de développement), vous devez définir StagingAllowedLocalPaths à un emplacement en bac à sable ou à un chemin inexistant. 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.

// ...
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")
// ...

Téléchargement d’un fichier

Permet GET de télécharger un fichier à partir d’un volume vers un chemin d’accès local :

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

Permet REMOVE de supprimer un fichier d’un volume :

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

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