コンピュート configuration for Databricks Connect
注
この記事では、Databricks Runtime 13.3 LTS 以降の Databricks Connect について説明します。
この記事では、 Databricks Connect と Databricks クラスター または サーバレス コンピュートとの間の接続を確立するためのプロパティを構成します。 この情報は、特に明記されていない限り、Python および Scala バージョンの Databricks Connect に適用されます。
Databricks Connect を使用すると、Visual Studio Code、PyCharm、RStudio Desktop、IntelliJ IDEA、ノートブック サーバー、その他のカスタム アプリケーションなどの一般的な IDEs を Databricks クラスターに接続できます。 「 Databricks Connect とは」を参照してください。
要件
Databricks コンピュートへの接続を設定するには、次のものが必要です。
Databricks Connect がインストールされている。 特定の言語バージョンの Databricks Connectのインストール要件とステップ については、以下を参照してください。
Unity Catalog が有効になっている Databricks アカウントとワークスペース。 「Unity Catalog のセットアップと管理」および「Unity Catalog のワークスペースの有効化」を参照してください。
Databricks Runtime 13.3 LTS 以降を搭載した Databricks クラスター。
クラスターの Databricks Runtime バージョンは、Databricks Connect パッケージのバージョン以上である必要があります。 Databricks では、Databricks Runtime のバージョンと一致する Databricks Connect の最新のパッケージを使用することをお勧めします。 Databricks Runtime の新しいバージョンで使用できる機能を使用するには、Databricks Connect パッケージをアップグレードする必要があります。 利用可能な Databricks Connect リリースの一覧については、 Databricks Connect のリリースノート を参照してください。 Databricks Runtime バージョンのリリースノートについては、「Databricks Runtime リリースノートのバージョンと互換性」を参照してください。
クラスターは、割り当て済みまたは共有のクラスター アクセス モードを使用する必要があります。 アクセス・モードを参照してください。
設定
開始する前に、次のものが必要です。
クラスターに接続している場合は、クラスターの ID。 クラスター ID は URL から取得できます。 クラスター URL と ID を参照してください。
Databricks ワークスペース インスタンス名。 これは、コンピュートの Server ホスト名 の値です。 「Databricks コンピュート リソースの接続の詳細を取得する」を参照してください。
使用する Databricks 認証の種類 に必要なその他のプロパティ。
注
OAuth ユーザー対マシン (U2M) 認証の場合、コードを実行する前にDatabricks CLIを使用して認証する必要があります。Databricks Connect for Python チュートリアルまたは Databricks Connect for Scala チュートリアルを参照してください。
クラスターへの接続を構成する
クラスターへの接続を構成するには、複数の方法があります。 Databricks Connect は、次の順序で構成プロパティを検索し、最初に見つかった構成を使用します。 詳細な構成情報については、「 Databricks Connect for Python の高度な使用法」を参照してください。
DatabricksSession
クラスの remote()
メソッド
このオプション ( Databricks personal アクセストークン認証 のみに適用される) では、ワークスペース インスタンス名、 Databricks personal アクセストークン、およびクラスターの ID を指定します。
DatabricksSession
クラスは、いくつかの方法で初期化できます。
DatabricksSession.builder.remote()
でhost
、token
、cluster_id
の各フィールドを設定します。Databricks SDK の
Config
クラスを使用します。Databricks 構成プロファイルを
cluster_id
フィールドと共に指定します。
Databricks では、これらの接続プロパティをコードで指定する代わりに、このセクション全体で説明するように、環境変数または構成ファイルを使用してプロパティを構成することをお勧めします。 次のコード例では、提案された retrieve_*
関数の実装を提供して、ユーザーまたは他の構成ストア ( AWS Systems Manager パラメーター Store など) から必要なプロパティを取得することを前提としています。
これらの各アプローチのコードは次のとおりです。
# Set the host, token, and cluster_id fields in DatabricksSession.builder.remote.
# If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
# cluster's ID, you do not also need to set the cluster_id field here.
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.remote(
host = f"https://{retrieve_workspace_instance_name()}",
token = retrieve_token(),
cluster_id = retrieve_cluster_id()
).getOrCreate()
// Set the host, token, and clusterId fields in DatabricksSession.builder.
// If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
// cluster's ID, you do not also need to set the clusterId field here.
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder()
.host(retrieveWorkspaceInstanceName())
.token(retrieveToken())
.clusterId(retrieveClusterId())
.getOrCreate()
# Use the Databricks SDK's Config class.
# If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
# cluster's ID, you do not also need to set the cluster_id field here.
from databricks.connect import DatabricksSession
from databricks.sdk.core import Config
config = Config(
host = f"https://{retrieve_workspace_instance_name()}",
token = retrieve_token(),
cluster_id = retrieve_cluster_id()
)
spark = DatabricksSession.builder.sdkConfig(config).getOrCreate()
// Use the Databricks SDK's Config class.
// If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
// cluster's ID, you do not also need to set the clusterId field here.
import com.databricks.connect.DatabricksSession
import com.databricks.sdk.core.DatabricksConfig
val config = new DatabricksConfig()
.setHost(retrieveWorkspaceInstanceName())
.setToken(retrieveToken())
val spark = DatabricksSession.builder()
.sdkConfig(config)
.clusterId(retrieveClusterId())
.getOrCreate()
# Specify a Databricks configuration profile along with the `cluster_id` field.
# If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
# cluster's ID, you do not also need to set the cluster_id field here.
from databricks.connect import DatabricksSession
from databricks.sdk.core import Config
config = Config(
profile = "<profile-name>",
cluster_id = retrieve_cluster_id()
)
spark = DatabricksSession.builder.sdkConfig(config).getOrCreate()
// Specify a Databricks configuration profile along with the clusterId field.
// If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
// cluster's ID, you do not also need to set the clusterId field here.
import com.databricks.connect.DatabricksSession
import com.databricks.sdk.core.DatabricksConfig
val config = new DatabricksConfig()
.setProfile("<profile-name>")
val spark = DatabricksSession.builder()
.sdkConfig(config)
.clusterId(retrieveClusterId())
.getOrCreate()
Databricks 構成プロファイル
このオプションでは、使用する Databricks cluster_id
認証タイプ に必要なフィールド () およびその他のフィールドを含む Databricks 構成プロファイル を作成または特定します。
各認証タイプに必要な設定プロファイル フィールドは次のとおりです。
Databricks個人用アクセストークン認証 の場合:
host
とtoken
。OAuth マシン間 (M2M) 認証 (サポートされている場合):
host
、client_id
、client_secret
。OAuth ユーザー対マシン (U2M) 認証の場合 (サポートされている場合):
host
.
注
Databricksのユーザー名とパスワードを使用した基本認証のサポートは2024年7月10日に終了しました。詳しくは、「Databricksで管理するパスワードのサポート終了」を参照してください。
次に、構成クラスを使用して、この構成プロファイルの名前を設定します。
注
auth login
コマンドの --configure-cluster
オプションを使用して、新規または既存の設定プロファイルに cluster_id
フィールドを自動的に追加できます。詳細については、コマンド databricks auth login -h
.
cluster_id
は、いくつかの方法で指定できます。
構成プロファイルに
cluster_id
フィールドを含め、構成プロファイルの名前を指定するだけです。構成プロファイル名と
cluster_id
フィールドを指定します。
すでにクラスターの ID で DATABRICKS_CLUSTER_ID
環境変数を設定している場合は、 cluster_id
を指定する必要はありません。
これらの各アプローチのコードは次のとおりです。
# Include the cluster_id field in your configuration profile, and then
# just specify the configuration profile's name:
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.profile("<profile-name>").getOrCreate()
// Include the cluster_id field in your configuration profile, and then
// just specify the configuration profile's name:
import com.databricks.connect.DatabricksSession
import com.databricks.sdk.core.DatabricksConfig
val config = new DatabricksConfig()
.setProfile("<profile-name>")
val spark = DatabricksSession.builder()
.sdkConfig(config)
.getOrCreate()
# Specify the configuration profile name along with the cluster_id field.
# In this example, retrieve_cluster_id() assumes some custom implementation that
# you provide to get the cluster ID from the user or from some other
# configuration store:
from databricks.connect import DatabricksSession
from databricks.sdk.core import Config
config = Config(
profile = "<profile-name>",
cluster_id = retrieve_cluster_id()
)
spark = DatabricksSession.builder.sdkConfig(config).getOrCreate()
// Specify a Databricks configuration profile along with the clusterId field.
// If you have already set the DATABRICKS_CLUSTER_ID environment variable with the
// cluster's ID, you do not also need to set the clusterId field here.
import com.databricks.connect.DatabricksSession
import com.databricks.sdk.core.DatabricksConfig
val config = new DatabricksConfig()
.setProfile("<profile-name>")
val spark = DatabricksSession.builder()
.sdkConfig(config)
.clusterId(retrieveClusterId())
.getOrCreate()
DATABRICKS_CONFIG_PROFILE
環境変数
このオプションでは、使用する Databricks cluster_id
認証タイプ に必要なフィールド () およびその他のフィールドを含む Databricks 構成プロファイル を作成または特定します。
すでにクラスターの ID で DATABRICKS_CLUSTER_ID
環境変数を設定している場合は、 cluster_id
を指定する必要はありません。
各認証タイプに必要な設定プロファイル フィールドは次のとおりです。
Databricks個人用アクセストークン認証 の場合:
host
とtoken
。OAuth マシン間 (M2M) 認証 (サポートされている場合):
host
、client_id
、client_secret
。OAuth ユーザー対マシン (U2M) 認証の場合 (サポートされている場合):
host
.
注
Databricksのユーザー名とパスワードを使用した基本認証のサポートは2024年7月10日に終了しました。詳しくは、「Databricksで管理するパスワードのサポート終了」を参照してください。
注
auth login
コマンドの--configure-cluster
を使用して、新規または既存の設定プロファイルに cluster_id
フィールドを自動的に追加できます。詳細については、コマンド databricks auth login -h
.
DATABRICKS_CONFIG_PROFILE
環境変数をこの構成プロファイルの名前に設定します。次に、 DatabricksSession
クラスを初期化します。
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder().getOrCreate()
各構成プロパティの環境変数
このオプションでは、使用する Databricks 認証タイプに必要な DATABRICKS_CLUSTER_ID
環境変数とその他の環境変数を設定します。
各認証タイプに必要な環境変数は次のとおりです。
Databricks個人用アクセストークン認証 の場合:
DATABRICKS_HOST
とDATABRICKS_TOKEN
。OAuth マシン間 (M2M) 認証の場合:
DATABRICKS_HOST
、DATABRICKS_CLIENT_ID
、DATABRICKS_CLIENT_SECRET
。For OAuth ユーザー対マシン (U2M) 認証:
DATABRICKS_HOST
.
注
Databricksのユーザー名とパスワードを使用した基本認証のサポートは2024年7月10日に終了しました。詳しくは、「Databricksで管理するパスワードのサポート終了」を参照してください。
次に、 DatabricksSession
クラスを初期化します。
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder().getOrCreate()
DEFAULT
という名前の Databricks 構成プロファイル
このオプションでは、使用する Databricks cluster_id
認証タイプ に必要なフィールド () およびその他のフィールドを含む Databricks 構成プロファイル を作成または特定します。
すでにクラスターの ID で DATABRICKS_CLUSTER_ID
環境変数を設定している場合は、 cluster_id
を指定する必要はありません。
各認証タイプに必要な設定プロファイル フィールドは次のとおりです。
Databricks個人用アクセストークン認証 の場合:
host
とtoken
。OAuth マシン間 (M2M) 認証 (サポートされている場合):
host
、client_id
、client_secret
。OAuth ユーザー対マシン (U2M) 認証の場合 (サポートされている場合):
host
.
注
Databricksのユーザー名とパスワードを使用した基本認証のサポートは2024年7月10日に終了しました。詳しくは、「Databricksで管理するパスワードのサポート終了」を参照してください。
この設定プロファイルに DEFAULT
という名前を付けます。
注
auth login
コマンドの --configure-cluster
オプションを使用して、cluster_id
フィールドを DEFAULT
構成プロファイルに自動的に追加できます。詳細については、コマンド databricks auth login -h
.
次に、 DatabricksSession
クラスを初期化します。
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.getOrCreate()
import com.databricks.connect.DatabricksSession
val spark = DatabricksSession.builder().getOrCreate()
サーバレス コンピュートへの接続を構成する
プレビュー
この機能はパブリックプレビュー段階です。
Databricks Connect for Python は、サーバレス コンピュートへの接続に対応しています。 この機能を利用するには、サーバレスへの接続要件を満たす必要があります。 「要件」を参照してください。
重要
この機能には、次の制限があります。
この機能は、Databricks Connect for Python でのみサポートされています。
UDF に使用できるのは、サーバレス コンピュート環境の一部として含まれている Python 依存関係のみです。 サーバレス クライアント イメージを参照してください。追加の依存関係はインストールできません。
カスタムモジュールを含む UDF はサポートされていません。
サーバレス コンピュートへの接続は、次のいずれかの方法で設定できます。
ローカル環境変数
DATABRICKS_SERVERLESS_COMPUTE_ID
をauto
に設定します。 この環境変数が設定されている場合、Databricks Connect はcluster_id
.ローカルの Databricks 構成プロファイルで、
serverless_compute_id = auto
を設定し、コードからそのプロファイルを参照します。[DEFAULT] host = https://my-workspace.cloud.databricks.com/ serverless_compute_id = auto token = dapi123...
または、次のいずれかのオプションを使用します。
from databricks.connect import DatabricksSession as SparkSession
spark = DatabricksSession.builder.serverless(True).getOrCreate()
from databricks.connect import DatabricksSession as SparkSession
spark = DatabricksSession.builder.remote(serverless=True).getOrCreate()
注
サーバレス コンピュート セッションは、非アクティブな状態が 10 分間続くとタイムアウトになります。 この後、getOrCreate()
を使用して新しい Spark セッションを作成し、サーバレス コンピュートに接続する必要があります。
Databricks への接続を検証する
環境、デフォルト資格情報、およびコンピュートへの接続が Databricks Connectに対して正しく設定されていることを検証するには、databricks-connect test
コマンドを実行します。コマンドを実行すると、0 以外の終了コードと、セットアップで非互換性が検出されると対応するエラー メッセージが表示されます。
databricks-connect test
Databricks Connect 14.3 以降では、 validateSession()
を使用して環境を検証することもできます。
DatabricksSession.builder.validateSession(True).getOrCreate()
Databricks接続の無効化
Databricks Connect (および基になる Spark 接続) サービスは、任意のクラスターで無効にすることができます。
Databricks Connect サービスを無効にするには、クラスターで次の Spark 構成 を設定します。
spark.databricks.service.server.enabled false