このページでは、 Databricks JDBC Driver バージョン 3 以降を使用して Databricks への接続を構成する方法について説明します。
接続を構成する
JDBC ドライバーを使用して Azure Databricks ワークスペースに接続するには、ワークスペースのサーバー ホスト名、コンピューティング リソース設定、認証資格情報などの接続設定を指定する必要があります。
注
JDBC ドライバーは、ジョブ コンピューティングへの接続をサポートしていません。
これらのプロパティを JDBC 接続 URL に設定するか、 DriverManager.getConnection メソッドに渡すか、両方を組み合わせて使用します。 特定のアプリ、クライアント、SDK、API、または SQL ツールを使用して接続するのに最適な方法については、プロバイダーのドキュメントを参照してください。
JDBC 接続 URL の形式は以下に従う必要があります。 プロパティの大文字と小文字は区別されません。
jdbc:databricks://<server-hostname>:<port>/<schema>;[property1]=[value];[property2]=[value];...
この代わりに、java.util.Properties クラスまたは組み合わせによって設定を指定することもできます。
String url = "jdbc:databricks://<server-hostname>:<port>/<schema>";
Properties properties = new java.util.Properties();
properties.put("<property1>", "<value1");
properties.put("<property2>", "<value2");
// ...
Connection conn = DriverManager.getConnection(url, properties);
String url = "jdbc:databricks://<server-hostname>:<port>/<schema>;[property1]=[value];[property2]=[value];";
Connection conn = DriverManager.getConnection(url, "token", "12345678901234667890abcdabcd");
接続 URL 要素については、以下の表で説明するとおりです。
認証プロパティ、SQL 構成プロパティ、ログ プロパティなど、追加のプロパティについては、「 サポートされている接続プロパティ」を参照してください。
注
URL 要素とプロパティの大文字と小文字は区別されません。
| URL 要素またはプロパティ | 説明 |
|---|---|
<server-hostname> |
Azure Databricks コンピューティング リソースのサーバー ホスト名の値。 |
<port> |
Azure Databricks のコンピューティングリソースにおけるポートの値。 既定値は 443 です。 |
<schema> |
スキーマの名前です。 または、 ConnSchema プロパティを設定します。
サポートされている接続プロパティを参照してください。 |
httpPath |
Azure Databricks コンピューティング リソースの HTTP パス値。 コネクタは、接続 URL で指定されたホストとポートに httpPath 値を付加することで、接続先の HTTP アドレスを形成します。 たとえば、HTTP アドレス http://localhost:10002/cliservice に接続するための接続 URL は次のようなものになります: jdbc:databricks://localhost:10002;httpPath=cliservice |
Azure Databricks クラスターの JDBC 接続 URL を取得するには、以下のようにします。
- Azure Databricks ワークスペースにログインします。
- サイドバーで、[ コンピューティング] をクリックし、ターゲット クラスターの名前をクリックします。
- [構成] タブで、[詳細オプション] を展開します。
- [JDBC/ODBC] タブをクリックします。
- JDBC 接続 URL として使用する JDBC URL をコピーするか、サーバー ホスト名、ポート、および HTTP パス フィールドの値から URL を作成します。
Databricks SQL ウェアハウスの JDBC 接続 URL を取得するには、以下のようにします。
- Azure Databricks ワークスペースにログインします。
- サイドバーで、[ SQL Warehouses] をクリックし、ターゲット ウェアハウスの名前をクリックします。
- [接続の詳細] タブをクリックします。
- JDBC 接続 URL として使用する JDBC URL をコピーするか、サーバー ホスト名、ポート、および HTTP パス フィールドの値から URL を作成します。
クエリ タグを構成する
Important
この機能は、プライベート プレビューにあります。 アクセス権を要求するには、アカウント チームにお問い合わせください。
追跡と分析のために、SQL クエリにキー値タグをアタッチします。 クエリの識別と分析のために、 system.query.history テーブルにタグが表示されます。
接続にクエリ タグを追加するには、JDBC URL に query_tags プロパティを含めます。
jdbc:databricks://<server-hostname>:<port>/<schema>;query_tags=key1:value1,key2:value2
クエリ タグでは、コンマ区切りのキーと値のペア形式が使用されます。
-
query_tags=key:value(単一タグ) -
query_tags=key1:value1,key2:value2,key3:value3(複数のタグ)
プロキシ接続を構成する
Databricks に直接接続するのではなく、プロキシ サーバー経由で接続するようにコネクタを構成します。 コネクタは、プロキシ サーバー経由で接続するときの基本認証と SPNEGO 認証をサポートします。 サポートされている接続プロパティを参照してください。
システム レベルのプロキシ設定を使用するには、 UseProxy=1 と UseSystemProxy=1を設定します。
プロキシ設定を手動で構成するには:
-
UseProxy=1を設定します。 -
ProxyHost、ProxyPort、およびProxyIgnoreListを設定します。 - プロキシ サーバーで認証するには、次の 1 つの方法を選択します。
-
基本:
ProxyAuth=1、ProxyUID、およびProxyPWDを設定します。 -
SPNEGO (Kerberos 環境): システム レベルで Kerberos プリンシパルを認証し、
ProxyAuth=2設定します。
-
基本:
Cloud Fetch のプロキシを構成する
クラウド フェッチには、メイン ドライバー接続とは別のプロキシ構成が必要です。
UseCFProxy、CFProxyHost、CFProxyPort、CFProxyAuth、CFProxyUID、CFProxyPwdの接続プロパティを使用して、Cloud Fetch トラフィックをプロキシ経由でルーティングします。
サポートされている接続プロパティを参照してください。
ネットワークがプライベートの場合は、 *.blob.core.windows.net と *.store.core.windows.net を許可し、必要な 証明書のダウンロードと失効 を許可リストに追加します。
Troubleshooting
プロキシの問題を解決できない場合は、 EnableQueryResultDownload=0 を設定して Cloud Fetch を無効にし、直接ダウンロードにフォールバックします。
パフォーマンスの問題を診断するには、INFO レベルのログ記録を有効にするように LogLevel=4 を設定します。 ドライバーはチャンクごとのダウンロード速度をログに記録するため、大きな結果セットでは複数のログ行が生成されます。
CloudFetch download speed: 21.24 MB/s
CloudFetch download speed: 20.60 MB/s
ダウンロード速度が約 1 MB/秒を下回ると、ドライバーによって警告が記録されます。 ログ コンポーネントが com.databricks.client.spark.jdbc.ResultFileDownloadHandler。 ダウンロードが遅い場合やストールしている場合は、 CloudFetchThreadPoolSize を増やして、並列でより多くのファイル チャンクをダウンロードします。
SSL の構成
SSL が有効な Databricks ワークスペースに接続している場合は、SSL 対応ソケットに接続するようにコネクタを構成します。 コネクタは、一方向認証を使用してサーバーの ID を確認します。
一方向認証には、署名された信頼された SSL 証明書が必要です。 特定の TrustStore にアクセスするようにコネクタを構成します。 TrustStore を指定しない場合、コネクタは既定の Java TrustStore (jssecacerts) を使用し、jssecacerts が使用できない場合は cacerts を使用します。
SSL を構成するには:
-
SSL=1を設定します。 - 既定の Java TrustStore を使用していない場合は、カスタムストアを構成します。
- 署名された信頼されたサーバー証明書を含む TrustStore を作成します。
-
SSLTrustStoreを TrustStore の完全なパスに設定します。 -
SSLTrustStorePwdを TrustStore パスワードに設定します。 - TrustStore が JKS TrustStore でない場合は、
SSLTrustStoreTypeをBCFKS(バウンスキャッスル FIPS キーストア) またはPKCS12に設定します。
証明書失効戦略を変更するには、次のプロパティを設定します。
-
CheckCertRevocation: 失効した証明書を受け入れる0に設定します。 既定値は、1です。 -
AcceptUndeterminedRevocation:未確定の失効状態の証明書を受け入れるように1に設定します (CRLDP に到達できない場合やタイムアウトした場合など)。 既定値は、0です。
ドライバーを認証する
JDBC ドライバーの認証の構成については、 Databricks JDBC ドライバーの認証設定を参照してください。