メインコンテンツまでスキップ

既存のリソースをバンドルに移行する

バンドルをビルドするときに、既に存在し、リモート ワークスペースに完全に設定されている Databricks リソースを含めることができます。Databricks CLI bundle generate コマンドを使用すると、既存のアプリ、ダッシュボード、ジョブ、パイプラインの構成をバンドルにすばやく自動生成できます。バンドル設定ファイルの生成を参照してください。バンドル リソース構成ファイルにコピーして手動で貼り付けることができる構成は、ジョブやパイプラインなどの一部のリソースの Databricks UI で使用できます。

バンドル内のリソースの構成を生成し、バンドルをデプロイした後、 bundle deployment bind コマンドを使用して、バンドル内のリソースをワークスペース内の対応するリソースにバインドします。バンドル・リソースのバインドを参照してください。

このページでは、Databricks CLI または UI を使用してバンドル リソース構成を生成または取得する簡単な例を示します。

バンドル内のリソース定義の詳細については、「 Databricks Asset Bundles リソース」を参照してください。

Databricks CLI を使用して既存のジョブまたはパイプライン構成を生成する

既存のジョブまたはパイプラインのバンドル設定をプログラムで生成するには:

  1. UI のジョブまたはパイプラインのジョブ 詳細 または パイプライン詳細 サイドパネルから、既存のジョブまたはパイプラインの ID を取得します。 または、Databricks CLI databricks jobs list または databricks pipelines list-pipelines コマンドを使用します。

  2. bundle generate job または Databricks CLI コマンドbundle generate pipeline実行し、ジョブまたはパイプライン ID を設定します。

    Bash
    databricks bundle generate job --existing-job-id 6565621249
    Bash
    databricks bundle generate pipeline --existing-pipeline-id 6565621249

    このコマンドは、バンドルの resources フォルダにリソースのバンドル設定ファイルを作成し、参照されているアーティファクトを src フォルダにダウンロードします。

既存のダッシュボードの設定を生成することもできます。「ダッシュボード設定の生成」を参照してください。

UI を使用した既存のジョブ定義の取得

Databricks ワークスペース UI から既存のジョブ定義の YAML 表現を取得するには、次のようにします。

  1. Databricks ワークスペースのサイドバーで、 [ワークフロー] をクリックします。

  2. [ジョブ] タブで、ジョブ の [名前 ] リンクをクリックします。

  3. [ 今すぐ実行 ] ボタンの横にあるケバブをクリックし、[ YAML として編集 ] をクリックします。

  4. YAML をコピーしてバンドルの databricks.yml ファイルに追加するか、バンドル プロジェクトの resources ディレクトリにジョブの構成ファイルを作成し、 databricks.yml ファイルから参照します。「リソース」を参照してください。

  5. 既存のジョブで参照されている Python ファイルとノートブックをダウンロードして、バンドルのプロジェクト ソースに追加します。通常、bundle アーティファクトはバンドル内の src ディレクトリにあります。

ヒント

ノートブックのユーザーインターフェースから[File] > [Export] > IPython ノートブック] をクリックすると、既存のノートブックをDatabricks .ipynbワークスペースからDatabricks 形式にエクスポートできます。

ノートブック、Python ファイル、およびその他のアーティファクトをバンドルに追加したら、ジョブ定義がそれらを適切に参照していることを確認してください。たとえば、バンドルの src ディレクトリにある hello.ipynb という名前のノートブックの場合、次のようになります。

YAML
resources:
jobs:
hello-job:
name: hello-job
tasks:
- task_key: hello-task
notebook_task:
notebook_path: ../src/hello.ipynb

UI でジョブをコードとして表示する方法の詳細については、「 ジョブをコードとして表示する」を参照してください。

UI を使用して既存のパイプライン定義を取得する

Databricks ワークスペース UI から既存のパイプライン定義の YAML 表現を取得するには、次のようにします。

  1. Databricks ワークスペースのサイドバーで、 [ワークフロー] をクリックします。

  2. [DLT ] タブで、パイプラインの [Name ] リンクをクリックします。

  3. [開発 ] ボタンの横にあるケバブをクリックし、[ 設定 YAML の表示 ] をクリックします。

  4. [パイプライン設定 YAML ] ダイアログで、コピー アイコンをクリックして、パイプライン定義の YAML をローカル クリップボードにコピーします。

  5. コピーした YAML をバンドルの databricks.yml ファイルに追加するか、バンドル プロジェクトの resources フォルダーにパイプラインの構成ファイルを作成し、 databricks.yml ファイルから参照します。「リソース」を参照してください。

  6. バンドルのプロジェクトソースを参照するPythonファイルおよびノートブックをダウンロードして追加します。通常、bundle アーティファクトはバンドル内の src ディレクトリにあります。

ヒント

ノートブックのユーザーインターフェースから[File] > [Export] > IPython ノートブック] をクリックすると、既存のノートブックをDatabricks .ipynbワークスペースからDatabricks 形式にエクスポートできます。

ノートブック、Python ファイル、その他のアーティファクトをバンドルに追加したら、パイプライン定義がそれらを適切に参照していることを確認します。たとえば、バンドルの src/ ディレクトリにある hello.ipynb という名前のノートブックの場合、次のようになります。

YAML
resources:
pipelines:
hello-pipeline:
name: hello-pipeline
libraries:
- notebook:
path: ../src/hello.ipynb

リソースをリモートの対応するリソースにバインドする

通常、バンドルにリソースを追加した後、バンドル内のリソースとワークスペース内の既存のリソースが同期していることを確認する必要があります。bundle deployment bindコマンドを使用すると、それらをリンクできます。リソースをバインドすると、ワークスペース内のリンクされた Databricks リソースは、次の bundle deployのバンドルで定義されている構成に基づいて更新されます。bundle deployment bindをサポートするリソースの一覧については、「バンドル リソースのバインド」を参照してください。

たとえば、次のコマンドは、リソース hello_job をワークスペース内の対応するリモートにバインドします。バンドル内のジョブ構成に対する更新が、バンドルが次にデプロイされるときに、対応するリモート・ジョブに適用されることを確認するためのプロンプトが出されます。

Bash
databricks bundle deployment bind hello_job 6565621249

バンドルリソースとワークスペース内の対応するリソースとの間のリンクを削除するには、 bundle deployment unbindを使用します。バンドル・リソースのバインド解除を参照してください。

Bash
databricks bundle deployment unbind 6565621249