Pilote Databricks OSS ODBC

Important

Le pilote ODBC de Databricks OSS, version 0.5.0, est en version Bêta. Pour des informations sur le pilote 2.x généralement disponible, consultez la documentation du pilote ODBC Databricks.

Pour signaler un problème ou demander une fonctionnalité pendant que le pilote est en bêta, contactez votre équipe de compte Databricks.

Le pilote ODBC OSS Databricks est un pilote ODBC 3.8 pour les entrepôts SQL, Databricks et Lakehouse//RT. Il est conçu pour servir de remplacement compatible au Databricks ODBC Driver version 2.x pour les charges de travail prises en charge. Les applications existantes, les DSN et les chaînes de connexion qui utilisent les fonctionnalités 2.x communes devraient généralement fonctionner sans modification.

Exigences

Le pilote Databricks OSS ODBC et le pilote Databricks ODBC version 2.x utilisent le même nom de pilote ODBC enregistré, identifiants de paquet, chemins d'installation et noms de bibliothèque. Installer une version plutôt qu'une autre remplace l'installation existante. Pour changer de pilote, réinstallez le package de la version que vous souhaitez utiliser.

Le pilote Databricks OSS ODBC est pris en charge sur les plateformes suivantes :

Système d'exploitation Package et architecture Requirement
Windows MSI pour x64 et x86 L'architecture du pilote doit correspondre à celle de l'application.
macOS Universel .pkg pour Intel et Apple Silicon macOS 13.3 ou version ultérieure.
Linux .deb et .rpm pour x86_64, aarch64 et i686 glibc 2.28 ou version ultérieure et un gestionnaire de pilotes ODBC compatible.

Vous avez aussi besoin du nom d'hôte serveur et du chemin HTTP pour un entrepôt SQL Databricks ou Lakehouse//RT. Consultez les détails de connexion pour une ressource de calcul Azure Databricks.

Installez le pilote ODBC Databricks OSS

  1. Sur l'archive du pilote Databricks OSS ODBC, téléchargez le pilote Databricks OSS ODBC version 0.5.0 pour votre système d'exploitation et votre architecture.
  2. Installez le package téléchargé :
    • Sous Windows, extrayez le téléchargement et lancez le MSI 32 ou 64 bits. Le programme d'installation enregistre Databricks ODBC Driver auprès du Gestionnaire de pilotes ODBC de Windows.

    • Sur macOS, exécutez DatabricksODBC-<version>-macOS.pkg.

    • Sous Linux, installez le package .deb ou .rpm et enregistrez le pilote avec unixODBC :

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

Les bibliothèques de pilotes sont installées aux mêmes emplacements que la version 2.x :

  • Windows 64 bits : C:\Program Files\Databricks ODBC Driver\lib\databricksodbc64.dll
  • Windows 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-bit : /opt/databricks/databricksodbc/lib/32/libdatabricksodbc32.so

Configurer une connexion

Commencez par votre DSN 2.x existant ou votre chaîne de connexion existante. Les propriétés courantes telles que Driver, Host, Port, HTTPPath, SSL, Catalog et Schema sont compatibles. Le pilote accepte également des propriétés 2.x courantes qui ne sont pas nécessaires pour son transport HTTP, afin que les DSN existants puissent être réutilisés.

Pour créer un DSN ou une chaîne de connexion sans DSN avec ces paramètres, consultez Créer un DSN ODBC pour le pilote ODBC Databricks ou Créer une chaîne de connexion ODBC sans DSN pour le pilote ODBC Databricks.

Pour une nouvelle connexion, utilisez les propriétés de l'exemple suivant. Pour un DSN, saisissez les mêmes paires clé-valeur dans votre gestionnaire de pilotes ODBC.

L'exemple suivant utilise l'authentification OAuth utilisateur-machine (U2M). Les sauts de ligne sont inclus pour améliorer la lisibilité. Ne les incluez pas dans la chaîne de connexion :

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

Les méthodes d’authentification suivantes sont prises en charge :

Méthode d’authentification Properties
OAuth utilisateur-à-machine (U2M) AuthMech=11;Auth_Flow=2. PWD n'est pas requis. La mise en cache persistante des jetons est activée par défaut. Configurez EnableTokenCache=0 pour la désactiver, ou définissez TokenCachePassPhrase afin d'utiliser une phrase secrète lors du chiffrement du cache.
OAuth de machine à machine (M2M) AuthMech=11;Auth_Flow=1;Auth_Client_ID=<client-id>;Auth_Client_Secret=<client-secret>.
Transmission du jeton OAuth AuthMech=11;Auth_Flow=0;Auth_AccessToken=<oauth-token>.
Jeton d’accès personnel Azure Databricks AuthMech=3;UID=token;PWD=<personal-access-token>.

Migration depuis la version 2.x

  1. Examinez les limitations connues des fonctionnalités utilisées par votre application.
  2. Notez la version 2.x installée et sauvegardez vos DSN, vos chaînes de connexion et vos fichiers de configuration des pilotes.
  3. Installez le pilote ODBC Databricks.
  4. Réutilisez votre DSN ou votre chaîne de connexion existants.
  5. Création de connexion de test, découverte de métadonnées, instructions préparées, liaison de paramètres, annulation, récupération de gros résultats et flux de travail représentatifs applicatifs.

Le pilote ODBC OSS Databricks peut rapporter des noms de types de Databricks plus spécifiques et une précision et échelle décimales déclarées que la version 2.x. Validez les applications qui comparent précisément les valeurs des métadonnées.

Pour revenir en arrière après avoir remplacé une installation, réinstallez le package 2.x requis et restaurez la configuration sauvegardée.

Limitations connues

Les limitations suivantes s'appliquent pendant que le pilote est en version Bêta :

  • Le pilote prend en charge les entrepôts Databricks SQL et Lakehouse//RT. Il ne supporte pas le calcul à usage général.
  • SQL est toujours envoyé directement à Azure Databricks. Le pilote n’effectue pas la traduction SQL-92 disponible dans la version 2.x. UseNativeQuery est accepté pour la compatibilité mais ne modifie pas le comportement.
  • L'exécution asynchrone via SQL_ATTR_ASYNC_ENABLE et SQLCompleteAsync n'est pas prise en charge.
  • Les opérations PUT, GET et REMOVE pour les fichiers dans les volumes du catalogue Unity ne sont pas prises en charge.
  • Les paramètres d'entrée binaire ne sont pas pris en charge.
  • Les tableaux de paramètres, y compris pyodbc fast_executemany avec des chaînes de caractères et des valeurs Unicode, sont pris en charge, mais le pilote envoie une requête d’exécution par ligne.
  • Les gros résultats utilisent automatiquement Cloud Fetch et ne peuvent pas être forcés en ligne. La récupération des résultats prend en charge les types de données SQL Databricks sauf FILE et OBJECT. Les valeurs complexes sont retournées sous forme de texte.
  • Les proxys HTTPS supportent l'authentification basique, mais pas l'authentification Kerberos ni SPNEGO.
  • La configuration de la révocation de certificat et les clés privées mutuelles TLS chiffrées ne sont pas prises en charge.
  • Certaines propriétés avancées 2.x ne sont pas prises en charge. Le pilote consigne un avertissement lorsqu'une propriété n'est pas appliquée.