Databricks アセット バンドルを使用して Delta Live Tables パイプラインを開発する

Databricks アセット バンドル (単に バンドルとも呼ばれます) を使用すると、Delta Live Tables パイプラインなどの Databricks リソースをプログラムで検証、デプロイ、実行できます。 バンドルを使用して、Databricks ジョブをプログラムで管理したり、MLOps スタックを操作したりすることもできます。 「 Databricks アセット バンドルとは」を参照してください。

この記事では、Delta Live Tables パイプラインをプログラムで管理するバンドルを使用するために、ローカル開発コンピューターから実行できる一連の手順について説明します。

要件

  • Databricks CLI バージョン 0.218.0 以上。 インストールされている Databricks CLI のバージョンを確認するには、コマンドdatabricks -vを実行します。 Databricks CLI をインストールするには、 「Databricks CLI のインストールまたは更新」を参照してください。

  • リモート ワークスペースでは、ワークスペース ファイルが有効になっている必要があります。 「 ワークスペース ファイルとは」を参照してください。

(オプション)Python モジュールをインストールしてローカル パイプライン開発をサポートする

Databricks には、IDE でコードを記述するときに構文チェック、オートコンプリート、データ型チェックを提供することで、Delta Live Tables パイプライン コードのローカル開発を支援する Python モジュールが用意されています。

ローカル開発用のPythonモジュールはPyPiで利用できます。 モジュールをインストールするには、「 Delta Live Tables の Python スタブ」を参照してください。

決定する事項:テンプレートを使用するか、手動でバンドルを作成します

バンドルをテンプレートを使用して作成するか、手動で作成するかを決定します。

テンプレートを使用したバンドルの作成

これらのステップでは、Python 用の Databricks デフォルト バンドル テンプレートを使用してバンドルを作成します。 これらのステップでは、元のデータセットからデータをフィルター処理する Delta Live Tables パイプラインを定義するノートブックで構成されるバンドルを作成する方法について説明します。 次に、Databricks ワークスペース内でデプロイされたパイプラインを検証、デプロイ、実行します。

ステップ 1: 認証を設定する

この手順では、開発マシン上の Databricks CLI と Databricks ワークスペース間の認証を設定します。 この記事では、OAuth ユーザー対マシン (U2M) 認証と、 DEFAULT という名前の対応する Databricks 構成プロファイルを認証に使用することを前提としています。

