次の方法で共有


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 を使った一般的な開発ワークフローは次のとおりです。

  1. DBFS と同期するファイルを含むローカル ディレクトリを特定します。
  2. ローカル ディレクトリを同期する DBFS のパスを特定します (または dbx sync を使って既定の DBFS パスを自動的に作成します)。
  3. dbx sync dbfs を実行してローカル ディレクトリを DBFS パスと同期します。 dbx sync により、ローカル ディレクトリのファイル変更の監視が開始されます。
  4. 必要に応じてローカル ディレクトリ内のファイルを変更します。 dbx sync により、リアルタイムで DBFS パス内の対応するファイルにその変更が適用されます。

dbx sync と Databricks Git フォルダーを使った一般的な開発ワークフローは次のとおりです。

  1. 使用できるリポジトリがまだない場合は、Databricks Git フォルダーでサポートされている Git プロバイダーを使ってリポジトリを作成します。
  2. リポジトリを Azure Databricks ワークスペースにクローンします。
  3. リポジトリをローカル開発マシンにクローンします。
  4. dbx sync repo を実行して、ローカルのクローンしたリポジトリとワークスペースのクローンしたリポジトリを関連付けます。 dbx sync により、ローカル ディレクトリのファイル変更の監視が開始されます。
  5. 必要に応じて、ローカルのクローンしたリポジトリ内のファイルを変更します。 dbx sync により、リアルタイムで Databricks Git フォルダー内の対応するファイルにその変更が適用されます。
  6. ワークスペース内のクローンしたリポジトリから 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 を使用する必要があります。 その場合は、この記事全体を通して、pythonpython3 に置き換えてください。

  • pippip がインストールされているかどうかを検査する場合と、インストールされている pip のバージョンを検査する場合は、pip --version または python -m pip --version を実行します。

    pip --version
    
    # Or...
    
    python -m pip --version
    

    注意

    pip の一部のインストールでは、pip ではなく pip3 を使用する必要があります。 その場合は、この記事全体を通して、pippip3 に置き換えてください。

  • 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_HOSTDATABRICKS_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 を使う

  1. ローカル開発マシン上のターミナルまたは PowerShell から、Azure Databricks ワークスペース内の DBFS と同期するファイルを含むディレクトリに移動します。

  2. 次のように 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
    
  3. dbx sync により、現在のローカル ディレクトリ内のファイルと、ワークスペース内の次の DBFS パスのファイルとの同期が開始されます。 次の例のように、dbx sync により、Target base path の後に DBFS パスが出力され、このことが確認されます。

    /tmp/users/<your-Databricks-username>/<local-directory-name>
    

    ヒント

    別のユーザー名または DBFS パスを指定するには、dbx sync を実行するときにそれぞれ --user--dest のオプションを指定します。

  4. 必要に応じて、ローカル ファイルに変更を加えます。

    重要

    同期を続行するには、dbx sync の間、ターミナルまたは PowerShell を開いたままにしておく必要があります。 ターミナルまたは PowerShell を閉じると、dbx sync によるファイル変更の監視は停止され、同期も停止されます。 ファイル変更の同期を再開するには、この手順を最初から繰り返します。

  5. 必要に応じて、ワークスペースの DBFS で前のパスのファイル変更を確認します。

dbx sync で Databricks Git フォルダーを使用する

  1. ローカル開発マシン上のターミナルまたは PowerShell から、Git プロバイダーを使ったリポジトリのクローンを含むルート ディレクトリに変更します。

  2. Azure Databricks ワークスペースで、ローカルのクローンしたリポジトリを同期する Databricks Git フォルダーの名前を特定します。 このリポジトリ名は、ワークスペースのサイドバーで [Git フォルダー] をクリックして見つけることができます。

  3. ローカル開発マシン上で、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
    
  4. dbx sync により、ローカルのクローンしたリポジトリ内のファイルと、ワークスペースの Databricks Git フォルダー内のファイルとの同期が開始されます。 次の例のように、dbx sync により、Target base path の後に Databricks Git フォルダーのパスが出力され、このことが確認されます。

    /Repos/<your-Databricks-username>/<your-repo-name>
    

    ヒント

    別のユーザー名またはリポジトリ名を指定するには、dbx sync を実行するときにそれぞれ --user--dest-repo のオプションを指定します。

  5. 必要に応じて、ローカル ファイルに変更を加えます。

    重要

    同期を続行するには、dbx sync の間、ターミナルまたは PowerShell を開いたままにしておく必要があります。 ターミナルまたは PowerShell を閉じると、dbx sync によるファイル変更の監視は停止され、同期も停止されます。 ファイル変更の同期を再開するには、この手順を最初から繰り返します。

  6. 必要に応じて、ワークスペースの Databricks Git フォルダー内のファイル変更を確認します。

その他のリソース