Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Databricks offre des fonctionnalités d’ingestion en bloc à l’aide de volumes de catalogue Unity, ce qui permet aux utilisateurs de transférer des jeux de données vers et à partir de fichiers locaux tels que des fichiers CSV. Découvrez quels sont les volumes du catalogue Unity ?.
Cet article explique comment gérer des fichiers dans des volumes, ainsi que lire et écrire des flux vers et depuis des volumes, à l’aide du pilote JDBC Databricks, version 3 et ultérieure.
Activer les opérations de volume
Pour activer les opérations de volume du catalogue Unity, définissez la propriété de connexion VolumeOperationAllowedLocalPaths sur une liste séparée par des virgules des chemins locaux autorisés pour les opérations de volume. Afficher d’autres propriétés de fonctionnalité
Le catalogue Unity doit être activé pour utiliser cette fonctionnalité. Des fonctionnalités similaires sont disponibles à l’aide de l’interface utilisateur Databricks. Consultez Charger des fichiers dans un volume Unity Catalog.
Les commandes d’ingestion du catalogue Unity sont des instructions SQL. Les exemples ci-dessous illustrent les opérations PUT, GETet REMOVE.
Charger un fichier local
Pour charger un fichier local /tmp/test.csv dans un chemin de volume du catalogue Unity en tant que /Volumes/main/default/e2etests/file1.csv, utilisez l’opération PUT :
PUT '/tmp/test.csv' INTO '/Volumes/main/default/e2etests/file1.csv' OVERWRITE
Téléchargement d’un fichier
Pour télécharger un fichier depuis le chemin du volume Unity Catalog /Volumes/main/default/e2etests/file1.csv vers un fichier local /tmp/test.csv, utilisez l'opération GET :
GET '/Volumes/main/default/e2etests/file1.csv' TO '/tmp/test.csv'
Supprimer un fichier
Pour supprimer un fichier avec un chemin de volume Unity Catalog /Volumes/main/default/e2etests/file1.csv, utilisez l'opération REMOVE :
REMOVE '/Volumes/main/default/e2etests/file1.csv'
Lire/écrire des données à l’aide d’un flux
Le pilote JDBC prend en charge la lecture et la diffusion en continu des données à partir de et vers les volumes Unity Catalog en fournissant l’interface IDatabricksVolumeClient. Consultez la référence IDatabricksVolumeClient pour les API disponibles.
Le IDatabricksVolumeClient peut être initialisé à l’aide de l’utilitaire DatabricksVolumeClientFactory de fabrique :
import com.databricks.jdbc.api.impl.volume.DatabricksVolumeClientFactory;
import com.databricks.jdbc.api.volume.IDatabricksVolumeClient;
IDatabricksVolumeClient volumeClient = DatabricksVolumeClientFactory.getVolumeClient(Connection conn);
Écrire un fichier dans un volume à partir d’un flux
// Create the connection and enable the volume operations.
Connection connection = DriverManager.getConnection(url, prop);
connection.setClientInfo("enableVolumeOperations", "1");
File file = new File("/tmp/test.csv");
FileInputStream fileInputStream = new FileInputStream(file);
// Upload the file stream to UC Volume path
IDatabricksVolumeClient volumeClient = DatabricksVolumeClientFactory.getVolumeClient(Connection conn);
volumeClient.putObject(catalog, schema, volume, objectPath, inputStream, contentLength, true /* overwrite */);
Lire un fichier volumique en flux
import org.apache.http.entity.InputStreamEntity;
// Create the connection and enable the volume operations.
Connection connection = DriverManager.getConnection(url, prop);
connection.setClientInfo("enableVolumeOperations", "1");
File file = new File("/tmp/test.csv");
FileInputStream fileInputStream = new FileInputStream(file);
// Upload the file stream to UC Volume path
IDatabricksVolumeClient volumeClient = DatabricksVolumeClientFactory.getVolumeClient(Connection conn);
InputStreamEntity volumeDataStream = volumeClient.getObject(catalog, schema, volume, objectPath);