U2M認証は、これらをリアルタイムで試すのに適しています。 完全に自動化されたワークフローの場合、Databricks では、代わりに OAuth マシン間 (M2M) 認証を使用することをお勧めします。 「認証」の M2M 認証の設定手順を参照してください。

  1. Databricks CLI を使用して、ターゲット ワークスペースごとに次のコマンドを実行して、OAuth トークン管理をローカルで開始します。

    次のコマンドで、 <workspace-url> を Databricks ワークスペース インスタンスの URL に置き換えます (例: https://dbc-a1b2345c-d6e7.cloud.databricks.com)。

    databricks auth login --host <workspace-url>
    
  2. Databricks CLIは、入力した情報をDatabricks構成プロファイルとして保存するよう促します。Enterを押して提案されたプロファイル名を受け入れるか、新規または既存のプロファイルの名前を入力してください。同じ名前の既存のプロファイルは、入力した情報で上書きされます。プロファイルを使用すると、複数のワークスペース間で認証コンテキストをすばやく切り替えることができます。

    既存のプロファイルの一覧を取得するには、別のターミナルまたはコマンド プロンプトで、Databricks CLI を使用してコマンド databricks auth profilesを実行します。 特定のプロファイルの既存の設定を表示するには、コマンド databricks auth env --profile <profile-name>を実行します。

  3. Web ブラウザーで、画面の指示に従って Databricks ワークスペースにログインします。

  4. プロファイルの現在の OAuth トークン値とトークンの今後の有効期限のタイムスタンプを表示するには、次のいずれかのコマンドを実行します。

    • databricks auth token --host <workspace-url>

    • databricks auth token -p <profile-name>

    • databricks auth token --host <workspace-url> -p <profile-name>

    同じ --host 値を持つプロファイルが複数ある場合は、Databricks CLI で一致する正しい OAuth トークン情報を見つけられるように、 --host オプションと -p オプションを一緒に指定する必要がある場合があります。

ステップ 2: バンドルを作成する

バンドルには、デプロイするアーティファクトと、実行するワークフローの設定が含まれています。

  1. ターミナルまたはコマンド プロンプトを使用して、テンプレートの生成されたバンドルを含むローカル開発マシン上のディレクトリに切り替えます。

  2. Databricks CLI を使用して、 bundle init コマンドを実行します。

    databricks bundle init
    
  3. Template to useの場合は、デフォルト値の default-python のままにして、 Enterを押します。

  4. [ Unique name for this project] では、デフォルト値の my_projectのままにするか、別の値を入力して Enterキーを押します。 これにより、このバンドルのルートディレクトリの名前が決まります。 このルートディレクトリは、現在の作業ディレクトリ内に作成されます。

  5. Include a stub (sample) notebookの場合は、[no] を選択して Enterを押します。これにより、このオプションに関連付けられているサンプル ノートブックには Delta Live Tables コードが含まれていないため、この時点でサンプル ノートブックを追加しないように Databricks CLI に指示されます。

  6. Include a stub (sample) DLT pipelineの場合は、デフォルト値の yes のままにして、 Enterを押します。これにより、 Delta Live Tables コードを含むサンプル ノートブックを追加するように Databricks CLI に指示されます。

  7. Include a stub (sample) Python packageの場合は、[no] を選択して Enterを押します。これにより、サンプル Python wheel パッケージ ファイルまたは関連するビルド手順をバンドルに追加しないように Databricks CLI に指示されます。

ステップ 3: バンドルを調べる

テンプレートによって生成されたファイルを表示するには、新しく作成したバンドルのルート ディレクトリに切り替え、任意の IDE (Visual Studio Code など) でこのディレクトリを開きます。 特に重要なファイルには、次のものがあります。

  • databricks.yml: このファイルは、バンドルのプログラム名を指定し、パイプライン定義への参照を含み、ターゲットワークスペースに関する設定を指定します。

  • resources/<project-name>_job.yml および resources/<project-name>_pipeline.yml: このファイルは、パイプラインの設定を指定します。

  • src/dlt_pipeline.ipynb: このファイルは、実行時にパイプラインを実行するノートブックです。

パイプラインをカスタマイズする場合、パイプライン宣言内のマッピングは、REST API リファレンスの POST /api/2.0/pipelines で定義されているパイプライン作成操作の要求ペイロードに対応し、YAML 形式で表されます。

ステップ 4: プロジェクトのバンドル設定ファイルを検証する

このステップでは、バンドル設定が有効かどうかを確認します。

  1. ルート ディレクトリから、Databricks CLI を使用して、次のように bundle validate コマンドを実行します。

    databricks bundle validate
    
  2. バンドル設定の概要が返された場合、検証は成功しています。 エラーが返された場合は、エラーを修正してから、この手順を繰り返します。

このステップの後にバンドルに変更を加えた場合は、この手順を繰り返して、バンドル設定がまだ有効かどうかを確認する必要があります。

ステップ5: ローカル プロジェクトをリモート ワークスペースに配置する

この手順では、ローカル ノートブックをリモート Databricks ワークスペースにデプロイし、ワークスペース内に Delta Live Tables パイプラインを作成します。

  1. Databricks CLI を使用して、次のように bundle validate コマンドを実行します。

    databricks bundle deploy -t dev
    
  2. ローカル ノートブックがデプロイされたかどうかを確認する: Databricks ワークスペースのサイドバーで、[ ワークスペース] をクリックします。

  3. src フォルダー> [ユーザー] > <your-username> > .bundle > <project-name> > 開発>ファイルをクリックします。ノートブックはこのフォルダーにある必要があります。

  4. パイプラインが作成されたかどうかを確認する: Databricks ワークスペースのサイドバーで、 Delta Live Tablesをクリックします。

  5. [Delta Live Tables] タブで、[開発<your-username>] <project-name>パイプライン] をクリックします。

