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ドライバーをインストールしてください
- Databricks OSS ODBC Driver archiveで、お使いのオペレーティングシステムとアーキテクチャに対応する Databricks OSS ODBC Driver バージョン 0.5.0 をダウンロードしてください。
- ダウンロードしたパッケージをインストールしてください:
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からの移行
- アプリケーションで使用される機能の 既知の制限 を確認してください。
- インストール済みの2.xバージョンを記録し、DSN、接続文字列、ドライバーの設定ファイルをバックアップしてください。
- Databricks OSS ODBC ドライバーをインストールする。
- 既存のDSNや接続文字列を再利用してください。
- 接続作成、メタデータ発見、準備済み文、パラメータバインディング、キャンセル、大規模結果取得、代表的なアプリケーションワークフローのテスト。
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プロパティはサポートされていません。 保険が適用されていない場合、運転者は警告を記録します。