Pular para o conteúdo principal

gerenciar arquivos em volumes Unity Catalog com o Databricks JDBC Driver (Simba)

nota

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=1 ou UseNativeQuery=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/).

importante

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.

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

baixar um arquivo

Use GET para download um arquivo de um volume para um caminho 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" +
"'")
// ...

Excluir um arquivo

Use REMOVE para excluir um arquivo de um volume:

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

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