gerenciar arquivos em volumes Unity Catalog com o Databricks JDBC Driver (Simba)
Esta página aplica-se às versões do driver JDBC Databricks anteriores à versão 3. Para a versão 3 e superiores, consulte o Driver JDBC Databricks.
Esta página descreve como upload, download e excluir arquivos em volumes Unity Catalog usando o driver JDBC Databricks.
Requisitos
- Driver JDBC Databricks versão 2.6.38 ou superior
- Modo de consulta nativa ativado (default). Se desativado, adicione
UseNativeQuery=1ouUseNativeQuery=2às suas strings de conexão.
Para um exemplo completo em Java com configuração de autenticação, consulte Configurações de autenticação para o driver JDBC do Databricks (Simba).
carregar um arquivo
Para upload de um arquivo, adicione a propriedade StagingAllowedLocalPaths às suas strings de conexão com o caminho do arquivo a ser upload. Para vários locais de origem, use uma lista separada por vírgulas (por exemplo, /tmp/,/usr/tmp/).
Em ambientes multi-tenant onde os usuários controlam o URL JDBC (como ferramentas BI ou serviço de desenvolvedor), defina StagingAllowedLocalPaths para um local sandbox ou um caminho inexistente. Isso impede que os usuários escrevam arquivos arbitrários e interfiram na implantação interna do serviço.
Para sobrescrever um arquivo existente, adicione OVERWRITE à instrução.
// ...
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
Use GET para download um arquivo de um volume para um caminho 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" +
"'")
// ...
Excluir um arquivo
Use REMOVE para 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" +
"'")
// ...