Gerenciar arquivos em volumes do Catálogo do Unity com o Driver JDBC do Databricks
Este artigo descreve como carregar, baixar e excluir arquivos em volumes do Catálogo do Unity usando o Driver JDBC do Databricks.
Requisitos
- Driver JDBC do Databricks versão 2.6.38 ou superiores.
- Por padrão, o modo de consulta nativo está habilitado. Caso contrário, adicione a propriedade
UseNativeQuery
à cadeia de conexão JDBC, definindo seu valor como1
ou2
.
Para obter um exemplo de código Java completo mostrando como executar os snippets de código deste artigo no contexto de configurar a autenticação do Azure Databricks e executar instruções SQL com o Driver JDBC do Databricks, confira Configurações de autenticação para o Driver JDBC do Databricks.
Fazer upload de um arquivo
Para carregar um arquivo em um volume, você deve adicionar a propriedade StagingAllowedLocalPaths
à cadeia de conexão JDBC, definindo o valor dessa propriedade para o caminho do arquivo a ser carregado. Para carregar vários arquivos de locais separados, defina essa propriedade como uma lista separada por vírgulas de caminhos, por exemplo /tmp/,/usr/tmp/
.
Para substituir o conteúdo de qualquer arquivo existente no local de upload especificado, adicione OVERWRITE
.
O snippet de código Java a seguir mostra como carregar um arquivo em um volume.
// ...
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")
// ...
Baixar um arquivo
O snippet de código Java a seguir mostra como baixar um arquivo de um volume.
// ...
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" +
"'")
// ...
Excluir um arquivo
O snippet de código Java a seguir mostra como excluir um arquivo de um volume.
// ...
Connection conn = DriverManager.getConnection(url, p);
Statement stmt = conn.createStatement();
stmt.executeQuery("REMOVE '" +
"/Volumes/main/default/my-volume/my-data.csv" +
"'")
// ...