メインコンテンツまでスキップ

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 クラスまたは組み合わせを使用して設定を指定します。

Java
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);
Java
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>

Databricks コンピュート リソースのサーバー ホスト名の値。

<port>

Databricks コンピュート リソースのポート値。デフォルト値は 443です。

<schema>

スキーマの名前。または、 ConnSchemaプロパティを設定してください。サポートされている接続プロパティを参照してください。

httpPath

Databricks コンピュート リソースの HTTP パス値。コネクタは、接続 URL で指定されたホストとポートに httpPath 値を付加して、接続先の HTTP アドレスを形成します。たとえば、HTTP アドレス http://localhost:10002/cliserviceに接続するには、次の接続 URL を使用します。 jdbc:databricks://localhost:10002;httpPath=cliservice

クラスター JDBCのDatabricks 接続URLを取得するには:

  1. Databricksワークスペースにログインします。
  2. サイドバーで「 コンピュート 」をクリックし、ターゲットのクラスターの名前をクリックします。
  3. 構成 タブで、 詳細オプション を展開します。
  4. 「JDBC/ODBC」 タブをクリックします。
  5. JDBC 接続 URL として使用する JDBC URL をコピーするか、[ サーバーホスト名 ]、[ ポート ]、および [HTTP パス ] フィールドの値から URL を作成します。

Databricks SQL ウェアハウスの JDBC 接続 URL を取得するには、次のようにします。

  1. Databricksワークスペースにログインします。
  2. サイドバーで「 SQLウェアハウス 」をクリックし、対象のウェアハウスの名前をクリックします。
  3. 接続の詳細 タブをクリックします。
  4. 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=1UseSystemProxy=1を設定します。

プロキシ設定を手動で構成するには:

  1. UseProxy=1と設定します。
  2. ProxyHostProxyPortProxyIgnoreListを設定します。
  3. プロキシサーバーで認証するには、次のいずれかの方法を選択してください。
    • 基本 : ProxyAuth=1ProxyUIDProxyPWDを設定します。
    • SPNEGO (Kerberos 環境): システム レベルで Kerberos プリンシパルを認証してから、 ProxyAuth=2を設定します。

クラウドフェッチ用のプロキシを構成する

Cloud Fetch には、メイン ドライバー接続とは別のプロキシ構成が必要です。 クラウド Fetch トラフィックをプロキシ経由でルーティングするには、 UseCFProxyCFProxyHostCFProxyPortCFProxyAuthCFProxyUID 、および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 を設定するには:

  1. SSL=1と設定します。
  2. デフォルトのJava TrustStoreを使用していない場合は、カスタムTrustStoreを設定してください。
    • 署名済みの信頼できるサーバー証明書を含むトラストストアを作成します。
    • SSLTrustStoreに TrustStore のフルパスを設定してください。
    • TrustStoreのパスワードをSSLTrustStorePwdに設定してください。
    • TrustStore が JKS TrustStore でない場合は、 SSLTrustStoreType BCFKS (BouncyCastle FIPS Keystore) またはPKCS12に設定します。

証明書の失効戦略を変更するには、次のプロパティを設定します。

  • CheckCertRevocation: 失効した証明書を受け入れるには、 0に設定します。デフォルト値は1です。
  • AcceptUndeterminedRevocation: 未確定の失効状態の証明書を受け入れるには、 1に設定します (たとえば、CRLDP に到達できない場合やタイムアウトした場合)。デフォルト値は0です。

ドライバーを認証する

JDBCドライバの認証設定に関する情報については、 「Databricks JDBCドライバの認証設定」を参照してください。