Databricks JDBC Driver (OSS) を使用して Databricks への接続を構成する
この記事では、 Databricks JDBC Driver (OSS) を使用して Databricks への接続を構成する方法について説明します。
接続を構成する
Databricksドライバーを使用して ワークスペースに接続するには、JDBC Databricksワークスペースのサーバーホスト名、コンピュート リソース設定、ワークスペースに接続するための認証資格情報など、さまざまな接続設定を指定する必要があります。
これらのプロパティの値は、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 を作成します。
プロキシ接続を構成する
Databricks に直接接続する代わりに、プロキシ サーバー経由で接続するようにコネクタを構成できます。プロキシー・サーバー経由で接続する場合、コネクターは基本認証と SPNEGO 認証をサポートします。
プロキシ接続を設定するには:
UseProxy
プロパティを 1 に設定します。- システム レベルでプロキシ設定を構成するには、
UseSystemProxy
プロパティを 1 に設定し、それ以外の場合は次のようにドライバーに設定します。ProxyHost
プロパティをプロキシ サーバーの IP アドレスまたはホスト名に設定します。ProxyPort
プロパティを、プロキシー・サーバーがクライアント接続を listen するために使用するポートに設定します。ProxyIgnoreList
プロパティをコンマ区切りのホスト名に設定します。- プロキシサーバーで認証します。
-
基本認証を使用するには
ProxyAuth
プロパティを 1 に設定します。ProxyUID
プロパティを、サーバーにアクセスするためのユーザー名に設定します。ProxyPWD
プロパティを、サーバーにアクセスするためのパスワードに設定します。
-
SPNEGO 認証を使用するには、次のようにします。
- Kerberos プリンシパルをシステム・レベルで認証します。
ProxyAuth
プロパティを 2 に設定します。
-
CloudFetch専用の別のプロキシを使用するには、次のプロパティを使用して上記の手順に従います: UseCFProxy
、 CFProxyHost
、 CFProxyPort
、 CFProxyAuth
、 CFProxyUID
、 CFProxyPwd
SSL の設定
Secure Sockets Layer (SSL) が有効になっている Databricks に接続する場合は、SSL が有効なソケットに接続するようにコネクタを構成できます。SSL 経由でサーバーに接続する場合、コネクタは一方向認証を使用してサーバーの ID を確認します。
一方向認証では、サーバーの ID を確認するために、署名された信頼できる SSL 証明書が必要です。適切な証明書を含む特定のトラストストアにアクセスするようにコネクタを構成できます。TrustStore を指定しない場合、コネクタは jssecacerts という名前のデフォルトの Java TrustStore を使用します。jssecacerts が使用できない場合、コネクタは代わりに cacerts を使用します。
SSL を設定するには:
- SSL プロパティを 1 に設定します。
- デフォルトの Java トラストストアの 1 つを使用していない場合は、トラストストアを作成し、それを使用するようにコネクタを設定します。
- 署名済みの信頼できるサーバー証明書を含むトラストストアを作成します。
- SSLTrustStore プロパティを TrustStore の絶対パスに設定します。
- SSLTrustStorePwd プロパティを、TrustStore にアクセスするためのパスワードに設定します。
- TrustStore が JKS TrustStore でない場合は、SSLTrustStoreType プロパティを正しいタイプに設定します。サポートされているタイプは次のとおりです。
- SSLTrustStoreType=BCFKS (BouncyCastle FIPSキーストア)
- SSLTrustStoreType=PKCS12 (公開鍵暗号規格 #12)
場合によっては、証明書失効戦略を変更する場合、コネクタには次のパラメーターが用意されています。
- CheckCertRevocation プロパティを 0 に設定すると、失効した証明書を受け入れます (プロパティのデフォルト値は 1 です)
- AcceptUndeterminedRevocation プロパティを 1 に設定すると、証明書の失効ステータスを識別できない (CRLDP が到達不能/タイムアウトなど) 証明書を受け入れ、このプロパティのデフォルト値は 0 です
ドライバーを認証する
JDBC ドライバー接続は、次のいずれかの認証メカニズムを使用して認証できます。
OAuth ユーザー間 (U2M) 認証
JDBC ドライバーは、リアルタイムの人間によるサインインと、ターゲットの Databricks ユーザー アカウントの認証に同意するための OAuth ユーザー間 (U2M) 認証をサポートしています。これは、 ブラウザベースの OAuth 認証とも呼ばれます。
Databricks は、顧客向けの OAuth クライアント ID databricks-sql-jdbc
を作成しました。これは、JDBC ドライバーで使用されるデフォルトの OAuth クライアント ID でもあります。OAuth U2M 認証を設定するには、既存の JDBC 接続 URL または java.util.Properties
オブジェクトに次のプロパティを追加するだけです。
属性 | Value |
---|---|
|
|
|
|
OAuth マシン間 (M2M) 認証
JDBCOAuthドライバーは、Databricks サービスプリンシパルを使用した マシン間 (M2M) 認証をサポートしています。これは、OAuth 2.0 クライアント資格情報 認証とも呼ばれます。 OAuthを使用したサービスプリンシパルでDatabricks リソースへの無人アクセスを承認 するを参照してください。
OAuth M2M または OAuth 2.0 クライアント資格情報認証を構成するには、次のようにします。
- DatabricksワークスペースにDatabricks サービスプリンシパルを作成し、そのサービスプリンシパルのOAuthシークレットを作成します。OAuthを使用したサービスプリンシパルでDatabricks リソースへの無人アクセスを承認 するを参照してください。 サービスプリンシパルの UUID または Application ID の値と、サービスプリンシパルの シークレットの Secret OAuth 値をメモします。
- サービスプリンシパルにクラスターまたはウェアハウスへのアクセス権を付与します。 「コンピュートの権限」または「SQLウェアハウスの管理」を参照してください。
既存の JDBC 接続 URL または java.util.Properties
オブジェクトに次のプロパティを追加します。
属性 | Value |
---|---|
|
|
|
|
| サービスプリンシパルの UUID または アプリケーション ID の値。 |
| サービスプリンシパルの OAuth Secret 値。 |
Databricks 個人用アクセス トークン
Databricks パーソナル アクセス トークンを使用して JDBC ドライバー接続を認証するには、JDBC 接続 URL または java.util.Properties
オブジェクトに次のプロパティを追加します。
属性 | Value |
---|---|
|
|
| 値は文字列として , |
| Databricks 個人用アクセス トークンの値 (文字列)。 |