このステップの後にバンドルに変更を加えた場合は、ステップ 4 から 5 を繰り返してバンドル設定がまだ有効かどうかを確認してから、プロジェクトを再デプロイする必要があります。

ステップ 6: デプロイしたプロジェクトを実行する

この手順では、ワークスペースで Delta Live Tables パイプラインを実行します。

  1. ルート ディレクトリから、Databricks CLI を使用して次のように bundle run コマンドを実行し、 <project-name> を手順 2 のプロジェクトの名前に置き換えます。

    databricks bundle run -t dev <project-name>_pipeline
    
  2. ターミナルに表示される Update URL の値をコピーし、この値を Web ブラウザーに貼り付けて Databricks ワークスペースを開きます。

  3. Databricks ワークスペースで、パイプラインが正常に完了したら、 taxi_raw ビューと filtered_taxis マテリアライズドビューをクリックして詳細を表示します。

このステップの後にバンドルに変更を加えた場合は、ステップ 4 から 6 を繰り返してバンドル設定がまだ有効かどうかを確認し、プロジェクトを再デプロイして、再デプロイされたプロジェクトを実行する必要があります。

ステップ 7: クリーンアップ

このステップでは、デプロイされたノートブックとパイプラインをワークスペースから削除します。

  1. ルート ディレクトリから、Databricks CLI を使用して、次のように bundle destroy コマンドを実行します。

    databricks bundle destroy -t dev
    
  2. パイプラインの削除要求を確認する:リソースを完全に破棄するように求められたら、「 y 」と入力して Enterを押します。

  3. ノートブックの削除要求を確認する: 以前に展開したフォルダーとそのすべてのファイルを完全に破棄するように求められたら、「 y 」と入力して Enterを押します。

  4. 開発マシンからもバンドルを削除する場合は、ステップ 2 からローカル ディレクトリを削除できます。

テンプレートを使用してバンドルを作成するための手順の最後に到達しました。

バンドルを手動で作成する

これらのステップでは、最初からバンドルを作成します。 これらのステップは、 Delta Live Tablesディレクティブが埋め込まれたノートブックと、このノートブックを実行するためのDelta Live Tablesパイプラインの定義で構成されるバンドルを作成するためのガイドです。 次に、Databricks ワークスペース内のパイプラインから、デプロイされたノートブックを検証、デプロイ、および実行します。

ステップ 1: バンドルを作成する

バンドルには、デプロイするアーティファクトと、実行するワークフローの設定が含まれています。

  1. 開発用コンピューターに空のディレクトリを作成または識別します。

  2. ターミナルの空のディレクトリに切り替えるか、IDE で空のディレクトリを開きます。

ヒント

空のディレクトリは、Git プロバイダーによって管理される複製されたリポジトリに関連付けられている可能性があります。 これにより、外部バージョン管理を使用してバンドルを管理し、プロジェクトの他の開発者や IT プロフェッショナルとより簡単に共同作業を行うことができます。 ただし、このデモを簡略化するために、ここでは複製 repo は使用しません。

このデモの リポジトリを複製することを選択した場合、Databricks では、リポジトリを空にするか、 README.gitignoreなどの基本的なファイルのみを含めることをお勧めします。 そうしないと、リポジトリ内の既存のファイルが Databricks ワークスペースに不必要に同期される可能性があります。

ステップ 2: プロジェクトにノートブックを追加する

