Databricks OSS ODBCドライバ

Important

Databricks OSS ODBC ドライバー (バージョン 0.5.0) は、ベータ版です。 一般に提供されているバージョン2.xドライバの詳細については、 DatabricksのODBCドライバドキュメントをご覧ください。

ドライバーがベータ版である間に、問題を報告したり機能をリクエストする場合は、Databricksのアカウントチームにご連絡ください。

Databricks OSS ODBCドライバーは、Databricks SQLおよび Lakehouse//RT ウェアハウス向けのODBC 3.8ドライバです。 サポート対象のワークロードにおいて、Databricks ODBC ドライバー バージョン 2.x の互換性のある代替として機能するよう設計されています。 一般的な 2.x の機能を使用している既存のアプリケーション、DSN、接続文字列は、通常、変更を加えることなく動作するはずです。

Requirements

Databricks OSS ODBCドライバーおよびDatabricks ODBCドライバーバージョン2.xは、登録済みODBCドライバー名、パッケージ識別子、インストールパス、ライブラリ名を同じに使用しています。 あるバージョンを別のバージョンに上書きインストールすると、既存のインストールが置き換えられます。 ドライバーを切り替えるには、使用したいバージョンのパッケージを再インストールしてください。

Databricks OSS ODBC ドライバーは、以下のプラットフォームに対応しています:

オペレーティング システム パッケージとアーキテクチャ 要件
ウィンドウズ x64 および x86 用 MSI ドライバのアーキテクチャは、アプリケーションのアーキテクチャと一致している必要があります。
macOS IntelおよびAppleシリコンのユニバーサル.pkg macOS 13.3以上です。
リナックス .debと.rpm(x86_64、aarch64、i686 向け) glibc 2.28以上および互換性のあるODBCドライバーマネージャー

また、Databricks SQL または Lakehouse//RT ウェアハウスについては、サーバーのホスト名と HTTP パスも必要です。 「Azure Databricks コンピューティング リソースの接続の詳細を取得する」を参照してください。

Databricks OSS ODBC ドライバーのインストール

  1. Databricks OSS ODBC ドライバーのアーカイブから、ご利用のオペレーティング システムとアーキテクチャに対応した Databricks OSS ODBC ドライバー バージョン 0.5.0 をダウンロードしてください。
  2. ダウンロードしたパッケージをインストールします:
    • Windows では、ダウンロードしたファイルを解凍し、32 ビット版または 64 ビット版の MSI を実行してください。 インストーラーはWindowsのODBCドライバーマネージャーにDatabricks ODBCドライバーを登録します。

    • macOS では DatabricksODBC-<version>-macOS.pkg を実行します。

    • Linuxでは、 .deb または .rpm パッケージをインストールし、ドライバーをunixODBCに登録してください:

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

ドライバーライブラリはバージョン2.xと同じ場所にインストールされています:

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

接続を構成する

まず、既存の 2.x DSN または接続文字列を使用します。 Driver、Host、Port、HTTPPath、SSL、Catalog、Schema などの共通のプロパティは互換性があります。 また、このドライバはHTTPトランスポートで不要な共通の2.xプロパティも受け入れており、既存のDSNを再利用できるようにしています。

これらの設定でDSNまたはDSNレス接続文字列を作成するには、Databricks ODBCドライバー用のODBC DSNを作成するか、Databricks ODBCドライバー用のODBC DSNレス接続文字列を作成するを参照してください。

新しい接続を作成する場合は、たとえば次の例のプロパティを使用してください。 DSNの場合は、ODBCドライバーマネージャーで同じキーと値のペアを入力します。

次の例では、OAuth のユーザーからマシンへの (U2M) 認証を使用しています。 読みやすさのために改行も含まれています。 接続文字列にはこれらを含めないでください:

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

次の認証方法がサポートされています:

認証方法 プロパティ
OAuth ユーザーからマシンへの接続 (U2M) AuthMech=11;Auth_Flow=2。 PWD は必須ではありません。 永続トークンキャッシュはデフォルトで有効です。 EnableTokenCache=0 に設定すると無効になり、TokenCachePassPhrase に設定するとキャッシュの暗号化時にパス フレーズが使用されます。
OAuth 複数マシン間 (M2M) AuthMech=11;Auth_Flow=1;Auth_Client_ID=<client-id>;Auth_Client_Secret=<client-secret>。
OAuthトークンパススルー AuthMech=11;Auth_Flow=0;Auth_AccessToken=<oauth-token>。
Azure Databricks の個人用アクセス トークン AuthMech=3;UID=token;PWD=<personal-access-token>。

バージョン2.xからの移行

  1. アプリケーションで使用される機能の 既知の制限 を確認してください。
  2. インストール済みの2.xバージョンを記録し、DSN、接続文字列、ドライバーの設定ファイルをバックアップしてください。
  3. Databricks OSS ODBC ドライバーをインストールする。
  4. 既存の DSN または接続文字列を再利用してください。
  5. 接続の作成、メタデータの検出、準備済みのステートメント、パラメーターのバインド、キャンセル、大規模な結果の取得、代表的なアプリケーションのワークフローをテストします。

Databricks OSS ODBC ドライバーは、2.x よりも詳細な Databricks の型名や、宣言された小数点以下の桁数とスケールを報告できます。 メタデータの値が完全に一致するアプリケーションを検証しましょう。

インストールを置き換えた後にロールバックするには、必要な2.xパッケージを再インストールし、バックアップした構成を復元してください。

既知の制限事項

ドライバーがベータ版である間は、以下の制限が適用されます:

  • このドライバーは、Databricks SQL および Lakehouse//RT ウェアハウスをサポートしています。 All-Purpose Compute には対応していません。
  • SQL は常に Azure Databricks に直接送信されます。 このドライバーは2.xで利用可能なSQL-92変換を実行しません。 UseNativeQuery は互換性のために受け入れられますが、動作は変わりません。
  • SQL_ATTR_ASYNC_ENABLE と SQLCompleteAsync による非同期実行はサポートされていません。
  • Unity Catalog ボリューム内のファイルに対する PUT、GET、REMOVE の操作はサポートされていません。
  • バイナリ パラメーターはサポートされていません。
  • 文字列や Unicode 値を含むパラメーター配列 (pyodbc fast_executemany を含む) はサポートされていますが、ドライバーは行ごとに 1 つの実行要求を送信します。
  • 大規模な検索結果では、自動的に Cloud Fetch が使用されるため、インライン表示を強制できません。 結果の取得では、FILE と OBJECT を除く Databricks SQL のデータ型がサポートされています。 複素数はテキストとして返されます。
  • HTTPSプロキシは基本的な認証をサポートしていますが、KerberosやSPNEGO認証はサポートしていません。
  • 証明書取り消しの設定や暗号化された相互TLS秘密鍵はサポートされていません。
  • 一部の高度な 2.x プロパティはサポートされていません。 プロパティが適用されていない場合、ドライバーは警告を記録します。