Gerenciar arquivos em volumes Unity Catalog com o driver Databricks ODBC
Este artigo descreve upload como, download e excluir arquivos em Unity Catalog volumes usando o Databricks ODBCdriver.
Requisitos
- Databricks ODBC Versões de driver 2.8.2 ou superiores.
 - Em default, o modo de consulta nativa é ativado. Caso contrário, adicione a propriedade 
UseNativeQueryàs cadeias de conexão ODBC, definindo seu valor como1ou2. 
carregar um arquivo
Para upload um arquivo em um volume, o senhor deve adicionar a propriedade StagingAllowedLocalPaths às cadeias de conexão ODBC, definindo o valor dessa propriedade como o caminho do arquivo para upload. Para fazer upload de vários arquivos de locais separados, defina essa propriedade como uma lista de caminhos separados por vírgula, por exemplo, /tmp/,/usr/tmp/.
Se a configuração estiver em um ambiente multitenant (como ferramentas BI ou serviço de desenvolvedor) e os usuários controlarem o URL ODBC completo, o serviço deve definir a propriedade de conexão StagingAllowedLocalPaths para um local sandbox ou um caminho inexistente. Isso impede que os usuários criem arquivos arbitrários e interfiram na implantação interna do serviço.
Para substituir o conteúdo de qualquer arquivo existente no local de upload especificado, adicione OVERWRITE.
O trecho de código Python a seguir mostra como fazer upload de um arquivo em um volume.
conn_string = "".join([
    "DRIVER=", os.getenv("ODBC_DRIVER", "/Library/simba/spark/lib/libsparkodbc_sbu.dylib"),
    ";Host=", os.getenv("ODBC_HOST_NAME", "<<HOST_NAME>>"),
    ";PORT=443",
    ";HTTPPath=", os.getenv("ODBC_HTTP_PATH", "/sql/1.0/endpoints/1234567890"),
    ";AuthMech=11",
    ";SSL=1",
    ";ThriftTransport=2",
    ";SparkServerType=3",
    ";Auth_Flow=0",
    ";Auth_AccessToken=", os.getenv("API_TOKEN", "<<NO_ACCESS_TOKEN_IS_SET>>"),
    ";StagingAllowedLocalPaths=", "/tmp"),
    os.getenv("ODBC_OPTIONS", ""),
])
conn = pyodbc.connect(conn_string, autocommit=True)
cursor = conn.cursor()
cursor.execute("PUT '" +
    "/tmp/my-data.csv" +
    "' INTO '" +
    "/Volumes/main/default/my-volume/my-data.csv" +
    "' OVERWRITE")
baixar um arquivo
O trecho de código Python a seguir mostra como fazer o download de um arquivo de um volume.
conn = pyodbc.connect(conn_string, autocommit=True)
cursor = conn.cursor()
cursor.execute("GET '" +
    "/Volumes/main/default/my-volume/my-data.csv" +
    "' TO '" +
    "/tmp/my-downloaded-data.csv" +
    "'")
Excluir um arquivo
O trecho de código Python a seguir mostra como excluir um arquivo de um volume.
conn = pyodbc.connect(conn_string, autocommit=True)
cursor = conn.cursor()
cursor.execute("REMOVE '" +
    "/Volumes/main/default/my-volume/my-data.csv" +
    "'")