このステップでは、プロジェクトにノートブックを追加します。 このノートブックでは、次の処理を行います。

  • から生の クリックストリームDatabricks データを読み取り、 JSONワークスペースの DBFS ルート フォルダー内の フォルダーにある生のDelta pipelinesテーブルに読み込みます。Databricks

  • 未加工の Delta テーブルからレコードを読み取り、Delta Live Tables クエリーとエクスペクテーションを使用して、クリーニングおよび準備されたデータを含む新しい Delta テーブルを作成します。

  • 新しい Delta テーブルで用意されたデータの分析を Delta Live Tables クエリーで行います。

  1. ディレクトリのルートから、 dlt-wikipedia-python.pyという名前のファイルを作成します。

  2. dlt-wikipedia-python.py ファイルに次のコードを追加します。

    # Databricks notebook source
    import dlt
    from pyspark.sql.functions import *
    
    # COMMAND ----------
    json_path = "/databricks-datasets/wikipedia-datasets/data-001/clickstream/raw-uncompressed-json/2015_2_clickstream.json"
    
    # COMMAND ----------
    @dlt.table(
      comment="The raw wikipedia clickstream dataset, ingested from /databricks-datasets."
    )
    def clickstream_raw():
      return (spark.read.format("json").load(json_path))
    
    # COMMAND ----------
    @dlt.table(
      comment="Wikipedia clickstream data cleaned and prepared for analysis."
    )
    @dlt.expect("valid_current_page_title", "current_page_title IS NOT NULL")
    @dlt.expect_or_fail("valid_count", "click_count > 0")
    def clickstream_prepared():
      return (
        dlt.read("clickstream_raw")
          .withColumn("click_count", expr("CAST(n AS INT)"))
          .withColumnRenamed("curr_title", "current_page_title")
          .withColumnRenamed("prev_title", "previous_page_title")
          .select("current_page_title", "click_count", "previous_page_title")
      )
    
    # COMMAND ----------
    @dlt.table(
      comment="A table containing the top pages linking to the Apache Spark page."
    )
    def top_spark_referrers():
      return (
        dlt.read("clickstream_prepared")
          .filter(expr("current_page_title == 'Apache_Spark'"))
          .withColumnRenamed("previous_page_title", "referrer")
          .sort(desc("click_count"))
          .select("referrer", "click_count")
          .limit(10)
      )
    

ステップ 3: バンドル構成スキーマファイルをプロジェクトに追加する

YAML ファイルや JSON スキーマファイルをサポートする Visual Studio Code、PyCharm Professional、IntelliJ IDEA Ultimate などの IDE を使用している場合は、IDE を使用してバンドル構成スキーマファイルを作成するだけでなく、プロジェクトのバンドル構成ファイルの構文とフォーマットを確認し、コード補完のヒントを提供できます。 次のように。 ステップ 5 で後述するバンドル設定ファイルは YAML ベースですが、このステップのバンドル設定スキーマファイルは JSON ベースであることに注意してください。

  1. たとえば、Visual Studio Code Marketplace から YAML 拡張機能 をインストールするなどして、YAML 言語サーバーのサポートを Visual Studio Code に追加します。

  2. Databricks CLI を使用して Databricks アセット バンドル構成 JSON スキーマ ファイルを生成し、 bundle schema コマンドを実行し、出力を JSON ファイルにリダイレクトします。 たとえば、次のように、現在のディレクトリ内に bundle_config_schema.json という名前のファイルを生成します。

    databricks bundle schema > bundle_config_schema.json
    
  3. ステップ 5 の後半で、バンドル構成ファイルの先頭に次のコメントを追加し、バンドル構成ファイルを指定した JSON スキーマ・ファイルに関連付けることに注意してください。

    # yaml-language-server: $schema=bundle_config_schema.json
    

    前のコメントで、Databricks アセット バンドル構成 JSON スキーマ ファイルが別のパスにある場合は、 bundle_config_schema.json スキーマ ファイルへの完全なパスに置き換えます。

  1. Databricks CLI を使用して Databricks アセット バンドル構成 JSON スキーマ ファイルを生成し、 bundle schema コマンドを実行し、出力を JSON ファイルにリダイレクトします。 たとえば、次のように、現在のディレクトリ内に bundle_config_schema.json という名前のファイルを生成します。

    databricks bundle schema > bundle_config_schema.json
    
  2. バンドル構成 JSON スキーマファイルを認識するように PyCharm を設定し、「カスタム JSON スキーマを構成する」の手順に従って JSON スキーママッピングを完了します。

  3. 手順 5 の後半では、PyCharm を使用してバンドル構成ファイルを作成または開くことに注意してください。 慣例により、このファイルの名前は databricks.ymlです。

  1. Databricks CLI を使用して Databricks アセット バンドル構成 JSON スキーマ ファイルを生成し、 bundle schema コマンドを実行し、出力を JSON ファイルにリダイレクトします。 たとえば、次のように、現在のディレクトリ内に bundle_config_schema.json という名前のファイルを生成します。

    databricks bundle schema > bundle_config_schema.json
    
  2. バンドル構成 JSON スキーマ ファイルを認識するように IntelliJ IDEA を構成し、「カスタム JSON スキーマの構成」の手順に従って JSON スキーマ マッピングを完了します。

  3. 手順 5 の後半では、IntelliJ IDEA を使用してバンドル構成ファイルを作成または開くことに注意してください。 慣例により、このファイルの名前は databricks.ymlです。

