既存のリソースをバンドルに移行する
バンドルをビルドするときに、既に存在し、リモート ワークスペースに完全に設定されている Databricks リソースを含めることができます。Databricks CLI bundle generate
コマンドを使用すると、既存のアプリ、ダッシュボード、ジョブ、パイプラインの構成をバンドルにすばやく自動生成できます。バンドル設定ファイルの生成を参照してください。バンドル リソース構成ファイルにコピーして手動で貼り付けることができる構成は、ジョブやパイプラインなどの一部のリソースの Databricks UI で使用できます。
バンドル内のリソースの構成を生成し、バンドルをデプロイした後、 bundle deployment bind
コマンドを使用して、バンドル内のリソースをワークスペース内の対応するリソースにバインドします。バンドル・リソースのバインドを参照してください。
このページでは、Databricks CLI または UI を使用してバンドル リソース構成を生成または取得する簡単な例を示します。
バンドル内のリソース定義の詳細については、「 Databricks Asset Bundles リソース」を参照してください。
Databricks CLI を使用して既存のジョブまたはパイプライン構成を生成する
既存のジョブまたはパイプラインのバンドル設定をプログラムで生成するには:
-
UI のジョブまたはパイプラインのジョブ 詳細 または パイプライン詳細 サイドパネルから、既存のジョブまたはパイプラインの ID を取得します。 または、Databricks CLI
databricks jobs list
またはdatabricks pipelines list-pipelines
コマンドを使用します。 -
bundle generate job
または Databricks CLI コマンドbundle generate pipeline
実行し、ジョブまたはパイプライン ID を設定します。Bashdatabricks bundle generate job --existing-job-id 6565621249
Bashdatabricks bundle generate pipeline --existing-pipeline-id 6565621249
このコマンドは、バンドルの
resources
フォルダにリソースのバンドル設定ファイルを作成し、参照されているアーティファクトをsrc
フォルダにダウンロードします。
既存のダッシュボードの設定を生成することもできます。「ダッシュボード設定の生成」を参照してください。
UI を使用した既存のジョブ定義の取得
Databricks ワークスペース UI から既存のジョブ定義の YAML 表現を取得するには、次のようにします。
-
Databricks ワークスペースのサイドバーで、 [ワークフロー] をクリックします。
-
[ジョブ] タブで、ジョブ の [名前 ] リンクをクリックします。
-
[ 今すぐ実行 ] ボタンの横にあるケバブをクリックし、[ YAML として編集 ] をクリックします。
-
YAML をコピーしてバンドルの
databricks.yml
ファイルに追加するか、バンドル プロジェクトのresources
ディレクトリにジョブの構成ファイルを作成し、databricks.yml
ファイルから参照します。「リソース」を参照してください。 -
既存のジョブで参照されている Python ファイルとノートブックをダウンロードして、バンドルのプロジェクト ソースに追加します。通常、bundle アーティファクトはバンドル内の
src
ディレクトリにあります。
ノートブックのユーザーインターフェースから[File] > [Export] > IPython ノートブック] をクリックすると、既存のノートブックをDatabricks .ipynb
ワークスペースからDatabricks 形式にエクスポートできます。
ノートブック、Python ファイル、およびその他のアーティファクトをバンドルに追加したら、ジョブ定義がそれらを適切に参照していることを確認してください。たとえば、バンドルの src
ディレクトリにある hello.ipynb
という名前のノートブックの場合、次のようになります。
resources:
jobs:
hello-job:
name: hello-job
tasks:
- task_key: hello-task
notebook_task:
notebook_path: ../src/hello.ipynb
UI でジョブをコードとして表示する方法の詳細については、「 ジョブをコードとして表示する」を参照してください。
UI を使用して既存のパイプライン定義を取得する
Databricks ワークスペース UI から既存のパイプライン定義の YAML 表現を取得するには、次のようにします。
-
Databricks ワークスペースのサイドバーで、 [ワークフロー] をクリックします。
-
[DLT ] タブで、パイプラインの [Name ] リンクをクリックします。
-
[開発 ] ボタンの横にあるケバブをクリックし、[ 設定 YAML の表示 ] をクリックします。
-
[パイプライン設定 YAML ] ダイアログで、コピー アイコンをクリックして、パイプライン定義の YAML をローカル クリップボードにコピーします。
-
コピーした YAML をバンドルの
databricks.yml
ファイルに追加するか、バンドル プロジェクトのresources
フォルダーにパイプラインの構成ファイルを作成し、databricks.yml
ファイルから参照します。「リソース」を参照してください。 -
バンドルのプロジェクトソースを参照するPythonファイルおよびノートブックをダウンロードして追加します。通常、bundle アーティファクトはバンドル内の
src
ディレクトリにあります。
ノートブックのユーザーインターフェースから[File] > [Export] > IPython ノートブック] をクリックすると、既存のノートブックをDatabricks .ipynb
ワークスペースからDatabricks 形式にエクスポートできます。
ノートブック、Python ファイル、その他のアーティファクトをバンドルに追加したら、パイプライン定義がそれらを適切に参照していることを確認します。たとえば、バンドルの src/
ディレクトリにある hello.ipynb
という名前のノートブックの場合、次のようになります。
resources:
pipelines:
hello-pipeline:
name: hello-pipeline
libraries:
- notebook:
path: ../src/hello.ipynb
リソースをリモートの対応するリソースにバインドする
通常、バンドルにリソースを追加した後、バンドル内のリソースとワークスペース内の既存のリソースが同期していることを確認する必要があります。bundle deployment bind
コマンドを使用すると、それらをリンクできます。リソースをバインドすると、ワークスペース内のリンクされた Databricks リソースは、次の bundle deploy
のバンドルで定義されている構成に基づいて更新されます。bundle deployment bind
をサポートするリソースの一覧については、「バンドル リソースのバインド」を参照してください。
たとえば、次のコマンドは、リソース hello_job
をワークスペース内の対応するリモートにバインドします。バンドル内のジョブ構成に対する更新が、バンドルが次にデプロイされるときに、対応するリモート・ジョブに適用されることを確認するためのプロンプトが出されます。
databricks bundle deployment bind hello_job 6565621249
バンドルリソースとワークスペース内の対応するリソースとの間のリンクを削除するには、 bundle deployment unbind
を使用します。バンドル・リソースのバインド解除を参照してください。
databricks bundle deployment unbind 6565621249