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の互換性を持つ代替として設計されています。 既存のアプリケーション、DSN、共通の2.x機能を使用する接続文字列は、一般的に変更なしで動作するはずです。

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 Driver archiveで、お使いのオペレーティングシステムとアーキテクチャに対応する Databricks OSS ODBC Driver バージョン 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型名や宣言された10進精度・スケールを報告できます。 メタデータの値を正確に比較するアプリケーションを検証しましょう。

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

既知の制限事項

ドライバーがベータ中は以下の制限が適用されます:

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