dbx を使用してローカル ファイルをリモート ワークスペースとリアルタイムで同期する
重要
このドキュメントは廃止され、更新されない可能性があります。
Databricks では、dbx sync
ではなく、Databricks CLI バージョン 0.205 以降を使うことをお勧めします。これには、databricks sync
コマンドを使った dbx sync
に似た機能が含まれています。
Visual Studio Code 用の Databricks 拡張機能には、Visual Studio Code IDE に統合済みの dbx sync
に似た機能も含まれています。 dbx sync
では、ローカル開発マシンから Azure Databricks ワークスペース内の DBFS、ワークスペースの場所、および Databricks Git フォルダーに対し、ファイルの変更を同期できることに注意してください。 Visual Studio Code 用の Databricks 拡張機能でサポートされるのは、ワークスペース ユーザー (/Users
) ファイルと Databricks Git フォルダー (/Repos
) へのファイル変更の同期のみです。
Note
この記事で説明する Databricks Labs による dbx
は、現状のまま提供されており、カスタマー テクニカル サポート チャネルを通じて Databricks によってサポートされているわけではありません。 ご質問や機能のリクエストは、GitHub の databrickslabs/dbx リポジトリの Issue ページを通じてご連絡いただけます。
また、dbx by Databricks Labs を使って、ローカル開発マシン上のファイルに対する変更を Azure Databricks ワークスペース内の対応するファイルとリアルタイムで同期することもできます。 これらのワークスペース ファイルは、DBFS または Databricks Git フォルダー内にあります。
dbx
(dbx sync
とも呼ばれます) とのリアルタイムのファイル同期は、ラピッド コード開発のシナリオで役に立ちます。 たとえば、ローカルの統合開発環境 (IDE) を使い、構文の強調表示、スマート コード補完、コード リンティング、テストとデバッグなどの生産性向上機能を利用できます。 その後、すぐにワークスペースに移動し、更新したコードを実行できます。
単独で、自動ジョブと共に、または IDE と共にdbx sync
を使用できます。
dbx sync
の開発ワークフロー
dbx sync
の開発ワークフローは、DBFS を使うものと、Databricks Git フォルダーを使うものの 2 種類があります。
dbx sync
と DBFS を使った一般的な開発ワークフローは次のとおりです。
- DBFS と同期するファイルを含むローカル ディレクトリを特定します。
- ローカル ディレクトリを同期する DBFS のパスを特定します (または
dbx sync
を使って既定の DBFS パスを自動的に作成します)。 dbx sync dbfs
を実行してローカル ディレクトリを DBFS パスと同期します。dbx sync
により、ローカル ディレクトリのファイル変更の監視が開始されます。- 必要に応じてローカル ディレクトリ内のファイルを変更します。
dbx sync
により、リアルタイムで DBFS パス内の対応するファイルにその変更が適用されます。
dbx sync
と Databricks Git フォルダーを使った一般的な開発ワークフローは次のとおりです。
- 使用できるリポジトリがまだない場合は、Databricks Git フォルダーでサポートされている Git プロバイダーを使ってリポジトリを作成します。
- リポジトリを Azure Databricks ワークスペースにクローンします。
- リポジトリをローカル開発マシンにクローンします。
dbx sync repo
を実行して、ローカルのクローンしたリポジトリとワークスペースのクローンしたリポジトリを関連付けます。dbx sync
により、ローカル ディレクトリのファイル変更の監視が開始されます。- 必要に応じて、ローカルのクローンしたリポジトリ内のファイルを変更します。
dbx sync
により、リアルタイムで Databricks Git フォルダー内の対応するファイルにその変更が適用されます。 - ワークスペース内のクローンしたリポジトリから Git プロバイダーに対して、更新されたファイルを定期的にプッシュして、Git プロバイダーのリポジトリを最新の状態に保つようにします。
重要
dbx sync
によって実行されるのは、ローカル開発マシンからリモート ワークスペースに対する一方向のファイル変更のリアルタイム同期のみです。 そのため、Databricks では、dbx sync
によって監視されているファイルに対して Azure Databricks ワークスペース内で変更を開始することはお勧めしません。 そのようなワークスペースで開始するファイル変更を行う必要がある場合は、次のことも実行する必要があります。
- DBFS 内でファイルを変更する場合は、対応する変更をローカル ファイルに手動で加えます。
- Databricks Git フォルダーでファイルを変更する場合は、ワークスペースから Git プロバイダーにファイルの変更をプッシュします。 その後、ローカル開発マシン上で、Git プロバイダーからそれらのファイルの変更をプルします。
要件
Databricks Git フォルダーで dbx sync
を使う場合、Azure Databricks ワークスペースは次の要件を満たしている必要があります。
- 必須ではありませんが、Git プロバイダーを使ったリポジトリのクローンをお勧めします。
ローカル開発マシンには、次のものをインストールしておく必要があります。
Python バージョン 3.8 以降。 Python がインストールされているかどうかを確認する場合と、インストールされている Python のバージョンを確認する場合は、ターミナルまたは PowerShell で
python --version
を実行します。python --version
注意
python
の一部のインストールでは、python
ではなくpython3
を使用する必要があります。 その場合は、この記事全体を通して、python
をpython3
に置き換えてください。pip。
pip
がインストールされているかどうかを検査する場合と、インストールされているpip
のバージョンを検査する場合は、pip --version
またはpython -m pip --version
を実行します。pip --version # Or... python -m pip --version
注意
pip
の一部のインストールでは、pip
ではなくpip3
を使用する必要があります。 その場合は、この記事全体を通して、pip
をpip3
に置き換えてください。dbx version 0.8.0 以降。
dbx
がインストールされているかどうかを確認する場合と、インストールされているdbx
のバージョンを確認する場合は、dbx --version
を実行します。 Python パッケージ インデックス (PyPI) からdbx
をインストールするには、pip install dbx
またはpython -m pip install dbx
を実行します。 (dbx
には dbx sync が含まれています)。# Check whether dbx is installed, and check its version. dbx --version # Install dbx. pip install dbx # Or... python -m pip install dbx
注意
dbx
の詳細については、dbx by Databricks Labs に関する記事と dbx のドキュメントを参照してください。Databricks CLI バージョン 0.18 以前では、認証を使って設定します。
dbx
をインストールすると、レガシ Databricks CLI (Databricks CLI バージョン 0.17) が自動的にインストールされます。 この認証は、次の場所のいずれかまたは両方のローカル開発マシンで設定できます。DATABRICKS_HOST
とDATABRICKS_TOKEN
の環境変数内 (レガシ Databricks CLI バージョン 0.8.0 以降)。.databrickscfg
ファイル内の Azure Databricks 構成プロファイル。
dbx
によって、これら 2 つの場所でそれぞれ認証資格情報が検索されます。dbx
では、検出された一致する資格情報の最初のセットのみが使用されます。注意
.databrickscfg
ファイルを使う場合、dbx sync
によって、既定でDEFAULT
という名前の構成プロファイルがこのファイル内で検索されます。 別のプロファイルを指定するには、この記事の後半で説明するdbx sync
コマンドを実行するときに--profile
オプションを使います。dbx
は認証での .netrc ファイルの使用をサポートしていません。Databricks Git フォルダーで
dbx sync
を使う場合、必須ではありませんが、Git プロバイダーを使ったリポジトリのローカル クローンをお勧めします。 ローカル クローンを行うには、Git プロバイダーのドキュメントを参照してください。
dbx sync
で DBFS を使う
ローカル開発マシン上のターミナルまたは PowerShell から、Azure Databricks ワークスペース内の DBFS と同期するファイルを含むディレクトリに移動します。
次のように dbx sync コマンドを実行し、ローカル ディレクトリをワークスペース内の DBFS と同期します (現在のディレクトリを表すドット (
.
) を必ず末尾に付けてください)。dbx sync dbfs --source .
ヒント
別のソース ディレクトリを指定するには、ドット (
.
) を別のパスに置き換えてください。注意
エラー
Error: No such command 'sync'
が表示される場合は、dbx
のインストールが古い可能性があります。 この問題を解決するには、pip install --upgrade dbx==<version>
またはpython -m pip install --upgrade dbx==version
を実行します (この<version>
はdbx
の最新バージョンです)。 このバージョン番号は dbx の PyPI Web ページで確認できます。pip install --upgrade dbx==<version> # Or... python -m pip install --upgrade dbx==version
dbx sync
により、現在のローカル ディレクトリ内のファイルと、ワークスペース内の次の DBFS パスのファイルとの同期が開始されます。 次の例のように、dbx sync
により、Target base path
の後に DBFS パスが出力され、このことが確認されます。/tmp/users/<your-Databricks-username>/<local-directory-name>
ヒント
別のユーザー名または DBFS パスを指定するには、
dbx sync
を実行するときにそれぞれ--user
と--dest
のオプションを指定します。必要に応じて、ローカル ファイルに変更を加えます。
重要
同期を続行するには、
dbx sync
の間、ターミナルまたは PowerShell を開いたままにしておく必要があります。 ターミナルまたは PowerShell を閉じると、dbx sync
によるファイル変更の監視は停止され、同期も停止されます。 ファイル変更の同期を再開するには、この手順を最初から繰り返します。必要に応じて、ワークスペースの DBFS で前のパスのファイル変更を確認します。
dbx sync
で Databricks Git フォルダーを使用する
ローカル開発マシン上のターミナルまたは PowerShell から、Git プロバイダーを使ったリポジトリのクローンを含むルート ディレクトリに変更します。
Azure Databricks ワークスペースで、ローカルのクローンしたリポジトリを同期する Databricks Git フォルダーの名前を特定します。 このリポジトリ名は、ワークスペースのサイドバーで [Git フォルダー] をクリックして見つけることができます。
ローカル開発マシン上で、dbx sync コマンドを実行して、次のようにローカルのクローンしたリポジトリをワークスペース内の Databricks Git フォルダーと同期します (
<your-repo-name>
は Databricks Git フォルダー内のリポジトリ名に置き換えます)。 (現在のディレクトリを表すドット (.
) を必ず末尾に付けてください)。dbx sync repo -d <your-repo-name> --source .
ヒント
別のソース ディレクトリを指定するには、ドット (
.
) を別のパスに置き換えてください。注意
エラー
Error: No such command 'sync'
が表示される場合は、dbx
のインストールが古い可能性があります。 この問題を解決するには、pip install --upgrade dbx==<version>
またはpython -m pip install --upgrade dbx==version
を実行します (この<version>
はdbx
の最新バージョンです)。 このバージョン番号は dbx の PyPI Web ページで確認できます。pip install --upgrade dbx==<version> # Or... python -m pip install --upgrade dbx==version
dbx sync
により、ローカルのクローンしたリポジトリ内のファイルと、ワークスペースの Databricks Git フォルダー内のファイルとの同期が開始されます。 次の例のように、dbx sync
により、Target base path
の後に Databricks Git フォルダーのパスが出力され、このことが確認されます。/Repos/<your-Databricks-username>/<your-repo-name>
ヒント
別のユーザー名またはリポジトリ名を指定するには、
dbx sync
を実行するときにそれぞれ--user
と--dest-repo
のオプションを指定します。必要に応じて、ローカル ファイルに変更を加えます。
重要
同期を続行するには、
dbx sync
の間、ターミナルまたは PowerShell を開いたままにしておく必要があります。 ターミナルまたは PowerShell を閉じると、dbx sync
によるファイル変更の監視は停止され、同期も停止されます。 ファイル変更の同期を再開するには、この手順を最初から繰り返します。必要に応じて、ワークスペースの Databricks Git フォルダー内のファイル変更を確認します。
その他のリソース
- dbx のドキュメント
- dbx sync のドキュメント
- GitHub の databrickslabs/dbx リポジトリ
- dbx の制限事項