ステップ 4: 認証を設定する

この手順では、開発マシン上の Databricks CLI と Databricks ワークスペース間の認証を設定します。 この記事では、OAuth ユーザー対マシン (U2M) 認証と、 DEFAULT という名前の対応する Databricks 構成プロファイルを認証に使用することを前提としています。

U2M認証は、これらをリアルタイムで試すのに適しています。 完全に自動化されたワークフローの場合、Databricks では、代わりに OAuth マシン間 (M2M) 認証を使用することをお勧めします。 「認証」の M2M 認証の設定手順を参照してください。

  1. Databricks CLI を使用して、ターゲット ワークスペースごとに次のコマンドを実行して、OAuth トークン管理をローカルで開始します。

    次のコマンドで、 <workspace-url> を Databricks ワークスペース インスタンスの URL に置き換えます (例: https://dbc-a1b2345c-d6e7.cloud.databricks.com)。

    databricks auth login --host <workspace-url>
    
  2. Databricks CLIは、入力した情報をDatabricks構成プロファイルとして保存するよう促します。Enterを押して提案されたプロファイル名を受け入れるか、新規または既存のプロファイルの名前を入力してください。同じ名前の既存のプロファイルは、入力した情報で上書きされます。プロファイルを使用すると、複数のワークスペース間で認証コンテキストをすばやく切り替えることができます。

    既存のプロファイルの一覧を取得するには、別のターミナルまたはコマンド プロンプトで、Databricks CLI を使用してコマンド databricks auth profilesを実行します。 特定のプロファイルの既存の設定を表示するには、コマンド databricks auth env --profile <profile-name>を実行します。

  3. Web ブラウザーで、画面の指示に従って Databricks ワークスペースにログインします。

  4. プロファイルの現在の OAuth トークン値とトークンの今後の有効期限のタイムスタンプを表示するには、次のいずれかのコマンドを実行します。

    • databricks auth token --host <workspace-url>

    • databricks auth token -p <profile-name>

    • databricks auth token --host <workspace-url> -p <profile-name>

    同じ --host 値を持つプロファイルが複数ある場合は、Databricks CLI で一致する正しい OAuth トークン情報を見つけられるように、 --host オプションと -p オプションを一緒に指定する必要がある場合があります。

ステップ 5: バンドル構成ファイルをプロジェクトに追加する

この手順では、このノートブックをデプロイして実行する方法を定義します。 このデモでは、Delta Live Tables パイプラインを使用してノートブックを実行します。 この目標は、プロジェクトのバンドル構成ファイル内でモデル化します。

  1. ディレクトリのルートから、任意のテキストエディタまたは IDE を使用してバンドル構成ファイルを作成します。 慣例により、このファイルの名前は databricks.ymlです。

  2. 次のコードを databricks.yml ファイルに追加し、 <workspace-url>ワークスペースの URL に置き換えます (例: https://dbc-a1b2345c-d6e7.cloud.databricks.com)。 この URL は、 .databrickscfg ファイル内の URL と一致する必要があります。

ヒント

# yaml-language-serverで始まる最初の行は、IDE でサポートされている場合にのみ必要です。詳細については、前述の手順 3 を参照してください。

# yaml-language-server: $schema=bundle_config_schema.json
bundle:
  name: dlt-wikipedia

resources:
  pipelines:
    dlt-wikipedia-pipeline:
      name: dlt-wikipedia-pipeline
      development: true
      continuous: false
      channel: "CURRENT"
      photon: false
      libraries:
        - notebook:
            path: ./dlt-wikipedia-python.py
      edition: "ADVANCED"
      clusters:
        - label: "default"
          num_workers: 1

targets:
  development:
    workspace:
      host: <workspace-url>

パイプラインをカスタマイズする場合、パイプライン宣言内のマッピングは、REST API リファレンスの POST /api/2.0/pipelines で定義されているパイプライン作成操作の要求ペイロードに対応し、YAML 形式で表されます。

ステップ 6: プロジェクトのバンドル設定ファイルを検証する

このステップでは、バンドル設定が有効かどうかを確認します。

  1. 次のように、Databricks CLI を使用して bundle validate コマンドを実行します。

    databricks bundle validate
    
  2. バンドル設定の概要が返された場合、検証は成功しています。 エラーが返された場合は、エラーを修正してから、この手順を繰り返します。

このステップの後にバンドルに変更を加えた場合は、この手順を繰り返して、バンドル設定がまだ有効かどうかを確認する必要があります。

ステップ 7: ローカル プロジェクトをリモート ワークスペースに配置する

このステップでは、ローカル ノートブックをリモート Databricks ワークスペースにデプロイし、ワークスペースに Delta Live Tables パイプラインを作成します。

  1. Databricks CLI を使用して、次のように bundle validate コマンドを実行します。

    databricks bundle deploy -t development
    
  2. ローカル ノートブックがデプロイされたかどうかを確認する: Databricks ワークスペースのサイドバーで、[ ワークスペース] をクリックします。

  3. ユーザー> <your-username> >.bundle>dlt-wikipedia>開発>ファイルフォルダをクリックします。ノートブックはこのフォルダーにある必要があります。

  4. Delta Live Tables パイプラインが作成されたかどうかを確認する: Databricks ワークスペースのサイドバーで、[ワークフロー] をクリックします。

  5. Delta Live Tables タブで、 dlt-ウィキペディア-パイプラインをクリックします。

このステップの後にバンドルに変更を加えた場合は、ステップ 6-7 を繰り返してバンドル設定がまだ有効かどうかを確認してから、プロジェクトを再デプロイする必要があります。

ステップ 8: デプロイされたプロジェクトを実行する

このステップでは、ワークスペースで Databricks ジョブを実行します。

  1. 次のように、Databricks CLI を使用して bundle run コマンドを実行します。

    databricks bundle run -t development dlt-wikipedia-pipeline
    
  2. ターミナルに表示される Update URL の値をコピーし、この値を Web ブラウザーに貼り付けて Databricks ワークスペースを開きます。

  3. Databricks ワークスペースで、Delta Live Tables パイプラインが正常に完了し、さまざまなマテリアライズドビューに緑色のタイトル バーが表示されたら、マテリアライズドビュー clickstream_rawclickstream_prepared、または top_spark_referrers をクリックして詳細を表示します。

  4. クリーンアップする次の手順を開始する前に、次のように DBFS で作成された Delta テーブルの場所をメモします。 この情報は、後でこれらの Delta テーブルを手動でクリーンアップする場合に必要になります。

    1. Delta Live Tables パイプラインを開いたまま、[設定] ボタン ([アクセス許可] ボタンと [スケジュール] ボタンの横にある) をクリックします。

    2. [ 保存先 ] 領域で、[ 保管場所 ] フィールドの値をメモします。 これは、DBFS で Delta テーブルが作成された場所です。

このステップの後にバンドルに変更を加えた場合は、ステップ 6 から 8 を繰り返してバンドル設定がまだ有効かどうかを確認し、プロジェクトを再デプロイして、再デプロイされたプロジェクトを実行する必要があります。

ステップ 9: クリーンアップ

このステップでは、デプロイされたノートブックと Delta Live Tables パイプラインをワークスペースから削除します。

  1. 次のように、Databricks CLI を使用して bundle destroy コマンドを実行します。

    databricks bundle destroy
    
  2. Delta Live Tables パイプラインの削除要求を確認します。 リソースを完全に破棄するように求められたら、「 y 」と入力して Enterを押します。

  3. ノートブックの削除要求を確認する: 以前に展開したフォルダーとそのすべてのファイルを完全に破棄するように求められたら、「 y 」と入力して Enterを押します。

bundle destroy コマンドを実行すると、デプロイされた Delta Live Tables パイプラインと、デプロイされたノートブックを含むフォルダーのみが削除されます。このコマンドでは、ノートブックが DBFS で作成した Delta テーブルなどの副作用は削除されません。 これらの Delta テーブルを削除する必要がある場合は、手動で削除する必要があります。

既存のパイプライン定義をバンドルに追加する

既存の Delta Live Tables パイプライン定義を基礎として使用して、バンドル構成ファイルで新しいパイプラインを定義できます。 これを行うには、次の手順を実行します。

次の手順では、既存のパイプラインと同じ設定を持つ新しいパイプラインを作成します。 ただし、新しいパイプラインのパイプライン ID は既存のパイプラインとは異なります。 既存のパイプライン ID をバンドルに自動的にインポートすることはできません。

ステップ 1: 既存のパイプライン定義を JSON 形式で取得する

この手順では、Databricks ワークスペースのユーザー インターフェイスを使用して、既存のパイプライン定義の JSON 表現を取得します。

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

  2. [ Delta Live Tables ] タブで、パイプラインの [ 名前 ] リンクをクリックします。

  3. [ アクセス許可 ] ボタンと [スケジュール ] ボタンの間で、[ 設定 ] ボタンをクリックします。

  4. [JSON] ボタンをクリックします。

  5. パイプライン定義の JSON をコピーします。

ステップ 2: パイプライン定義を JSON から YAML 形式に変換する

前の手順でコピーしたパイプライン定義は JSON 形式です。 バンドル構成は YAML 形式です。 パイプライン定義を JSON から YAML 形式に変換する必要があります。 Databricks では、JSON を YAML に変換するために次のリソースをお勧めします。

ステップ 3: パイプライン定義 YAML をバンドル設定ファイルに追加する

バンドル設定ファイルで、前のステップでコピーした YAML を、次のようにバンドル設定ファイルの <pipeline-yaml-can-go-here> というラベルの付いた次のいずれかの場所に追加します。

resources:
  pipelines:
    <some-unique-programmatic-identifier-for-this-pipeline>:
      <pipeline-yaml-can-go-here>

targets:
  <some-unique-programmatic-identifier-for-this-target>:
    resources:
      pipelines:
        <some-unique-programmatic-identifier-for-this-pipeline>:
          <pipeline-yaml-can-go-here>

ステップ 4: ノートブック、Python ファイル、その他のアーティファクトをバンドルに追加する

既存のパイプラインで参照されている Python ファイルとノートブックは、バンドルのソースに移動する必要があります。

バンドルとの互換性を高めるには、ノートブックで IPython ノートブック形式 (.ipynb) を使用する必要があります。 バンドルをローカルで開発する場合は、Databricks ノートブックのユーザー インターフェイスから [ファイル] > [IPython ノートブック>エクスポート] をクリックして、Databricks ワークスペースから既存のノートブックを .ipynb 形式にエクスポートできます。慣例により、ダウンロードしたノートブックをバンドルの src/ ディレクトリに配置する必要があります。

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

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

ステップ 5: 新しいパイプラインを検証、デプロイ、実行する

  1. 次のコマンドを実行して、バンドルの設定ファイルが構文的に正しいことを確認します。

    databricks bundle validate
    
  2. 次のコマンドを実行してバンドルをデプロイします。 このコマンドで、 <target-identifier> をバンドル構成のターゲットの一意のプログラム ID に置き換えます。

    databricks bundle deploy -t <target-identifier>
    
  3. 次のコマンドを実行してパイプラインを実行します。 このコマンドで、以下を置き換えます。

    • <target-identifier> を、バンドル構成のターゲットの一意のプログラム ID に置き換えます。

    • <pipeline-identifier> を、バンドル構成からのパイプラインの一意のプログラム ID に置き換えます。

    databricks bundle run -t <target-identifier> <pipeline-identifier>