Databricks JDBC ドライバーを使用して Databricks への接続を構成する
このページでは、Databricks JDBCドライバー(バージョン3以降)を使用してDatabricksへの接続を設定する方法について説明します。
接続を構成する
JDBCドライバーを使用して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 要素またはプロパティ | 説明 |
|---|---|
| Databricks コンピュート リソースのサーバー ホスト名の値。 |
| Databricks コンピュート リソースのポート値。デフォルト値は |
| スキーマの名前。または、 |
| Databricks コンピュート リソースの HTTP パス値。コネクタは、接続 URL で指定されたホストとポートに |
クラスター JDBCのDatabricks 接続URLを取得するには:
- Databricksワークスペースにログインします。
- サイドバーで「 コンピュート 」をクリックし、ターゲットのクラスターの名前をクリックします。
- 構成 タブで、 詳細オプション を展開します。
- 「JDBC/ODBC」 タブをクリックします。
- JDBC 接続 URL として使用する JDBC URL をコピーするか、[ サーバーホスト名 ]、[ ポート ]、および [HTTP パス ] フィールドの値から URL を作成します。
Databricks SQL ウェアハウスの JDBC 接続 URL を取得するには、次のようにします。
- Databricksワークスペースにログインします。
- サイドバーで「 SQLウェアハウス 」をクリックし、対象のウェアハウスの名前をクリックします。
- 接続の詳細 タブをクリックします。
- JDBC 接続 URL として使用する JDBC URL をコピーするか、[ サーバーホスト名 ]、[ ポート ]、および [HTTP パス ] フィールドの値から URL を作成します。
クエリタグを設定する
プレビュー
この機能はプライベートプレビュー段階です。アクセスをリクエストするには、アカウント チームにお問い合わせください。
追跡と分析の目的で、 SQLクエリに key-value タグを添付します。 タグは、クエリの識別と分析のために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を設定します。- プロキシサーバーで認証するには、次のいずれかの方法を選択してください。
- 基本 :
ProxyAuth=1、ProxyUID、ProxyPWDを設定します。 - SPNEGO (Kerberos 環境): システム レベルで Kerberos プリンシパルを認証してから、
ProxyAuth=2を設定します。
- 基本 :
クラウドフェッチ用のプロキシを構成する
Cloud Fetch には、メイン ドライバー接続とは別のプロキシ構成が必要です。 クラウド Fetch トラフィックをプロキシ経由でルーティングするには、 UseCFProxy 、 CFProxyHost 、 CFProxyPort 、 CFProxyAuth 、 CFProxyUID 、およびCFProxyPwd接続プロパティを使用します。 サポートされている接続プロパティを参照してください。
Cloud Fetch は、結果ファイルをAmazon S3から直接ダウンロードします。 クライアントマシンはワークスペースのルートS3バケットへのネットワークアクセスが必要であり、プロキシおよびファイアウォールルールは*.s3.amazonaws.comへのHTTPSトラフィックを許可する必要があります。
トラブルシューティング
プロキシの問題を解決できない場合は、 EnableQueryResultDownload=0を設定してクラウド Fetch を無効にし、直接ダウンロードに切り替えてください。
パフォーマンスの問題を診断するには、 LogLevel=4を設定してINFOレベルのログ記録を有効にしてください。ドライバはチャンクごとにダウンロード速度をログに記録するため、結果セットが大きい場合は複数のログ行が生成されます。
CloudFetch download speed: 21.24 MB/s
CloudFetch download speed: 20.60 MB/s
ダウンロード速度が約1MB/秒を下回ると、ドライバーは警告をログに記録します。対数成分はcom.databricks.client.spark.jdbc.ResultFileDownloadHandlerです。ダウンロードが遅い、または停止している場合は、 CloudFetchThreadPoolSizeを増やして、より多くのファイルチャンクを並行してダウンロードしてください。
SSL の設定
Databricksに接続する場合SSLが有効になっている場合は、コネクタをSSL対応ソケットに接続するように設定してください。 このコネクタは、サーバーの身元を確認するために一方向認証を使用します。
一方向認証には、署名済みの信頼できるSSL証明書が必要です。コネクタを設定して、特定のトラストストアにアクセスできるようにします。TrustStoreを指定しない場合、コネクタはデフォルトのJava TrustStore(jssecacerts)を使用します。jssecacertsが利用できない場合は、cacertsを使用します。
SSL を設定するには:
SSL=1と設定します。- デフォルトのJava TrustStoreを使用していない場合は、カスタムTrustStoreを設定してください。
- 署名済みの信頼できるサーバー証明書を含むトラストストアを作成します。
SSLTrustStoreに TrustStore のフルパスを設定してください。- TrustStoreのパスワードを
SSLTrustStorePwdに設定してください。 - TrustStore が JKS TrustStore でない場合は、
SSLTrustStoreTypeBCFKS(BouncyCastle FIPS Keystore) またはPKCS12に設定します。
証明書の失効戦略を変更するには、次のプロパティを設定します。
CheckCertRevocation: 失効した証明書を受け入れるには、0に設定します。デフォルト値は1です。AcceptUndeterminedRevocation: 未確定の失効状態の証明書を受け入れるには、1に設定します (たとえば、CRLDP に到達できない場合やタイムアウトした場合)。デフォルト値は0です。
ドライバーを認証する
JDBCドライバの認証設定に関する情報については、 「Databricks JDBCドライバの認証設定」を参照してください。