SSHトンネルを使用してDatabricksに接続する
Databricks SSH(Secure シェル)トンネルは、Visual Studio Code、Cursor、またはターミナルをDatabricksワークスペースおよびDatabricks Serverlessまたはクラシックコンピュートに接続します。ワークスペースファイルの編集、Pythonスクリプトやノートブックの実行やデバッグに使用し、Python環境とコード実行はリモートコンピュート上で行います。Serverlessコンピュートに直接接続するか、専用のクラシッククラスターへの再利用可能なSSH接続を設定します。
要件
ローカルマシンからSSH接続を起動する。トンネルは、別のリモート環境または Docker コンテナから起動できません。
Serverlessまたはクラシック コンピュートに接続するには、以下が必要です。
- Databricks CLI バージョン 1.5.0 以降がローカルマシンにインストールされ、認証が構成されています。インストールされているバージョンは
databricks --versionで確認します。Databricks CLI をインストールまたは更新するを参照してください。 - 以下のいずれか:
- Visual Studio Code バージョン 1.110.0(Universal) 以上とRemote - SSH 拡張機能 (1.0.46+) がインストールされています。
- Cursorバージョン2.6.11(ユニバーサル)以上。
Serverlessコンピュートに接続するには、Serverlessコンピュートへのポート転送を有効にする必要があります。Serverlessコンピュートへのポート転送を管理するを参照してください。
クラシックコンピュートの追加要件
クラシック(専用、シングルユーザー)コンピュートに接続するには:
- コンピュートはDatabricks Runtime 17.0以降を実行している必要があります。専用コンピュートの概要を参照してください。
- Unity Catalog有効にする必要があります。
- コンピュート ポリシーが存在する場合、ジョブの実行を禁止してはなりません。
- 専用コンピュートに Databricks Container Services を使用する場合、ご使用の Docker イメージには
openssh-serverがインストールされている必要があります。
SSH接続の選択
コンピュートタイプに応じた接続方法を使用してください:
コンピュート | 接続方法 | セットアップ要件 |
|---|---|---|
サーバーレスコンピュート |
| 別のSSH設定ステップは不要です。
|
クラシック専用シングルユーザーコンピュート | ターミナルでラン 次に、IDEからSSHセッションを起動するか、 | クラシックコンピュートの要件を満たす専用のシングルユーザー クラスターを選択します。 共有クラスターはサポートされていません。 |
Databricks Connectと他の開発オプションの比較については、IDEからの接続を参照してください。
サーバレスコンピュートに接続する
上記の手順を実行した後、ターミナルまたはIDEから databricks ssh connect をランします。
--ide 値は、コマンドをランするエディターまたはターミナルに関係なく、起動するエディターを選択します。
- Visual Studio Code
- Cursor
- Terminal
databricks ssh connect --ide vscode
CLIは、リモートコンピュートに接続されたVisual Studio Codeウィンドウを開きます。
databricks ssh connect --ide cursor
CLI は、リモート コンピュートに接続されたカーソル ウィンドウを開きます。
databricks ssh connect
CLIは対話型SSHセッションを起動します。
名前付き接続や認証プロファイルなどのコマンドオプションについては、「databricks ssh connect」を参照してください。
接続した後、 ワークスペース プロジェクトを開き、 Python 環境を選択します。接続が失敗した場合は、「 SSH トンネル接続のトラブルシューティング」を参照してください。
クラシック コンピュートに接続
クラシック専用クラスターへの再利用可能な接続については、SSH host nameを設定し、IDEでそのホストを選択するか、ターミナルから接続します。
SSH接続を設定する
SSH接続の設定は、クラシックコンピュートに接続する場合にのみ必要です。
ローカルマシンで databricks ssh setup をラン。<connection-name>をこの接続の名前(my-connectionなど)に置き換えます:
databricks ssh setup --name <connection-name>
CLIはクラスターの選択を促し、SSH構成にホストエントリーを追加します。クラスターを直接選択することもできます。<cluster-id> を専用クラスターのIDに置き換えます。
databricks ssh setup --name <connection-name> --cluster <cluster-id>
SSHトンネルが最後にクライアントとの接続を解除した後に待機する時間を構成するには、セットアップコマンドに --shutdown-delay を追加します。defaultは10分です。たとえば、この SSH ホスト エントリを介した接続の遅延を 30 分に設定するには、次のようにします。
databricks ssh setup --name <connection-name> --cluster <cluster-id> --shutdown-delay 30m
IntelliJユーザーの場合、Databricksはセットアップコマンドに--auto-start-cluster=falseを追加し、接続する前にクラスターを手動で起動することを推奨しています。これは、JetBrains IDEs起動時に構成されたすべてのクラスターを開始し、予期しないコンピュート料金が発生する可能性があるためです。
Visual Studio Code またはカーソルを使用して接続する
-
Visual Studio Code の場合は、 Remote SSH 拡張機能をインストールしてください。Cursorには、デフォルトでリモートSSH拡張機能が含まれています。
-
IDE メイン メニューで、 [表示] > [コマンド パレット] をクリックします。 [リモートSSH: 設定] を選択します。または、 [設定: ユーザー設定を開く (JSON)] を選択して、
settings.json直接変更します。 -
Remote.SSH: 無事 Extensions (または
settings.jsonのremote.SSH.defaultExtensions) で、ms-Python.Pythonとms-toolsai.jupyterを追加します。settings.jsonを変更する場合:JSON"remote.SSH.defaultExtensions": ["ms-Python.Python","ms-toolsai.jupyter"]
必要に応じて、 Remote.SSH: Connect Timeout (またはsettings.jsonのremote.SSH.connectTimeout ) の値を増やして、タイムアウト エラーが発生する可能性をさらに減らします。デフォルトのタイムアウトは 360 です。
-
コマンド パレットで、 Remote-SSH: Connect to Host を 選択します。
-
ドロップダウンメニューから、最初のステップで設定した接続を選択します。IDEは新しいウィンドウで接続に進みます。
IntelliJ IDEsを使用して接続する
- リモートサーバーのチュートリアルに従って設定を行ってください。
- 新しい接続画面で、以下を入力してください。
- ユーザー名 :
root - ホスト :
<connection-name>
- ユーザー名 :
ターミナルからクラシックコンピュートに接続する
databricks ssh setup で構成した接続名を使用します。
ssh <connection-name>
再利用可能なSSHホストエントリを使用しない直接接続の場合は、CLIを使用することもできます。<cluster-id> を専用クラスター ID に置き換えます。
databricks ssh connect --cluster <cluster-id>
databricks ssh connectを参照してください。
SSH でワークスペース プロジェクトを開く
デフォルトでは、databricks ssh connect コマンドは一時ディレクトリに開きます。ワークスペースファイルにアクセスするには、IDEまたはターミナルからワークスペースディレクトリに移動します:
- Visual Studio Code または Cursor で、コマンドパレット( Cmd/Ctrl+Shift+P )から フォルダーを開く を選択し、
/Workspace/Users/<your-username>に移動します。 - ターミナルウィンドウから、ディレクトリを変更してください:
cd /Workspace/Users/<your-username>。
/Workspace 、 /Volumes 、および/dbfsのファイルはクラスターの再起動後も保持されます。 /home 、 /root 、およびその他のローカルパスにあるファイルは一時的なものであり、再起動すると失われます。
SSHセッションでPythonとノートブックをランする
コードを実行する前に、SSHセッションによって提供されるPython環境を選択します。クラシックコンピュートの場合、この環境には組み込みの Databricks Runtime ライブラリと コンピュートスコープのライブラリが含まれます。
-
Cmd/Ctrl+Shift+P を押してコマンドパレットを開き、 Python: Select Interpreter を選択します。
-
リストから
pythonEnv-xxx仮想環境を選択します。--base-environmentフラグを使用してPythonの依存関係を設定する場合は、オプションのリストからより長い仮想環境名を選択します。仮想環境が表示されない場合は、-
IDE内のターミナルから
echo $DATABRICKS_VIRTUAL_ENV実行してください。出力例:
/local_disk0/.ephemeral_nfs/envs/pythonEnv-xxx/bin/python -
Python: Select Interpreter プロンプトに完全な出力をインタープリターパスとして貼り付けます。
-
-
新しいターミナルを開くと、仮想環境が自動的に起動します。
-
Jupyterノートブックを実行するには、仮想環境がカーネルとして選択されていることを確認してください。ノートブックの右上にある [Select Kernel] をクリックします。
標準のPythonおよびJupyter拡張機能を使用して、Pythonファイルと.ipynbノートブックを実行およびデバッグします。
サーバレスコンピュートのPythonファイルでSparkを使用するには、セッションを明示的に初期化します:
from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.serverless().profile("DEFAULT").getOrCreate()
SSHセッションの依存関係の管理
コンピュートの種類に依存関係管理を選択します。
- Serverlessコンピュートの場合は、サポートされているServerless環境バージョンを備えた ワークスペース基本環境を使用してください。
- クラシックコンピュートの場合は、再起動しても永続化される依存関係に クラスター ライブラリを使用します。
- プロジェクトセッションをスコープとする依存関係には、セットアップノートブックを使用します。
Python 以外のパッケージについては、「 Python 以外の依存関係」を参照してください。
ワークスペースの基本環境(Serverlessに推奨)
この機能を使用するには、**ジョブでのServerlessワークスペースベース環境サポート**のプレビューを有効にする必要があります。Databricksプレビューの管理を参照してください。
Serverless環境バージョン 4 以下でワークスペース基本環境を使用して、Pythonの依存関係を事前に構成します。SSHトンネルは、Serverless環境バージョン5以上で--base-environmentをサポートしていません。ワークスペース UI または Databricks CLI databricks environments create-workspace-base-environment コマンドを使用して、基本環境を作成します。
接続時に--base-environmentオプションを使用して、環境を指定します:
databricks ssh connect --base-environment my-workspace-env
--base-environmentオプションは、表示名、ワークスペースYAMLパス、またはリソースIDを受け入れます。--clusterと組み合わせることはできません。databricks ssh connect を参照してください。
クラスター ライブラリ (クラシック コンピュートにおすすめ)
ワークスペース UI で [コンピュート] > [ライブラリ] を使用して依存関係をインストールします。これらはクラスターの再起動後も保持され、pythonEnv-xxxで利用できます。クラスター ライブラリを参照してください。
Python 以外の依存関係
Python以外の依存関係を保持するには、コンピュートが起動するときにパッケージをインストールするinitスクリプトを使用します。必要に応じて、パッケージをUnity Catalogボリュームに保存し、initスクリプトから参照します。「initスクリプトとは」を参照してください。
プロジェクト固有のノートブック設定
プロジェクトスコープの依存関係については、各セッションの開始時に%pip installコマンドを含むノートブックを実行します。
# Install from pyproject.toml
%pip install .
# Install from a requirements file
%pip install -r requirements.txt
# Install a wheel from Volumes or Workspace
%pip install /Volumes/catalog/schema/volume/your_library.whl
%pip コマンドにはDatabricks固有のガードレールが含まれており、依存関係をSparkエグゼキューター ノードに伝播します。 これにより、カスタム依存関係を持つユーザー定義関数(UDF)が可能になります。
その他の例については、 %pipコマンドでライブラリを管理する」を参照してください。
SSH トンネルがシャットダウンする前に再接続する場合は、セットアップノートブックを再実行する必要はありません。defaultでは、トンネルは最後のクライアントが切断してから 10 分後にシャットダウンします。この遅延を変更するには、接続方法のコマンドと一緒に --shutdown-delay を使用します。
- 再利用可能なクラシックコンピュート接続については、databricks ssh setupを使用して遅延を設定します。生成された SSH ホストエントリは、IDE から接続するか
ssh <connection-name>をランするときに遅延を適用します。 - 直接CLI接続を行うには、databricks ssh connectを使用して遅延を設定します。
同じクラスター上の複数の SSH セッションが 1 つの仮想環境を共有します。
SSHセッションでGitを使用する
プレビュー
この機能は パブリック プレビューの状態です。ワークスペース管理者は、 プレビュー ページから GitフォルダーのGit CLIサポート へのアクセスを制御できます。Databricksのプレビューの管理を参照してください。
Databricks ワークスペースで構成した Git 資格情報と、新しく作成された Git フォルダーで、SSH トンネルの Git CLI を使用できます。「Git CLI コマンドの使用」を参照してください。
CLIが資格情報を自動的に取得するのではなく、資格情報の入力を求める場合は、GitプロバイダーをDatabricksに接続する必要があります。「GitプロバイダーをDatabricksに接続する」を参照してください。
切り離されたプロセスを実行し続ける
defaultでは、SSHトンネルがシャットダウンされると、セッションが起動したすべてのプロセスが停止します。これには、tmux、setsid、またはnohupを使用してセッションからデタッチしたプロセスも含まれます。それらを停止する前に、トンネルはプロセスIDを含む警告をトンネルのジョブランの出力にLogsします。databricks ssh connectは、トンネルを起動するときにジョブランIDを出力します。
接続を切断した後も分離された作業を実行し続けるには、--keep-detached-processesフラグを使用します。保持したい作業を起動する前に、トンネルを起動する接続にフラグを設定します。既存のトンネルへの接続を参照してください。
- Serverlessまたはクラシック コンピュート : フラグを databricks ssh connectに渡します。
- SSHホストが設定されたクラシックコンピュート : フラグを databricks ssh setup に渡します。生成されたSSHホストエントリは、接続するたびにそれを適用します。Serverlessの接続はセットアップが不要なため、このオプションはクラシックコンピュートにのみ適用されます。
次の例では、Serverlessコンピュートでデタッチされたプロセスを実行し続けます:
databricks ssh connect --keep-detached-processes
次の例では、デタッチされたプロセスを専用クラスターで実行し続けます。
databricks ssh connect --cluster 0123-456789-abcdefgh --keep-detached-processes
このフラグを使用し、最後のクライアントが切断されると、トンネルは次のように動作します。
--shutdown-delay期間が経過すると、トンネルは分離されたプロセスを確認します。いずれかが実行されている間、トンネルはシャットダウンせずに実行を継続します。- デタッチされたプロセスは、
/Workspaceと/Volumesへのアクセスを維持します。 - 最後の切り離されたプロセスが終了した後、トンネルはシャットダウンし、ジョブランは終了します。
トンネルの実行中に、同じコンピュートに再接続し、デタッチされた作業に再アタッチすることができます。たとえば、tmux attachを使用します。Serverlessコンピュートでは、同じ接続名で再接続します。--nameを省略すると、CLIはワークスペースと--acceleratorおよび--base-environmentフラグから接続名を導出するため、どちらかのフラグを変更すると別の接続が起動されます。
既存のトンネルへの接続
トンネルのモードは起動時に固定され、後の接続では次のように処理されます:
- フラグ付きで接続しているトンネルがフラグなしで起動された場合、CLIは新しいトンネルを起動します。既存のトンネルでデタッチしたプロセスは保持されず、そのトンネルがシャットダウンすると停止します。専用クラスターでは、新しいトンネルが既存のトンネルを直ちに停止するため、オープンセッションが終了し、デタッチされたプロセスが停止します。
- フラグなしで起動されたトンネルにフラグなしで接続した場合、 CLIはそのトンネルを再利用し、デタッチされたプロセスが残っている間トンネルは実行され続けます。これは、他のSSHホストエントリまたはIDEセッションから同じコンピュートへの接続にも適用されます。
コストと最大有効期間
次の点に留意してください:
- トンネルが実行されている間は、コンピュートも実行され続け、コストが発生します。クラシッククラスターは自動的に終了しません。アイドル状態の
tmuxセッションは実行中のデタッチ済みプロセスとしてカウントされるため、不要になったら閉じてください。 - デタッチされたプロセスが実行されていても、ジョブの実行が
--server-timeoutによって設定された最長実行時間に達すると、ジョブの実行は停止します。この有効期間は、最後のクライアントが切断されたときからではなく、ジョブランが起動されたときからカウントされます。ジョブランが停止すると、デタッチされたプロセスは/Workspaceおよび/Volumesへのアクセス権を失います。Serverlessコンピュートでは、デタッチされたプロセスは停止します。クラシックコンピュートでは、クラスターが終了するまでそのアクセス権なしで実行し続けることができます。長時間実行されるデタッチされた作業の出力を保持するには、/Workspaceまたは/Volumesパスに書き込む代わりに、Databricks SDKまたはREST APIを使用して保存します。Unity Catalog ボリューム内のファイルを操作するを参照してください。 - 長時間実行されるタスクの場合は、代わりにジョブまたはバンドルを使用します。
SSHトンネルの制限事項
Databricksが提供するSSHトンネルには、以下の制限があります。作。
- 共有クラスターはサポートされていません。
/Workspace、/Volumes、および/dbfsの外側で編集されたファイルは、クラスターの再起動時に失われます。- クラスターごとに許可されるSSH接続数は最大10です。
- 非アクティブなセッションは1時間後に停止する可能性があります。
- SSH トンネルは、他のリモート環境または Docker コンテナから起動できません。
- 3つ以上のJupyterノートブックを同時に開いていると、パフォーマンスや接続の問題が発生する可能性があります。
SSHセッションでのノートブックの動作
SSH トンネルを使用する場合、ノートブックにはいくつかの違いがあります。
- Python ファイルでは、Databricks グローバル (
sparkやdbutilsなど) は定義されていません。from databricks.sdk.runtime import sparkを使用して明示的にインポートする必要があります。 - ipynb ノートブックでは、次の機能が利用できます。
- Databricks グローバル:
display、displayHTML、dbutils、table、sql、udf、getArgument、sc、sqlContext、spark %sqlSQLセルを実行するマジックコマンド
- Databricks グローバル:
Python ソース「ノートブック」を操作するには:
-
jupyter.interactiveWindow.cellMarker.codeRegexを検索して次のように設定します:^# COMMAND ----------|^# Databricks notebook source|^(#\\s*%%|#\\s*\<codecell\\>|#\\s*In\\[\\d*?\\]|#\\s*In\\[ \\]) -
jupyter.interactiveWindow.cellMarker.defaultを検索して次のように設定します:# COMMAND ----------
SSHトンネル接続のトラブルシューティング
失敗に対応する現象から起動します。
症状 | まずは確認 |
|---|---|
SSH接続に失敗するか、タイムアウトになります。 | ワークスペースのHTTPS およびWebSocketアクセスを確認します。クラシックコンピュートについては、クラスターの状態とIDEのタイムアウトも確認してください。SSH接続が失敗またはタイムアウトする場合を参照してください。 |
CLIは | ローカルの |
CLI認証に失敗しました。 | CLIプロファイルと、クラシックコンピュートの場合はクラスターの権限を確認してください。CLI認証エラーを参照してください。 |
CLIが | 同じCLIプロファイルを使用してワークスペースに再度サインインし、接続を再試行してください。更新トークンが無効ですを参照してください。 |
接続後にPythonコードまたはノートブックが失敗します。 | 選択したインタープリタまたはノートブックのカーネルを確認します。Python コードまたはノートブックが SSH セッションで失敗するを参照してください。 |
クラスターを再起動すると、ファイルは消失します。 | ファイルがエフェメラル ローカル パスに格納されているかどうかを確認します。クラスターの再起動後にファイルが消える、または環境がリセットされるを参照してください。 |
SSH接続が失敗またはタイムアウトする場合
- クラシックコンピュートの場合は、ワークスペース UIでクラスターが実行されていることを確認します。
- ネットワーク、VPN、およびファイアウォールが、ワークスペースドメインへのHTTPSおよびWebSocketトラフィックを許可していることを確認してください。SSHトンネルはポート22を使用しません。これは、他のDatabricks CLIコマンドと同じHTTPS Endpoint経由ですべてのトラフィックをトンネルします。ドメイン名ファイアウォールルールを設定するを参照してください。
- プロキシまたはファイアウォールがTLSトラフィックを検査する場合は、WebSocketアップグレード要求が許可されていることを確認してください。アップグレードをブロックまたは削除する中間デバイスが存在すると、接続が失敗またはタイムアウトします。ネットワーク管理者に、ワークスペースドメインへのWebSocketアップグレードを許可するか、そのドメインのTLS検査をバイパスするように依頼してください。
- 企業用 HTTP プロキシ経由で接続する場合は、
HTTPS_PROXY環境変数を設定するか、NO_PROXYを設定してワークスペース ドメインのプロキシをバイパスします。SSH トンネルは、他の Databricks CLI コマンドと同じプロキシ構成を使用します。プロキシ サーバーの構成を参照してください。 - ローカル マシンから
github.comおよびrelease-assets.githubusercontent.comへの HTTPS アクセスが可能であることを確認してください。 - SSHのタイムアウト時間を長くしてください。Visual Studio Code またはカーソルを使用した接続を参照してください。
- キーの不一致エラーが発生した場合は、
~/.databricks/ssh-tunnel-keysを削除してdatabricks ssh setupを再実行してください。 - 「リモートホストの識別情報が変更されました」というエラーが発生した場合は、
~/.ssh/known_hostsファイルを確認し、クラスターに関連するエントリを削除してください。 - SSH セッションは 1 時間後に切断される可能性があり、単一のクラスターに対して作成できる SSH 接続は最大 10 個までです。SSH トンネルの制限を参照してください。
codeコマンドが見つかりません
Error: exec: "code": executable file not found in $PATH が表示された場合は、コマンドパレット ( Cmd/Ctrl+Shift+P ) を開き、 シェルコマンド:PATHに'code'コマンドをインストール を選択し、IDEまたはターミナルセッションを再起動してください。
CLI認証エラー
- databricks auth login を使用してワークスペースにログインします。
- クラシックコンピュートの場合は、クラスターに対する
CAN ATTACH TO権限があることを確認するか、クラスターが実行されていない場合はCAN RESTART権限があることを確認してください。
更新トークンが無効です
databricks ssh connectがerror getting token、invalid_grant、およびRefresh token is invalidで失敗する場合、承認サーバーはCLIの保存されたOAuth更新トークンを拒否しました。新しいセッションを取得するには、もう一度サインインしてください:
-
接続するワークスペースの構成プロファイルを特定します:
Bashdatabricks auth profiles --skip-validate -
そのプロファイルを使用して再度サインインしてください。
<workspace-url>を/oidc/v1/tokenパスを含まないワークスペース URL に置き換え、<profile-name>を一致するプロファイル名に置き換えます。Bashdatabricks auth login --host <workspace-url> --profile <profile-name>ブラウザでサインインフローを完了してください。
-
同じプロファイルで接続を再試行します:
Bashdatabricks ssh connect --ide vscode --profile <profile-name>カーソルには
--ide cursorを使用し、ターミナルセッションには--ideを省略します。
エラーが解決しない場合は、失敗したコマンドが先ほどサインインしたワークスペースとプロファイルにターゲット設定されていることを確認してください。OAuth ユーザーマシン間 (U2M) 認証を参照してください。
SSH セッションで Python コードまたはノートブックが失敗する
- SSHセッションによって提供されるPython環境を選択します。ノートブックの場合は、その環境をカーネルとして選択します。SSH セッションで Python およびノートブックをランするを参照してください。
- IPYNB ノートブックと
*.pyDatabricks ノートブックは Databricks グローバルにアクセスできますが、Python*.pyファイルはアクセスできません。SSHセッションでのノートブックの動作を参照してください。
クラスターの再起動後にファイルが消滅する、または環境がリセットされる
/Workspace、/Volumes、および/dbfsマウント内のファイルはクラスターの再起動後も保持されます。/home、/root、およびその他のローカルパスにあるファイルは一時的なものであり、再起動すると失われます。- 永続的な依存関係にはクラスター ライブラリ管理を使用します。必要に応じて、init スクリプトを使用して再インストールを自動化します。 「init スクリプトとは何ですか?」を参照してください。 。
Windows (WSL) で SSH 設定が失敗する
databricks ssh setupをWSL内ではなく、Windowsで直接実行してください。Windows Visual Studio Codeインスタンスは、WSL側で作成されたSSH構成を見つけることができません。
よくある質問
ServerlessコンピュートはSSH設定を必要としますか?
いいえ。Databricks CLIをインストールして認証した後、Serverlessコンピュートにはdatabricks ssh connectを使用します。databricks ssh setupコマンドは、クラシック専用コンピュートの再利用可能なSSHホストエントリを構成します。
Databricks SSHトンネルはポート22を必要としますか?
いいえ。 SSHトンネルはHTTPS経由でトラフィックをワークスペースドメインに運び、WebSocketサポートを必要とします。ネットワーク、VPN、ファイアウォール、およびプロキシは、そのトラフィックを許可する必要があります。「SSH接続が失敗するかタイムアウトする」を参照してください。
SSHトンネルはDatabricks Connectとどう異なりますか?
Databricks Connect使用すると、 Spark APIs使用してコードを作成し、ローカルのSparkセッションではなくDatabricksコンピュート上でリモートで実行できます。 Databricks Visual Studio Code拡張機能は、Databricks Connectを使用して、Databricks上のユーザーコードの組み込みデバッグ機能を提供します。
SSHトンネルを使用すると、IDEからワークスペースにアクセスし、開発環境全体をコンピュートに移動できます。Python、カーネル、およびコードの実行は、コンピュートリソースにアクセスしてDatabricks上で実行されます。
コードとデータはどのように保護されますか?
SSHトラフィックはエンドツーエンドで暗号化され、コードは接続先のDatabricksコンピュートで実行されます。認証には、Databricks CLIと構成済みのワークスペースプロファイルが使用されます。サポートされている認証方法は?を参照してください。
どのIDEsがサポートされていますか?
Visual Studio Codeとカーソルは正式にサポートされています。SSH機能を備えたIDEであればどれでも互換性がありますが、テスト済みなのはVS CodeとCursorのみです。
Databricks ノートブックのすべての機能は IDE から利用できますか?
display()、dbutils、%sqlなどの一部の機能は、制限があるか、手動セットアップが必要です。SSHセッションにおけるノートブックの動作を参照してください。
SSH トンネルを使用して接続すると、クラスターは自動的に起動しますか?
はい、ただし、クラスターの起動に要する時間が接続タイムアウト時間よりも長い場合、接続試行は失敗します。これを防ぐには、コマンドパレットから Remote.SSH: Connect Timeout の値を増やす(またはsettings.jsonのremote.SSH.connectTimeoutにする)ことで、タイムアウトエラーが発生する可能性をさらに減らすことができます。
クラスターが実行中かどうかはどうすればわかりますか?
Databricksワークスペース UI の コンピュート に移動し、クラスターのステータスを確認します。 SSH接続を機能させるには、クラスターの状態が「実行 中」 と表示されている必要があります。
SSH/IDE セッションを切断するにはどうすればよいですか?
IDE ウィンドウを閉じるか、IDE の [切断] オプションを使用するか、SSH ターミナルを閉じるか、ターミナルでexitコマンドを実行することで、セッションを切断できます。
作業していないときにクラスターを停止して料金が発生しないようにするにはどうすればよいですか?
すぐに停止したい場合は、ワークスペースUIからクラスターを終了してください。 Databricksワークスペース UI の [コンピュート] に移動し、クラスターを見つけて、 [終了] または [停止] をクリックします。
ワークスペースUIから、クラスターに短い自動終了ポリシーを設定します。切断後、SSHトンネルはshutdown-delayの期間(default:10分)待機し、その後クラスターのアイドルタイムアウトが適用されます。--keep-detached-processesを使用している場合、デタッチされたプロセスの実行中はクラスターは自動的に終了しません。これは、そのフラグを指定せずに、そのフラグを指定して起動されたトンネルを再利用する接続にも当てはまります。既存のトンネルへの接続を参照してください。
永続的な依存関係をどのように処理すればよいですか?
セッション中にインストールされた依存関係は、クラスターの再起動後に失われます。要件およびセットアップ スクリプトには永続ストレージ ( /Workspace/Users/<your-username> ) を使用します。自動化にはクラスター ライブラリまたは init スクリプトを使用します。
どの認証方法がサポートされていますか?
認証では、Databricks CLI とお客様の~/.databrickscfgプロファイルファイルを使用します。SSHキーはSSHトンネルによって処理されます。
クラスターから外部データベースまたはサービスに接続できますか?
はい、クラスター ネットワークで送信接続が許可されており、必要なライブラリがある限り可能です。
追加の IDE 拡張機能を使用できますか?
ほとんどの拡張機能は、IDE とクラスターに応じて、リモート SSH セッション内にインストールすると機能します。Visual Studio Code は、デフォルトではリモート ホストにローカル拡張機能をインストールしません。拡張機能パネルを開いてリモート ホストでローカル拡張機能を有効にすることで、手動でインストールできます。特定の拡張機能を常にリモートでインストールするように Visual Studio Code を構成することもできます。「Databricks への接続」を参照してください。
SSHトンネルはPrivate Linkをサポートしていますか?
はい、しかし、ワークスペース管理者はVisual Studio CodeおよびCursorの拡張機能MarketplaceのURLを許可リストに登録する必要があります。お使いのローカルマシンにはインターネットにアクセスできる必要があります。