Compartilhar via


Gerenciar arquivos em volumes do Catálogo do Unity com o Simba (Driver JDBC) do Databricks

Observação

Esta página se aplica às versões do driver JDBC do Databricks abaixo da versão 3. Para versões 3 e superiores, consulte o Driver JDBC do Databricks.

Esta página descreve como carregar, baixar e excluir arquivos em volumes do Catálogo do Unity usando o Driver JDBC do Databricks.

Requisitos

  • Databricks JDBC Driver versão 2.6.38 ou superior
  • Modo de consulta nativo habilitado (padrão). Se estiver desabilitado, adicione UseNativeQuery=1 ou UseNativeQuery=2 à cadeia de conexão.

Para obter um exemplo de Java completo com configuração de autenticação, consulte as configurações de autenticação para o Simba (Driver JDBC) do Databricks.

Fazer upload de um arquivo

Para carregar um arquivo, adicione a StagingAllowedLocalPaths propriedade à cadeia de conexão com o caminho do arquivo a ser carregado. Para vários locais de origem, use uma lista separada por vírgulas (por exemplo, /tmp/,/usr/tmp/).

Importante

Em ambientes multilocatários em que os usuários controlam a URL JDBC (como ferramentas de BI ou serviços de desenvolvedor), definido StagingAllowedLocalPaths como um local de área restrita ou caminho inexistente. Isso impede que os usuários gravem arquivos arbitrários e interfiram na implantação interna do serviço.

Para substituir 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 baixar 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" +
                  "'")
// ...