Driver ODBC OSS do Databricks

Importante

O Driver ODBC OSS do Databricks, versão 0.5.0, está em versão Beta. Para obter informações sobre o driver da versão 2.x de disponibilidade geral, consulte a documentação do Driver ODBC do Databricks.

Para relatar um problema ou solicitar um recurso enquanto o driver estiver em versão Beta, entre em contato com a equipe da conta da Databricks.

O Driver ODBC OSS do Databricks é um driver ODBC 3.8 para os warehouses Lakehouse//RT e SQL do Databricks. Ele foi projetado para ser um substituto compatível do Databricks ODBC Driver versão 2.x para cargas de trabalho suportadas. Aplicativos existentes, DSNs e cadeias de conexão que usam funcionalidades comuns 2.x geralmente devem funcionar sem alterações.

Requisitos

O Driver ODBC OSS do Databricks e o Driver ODBC do Databricks na versão 2.x usam o mesmo nome de driver ODBC, identificadores de pacotes, caminhos de instalação e nomes de bibliotecas registrados. Instalar uma versão sobre a outra substitui a instalação existente. Para alternar entre drivers, reinstale o pacote correspondente à versão que você deseja usar.

O Driver ODBC OSS do Databricks é compatível com as seguintes plataformas:

Sistema operacional Pacote e arquitetura Requirement
Windows MSI para x64 e x86 A arquitetura do driver deve corresponder à arquitetura do aplicativo.
macOS Universal .pkg para Intel e Apple silicon macOS 13.3 ou superior.
Linux .deb e .rpm para x86_64, aarch64 e i686 glibc 2.28 ou superior e um gerenciador de drivers ODBC compatível.

Você também precisa do Server Hostname e do HTTP Path para um warehouse Databricks SQL ou Lakehouse//RT. Consulte Obter detalhes de conexão para um recurso de computação do Azure Databricks.

Instalar o Driver ODBC OSS do Databricks

  1. Nos arquivos do Driver ODBC OSS do Databricks, baixe o Driver ODBC OSS do Databricks na versão 0.5.0 para o seu sistema operacional e arquitetura.
  2. Instale o pacote baixado:
    • No Windows, extraia o download e execute o MSI de 32 ou 64 bits. O instalador registra o Driver ODBC OSS do Databricks no Gerenciador de Drivers ODBC do Windows.

    • No macOS, execute DatabricksODBC-<version>-macOS.pkg.

    • No Linux, instale o pacote .deb ou .rpm e registre o driver com unixODBC:

      sudo odbcinst -i -d -f /opt/databricks/databricksodbc/Setup/odbcinst.ini
      

As bibliotecas de drivers são instaladas nos mesmos locais da versão 2.x:

  • Windows de 64 bits:C:\Program Files\Databricks ODBC Driver\lib\databricksodbc64.dll
  • Windows de 32 bits:C:\Program Files (x86)\Databricks ODBC Driver\lib\databricksodbc32.dll
  • macOS - /Library/databricks/databricksodbc/lib/libdatabricksodbc.dylib
  • Linux 64-bit: /opt/databricks/databricksodbc/lib/64/libdatabricksodbc64.so
  • Linux 32 bits: /opt/databricks/databricksodbc/lib/32/libdatabricksodbc32.so

Configurar uma conexão

Comece com a cadeia de conexão ou o DSN 2.x existente. Propriedades comuns como Driver, Host, Port, HTTPPath, SSL, Catalog e Schema são compatíveis. O driver também aceita propriedades comuns do 2.x que não são necessárias em seu transporte HTTP para que DSNs existentes possam ser reutilizadas.

Para criar uma DSN ou uma cadeia de conexão sem DSN com essas configurações, veja Criar uma DSN ODBC para o Driver ODBC Databricks ou Criar uma cadeia de conexão sem DSN ODBC para o Driver ODBC Databricks.

Para uma nova conexão, use as propriedades no exemplo a seguir. Para um DSN, insira os mesmos pares chave-valor usando o gerenciador de drivers ODBC.

O exemplo a seguir usa a autenticação OAuth de usuário para máquina (U2M). Quebras de linha estão incluídas para legibilidade. Não inclua na cadeia de conexão:

Driver=<path-to-driver>;
Host=<server-hostname>;
Port=443;
HTTPPath=<http-path>;
SSL=1;
AuthMech=11;
Auth_Flow=2;
Catalog=main;
Schema=default

Há suporte para os seguintes métodos de autenticação:

Método de autenticação Properties
Usuário para máquina (U2M) do OAuth AuthMech=11;Auth_Flow=2. PWD não é obrigatório. O cache persistente de tokens está habilitado por padrão. Configure EnableTokenCache=0 para desabilitá-lo, ou configure TokenCachePassPhrase para usar uma senha ao criptografar o cache.
OAuth de máquina para máquina (M2M) AuthMech=11;Auth_Flow=1;Auth_Client_ID=<client-id>;Auth_Client_Secret=<client-secret>.
Passagem de token OAuth AuthMech=11;Auth_Flow=0;Auth_AccessToken=<oauth-token>.
Token de acesso pessoal do Azure Databricks AuthMech=3;UID=token;PWD=<personal-access-token>.

Migrar da versão 2.x

  1. Examine as limitações conhecidas dos recursos usados pelo aplicativo.
  2. Grave a versão 2.x instalada e faça backup dos DSNs, strings de conexão e arquivos de configuração do driver.
  3. Instale o driver ODBC do Databricks OSS.
  4. Reutilize a cadeia de conexão ou o DSN existente.
  5. Criação de conexões de teste, descoberta de metadados, instruções preparadas, associação de parâmetros, cancelamento, recuperação de grandes resultados e fluxos de trabalho representativos de aplicativos.

O Driver ODBC OSS do Databricks pode relatar nomes de tipos do Databricks mais específicos e escala e precisão decimais declaradas mais específicos do que a versão 2.x. Valide os aplicativos que comparam valores de metadados de forma exata.

Para reverter após substituir uma instalação, reinstale o pacote 2.x necessário e restaure a configuração de backup.

Limitações conhecidas

As seguintes limitações se aplicam enquanto o driver estiver na versão Beta:

  • O driver dá suporte ao warehouses Lakehouse//RT e SQL do Databricks. Ele não dá suporte à Computação para Todas as Finalidades.
  • O SQL é sempre enviado diretamente para o Azure Databricks. O driver não realiza a conversão para SQL-92 disponível na versão 2.x. UseNativeQuery é aceito quanto à compatibilidade, mas não altera o comportamento.
  • Não há suporte para a execução assíncrona por meio de SQL_ATTR_ASYNC_ENABLE e SQLCompleteAsync.
  • Não há suporte para as operações PUT, GET e REMOVE para arquivos em volumes do Unity Catalog.
  • Não há suporte para os parâmetros de entrada binários.
  • Há suporte para as matrizes de parâmetro, incluindo pyodbc fast_executemany com valores de cadeia de caracteres e Unicode, mas o driver envia uma solicitação de execução por linha.
  • Resultados grandes usam Busca na Nuvem automaticamente e não podem ser forçados no modo embutido. A recuperação de resultados dá suporte aos tipos de dados SQL do Databricks exceto FILE e OBJECT. Os valores complexos são retornados como texto.
  • Os proxies HTTPS dão suporte à autenticação básica, mas não a autenticação Kerberos ou SPNEGO.
  • Configuração de revogação de certificados e chaves privadas TLS mútuas criptografadas não são suportadas.
  • Não há suporte para algumas propriedades avançadas 2.x. O driver registra em log um aviso quando uma propriedade não é aplicada.