次の方法で共有


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

Databricks アセット バンドル (単にバンドルとも呼ばれます) を使用すると、Delta Live Tables パイプラインなどの Azure Databricks リソースをプログラムで検証、デプロイ、実行することができます。 バンドルを使用して、Azure Databricks ジョブをプログラムで管理し、MLOps Stacks を操作することもできます。 「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 で入手できます。 モジュールをインストールするには、Python stub for Delta Live Tables に関するページを参照してください。

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

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

テンプレートを使ってバンドルを作成する

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

手順 1: 認証を設定する

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

Note

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

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

    次のコマンド内では、<workspace-url> を Azure Databricks ワークスペース単位の URL (例: https://adb-1234567890123456.7.azuredatabricks.net) に置き換えます。

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

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

  3. Web ブラウザー内で、画面の指示に従って Azure 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. Dataricks CLI を使用して bundle init コマンドを実行します。

    databricks bundle init
    
  3. Template to useEnter キーを押して default-python の既定値のままにします。

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

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

  6. Include a stub (sample) DLT pipelineEnter キーを押して yes の既定値のままにします。 これにより、Databricks CLI に、Delta Live Tables コードが含まれるサンプル ノートブックを追加するように指示します。

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

手順 3: バンドルを調べる

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

  • databricks.yml: このファイルは、バンドルのプログラム名を指定し、パイプライン定義への参照を格納し、ターゲット ワークスペースに関する設定を指定します。
  • resources/<project-name>_job.ymlresources/<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: ローカル プロジェクトをリモート ワークスペースにデプロイする

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

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

    databricks bundle deploy -t dev
    
  2. そのローカル ノートブックがデプロイされたかどうかをチェックします。お使いの Azure Databricks ワークスペースのサイドバー内で、[ワークスペース] をクリックします。

  3. Users ><your-username>> .bundle ><project-name>> dev > files > src フォルダーをクリックします。 そのノートブックはこのフォルダー内に存在する必要があります。

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

  5. [Delta Live Tables] タブで、[dev <your-username>] <project-name>_pipeline をクリックします。

この手順の後にバンドルに変更を加えた場合は、手順 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 ブラウザーに貼り付けて、お使いの Azure Databricks ワークスペースを開きます。

  3. Azure 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 パイプラインの定義で構成されるバンドルを作成する方法について説明します。 次に、検証してデプロイし、デプロイされたノートブックを Azure Databricks ワークスペース内のパイプラインから実行します。

手順 1: バンドルを作成する

バンドルには、デプロイする成果物と、実行するワークフローの設定が含まれます。

  1. お使いの開発マシン上で空のディレクトリを作成または指定します。
  2. ターミナル内の空のディレクトリに切り替えるか、IDE で空のディレクトリを開きます。

ヒント

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

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

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

この手順では、お使いのワークスペースにノートブックを追加します。 このノートブックでは、以下の処理が行われます。

  • Databricks データセットから生の JSON クリックストリーム データを、お使いの Azure Databricks ワークスペースの DBFS ルート フォルダー内の pipelines フォルダーにある生の Delta テーブルに読み取ります。
  • その生の Delta テーブルからレコードを読み取り、Delta Live Tables クエリと期待値を使用して、クリーンおよび準備されたデータを含む、新しい Delta テーブルを作成します。
  • Delta Live Tables クエリを使用して、その新しい Delta テーブル内の準備されたデータに対して分析を実行します。
  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 ベースであることに注意してください。

Visual Studio Code

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

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

    databricks bundle schema > bundle_config_schema.json
    
  3. 手順 5 で後ほど、バンドル構成ファイルの先頭に次のコメントを追加し、バンドル構成ファイルを指定した JSON スキーマ ファイルに関連付けます。

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

    Note

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

PyCharm Professional

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

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

  3. 手順 5 で後ほど、PyCharm を使用してバンドル構成ファイルを作成または開きます。 通常、このファイルの名前は databricks.yml になります。

IntelliJ IDEA Ultimate

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

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

  3. 手順 5 で後ほど、IntelliJ IDEA を使用してバンドル構成ファイルを作成または開きます。 通常、このファイルの名前は databricks.yml になります。

手順 4: 認証を設定する

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

Note

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

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

    次のコマンド内では、<workspace-url> を Azure Databricks ワークスペース単位の URL (例: https://adb-1234567890123456.7.azuredatabricks.net) に置き換えます。

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

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

  3. Web ブラウザー内で、画面の指示に従って Azure 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://adb-1234567890123456.7.azuredatabricks.net) に置き換えます。 この URL は、.databrickscfg ファイル内のものと一致する必要があります。

ヒント

最初の行 (# 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: ローカル プロジェクトをリモート ワークスペースにデプロイする

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

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

    databricks bundle deploy -t development
    
  2. そのローカル ノートブックがデプロイされたかどうかをチェックします。お使いの Azure Databricks ワークスペースのサイドバー内で、[ワークスペース] をクリックします。

  3. Users ><your-username>> .bundle > dlt-wikipedia > development > files フォルダーをクリックします。 そのノートブックはこのフォルダー内に存在する必要があります。

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

  5. [Delta Live Tables] タブ上で、[dlt-wikipedia-pipeline] をクリックします。

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

手順 8: デプロイされたプロジェクトを実行する

この手順では、お使いのワークスペース内でその Azure Databricks ジョブを実行します。

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

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

  3. お使いの Azure 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 パイプライン定義をベースとして使用して、バンドル構成ファイルに新しいパイプラインを定義できます。 それには、次の手順を完了します。

Note

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

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

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

  1. Azure 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 Notebook 形式 (.ipynb) を使用してください。 バンドルをローカルで開発する場合は、Azure Databricks ノートブックのユーザー インターフェイスから [ファイル] > [エクスポート] > [IPython Notebook] をクリックして、Azure 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> をバンドル構成のターゲットの一意のプログラム識別子に置き換えます。

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

    • <target-identifier> をバンドル構成のターゲットの一意のプログラム識別子に置き換えます。
    • <pipeline-identifier> をバンドル構成のパイプラインの一意のプログラム識別子に置き換えます。
    databricks bundle run -t <target-identifier> <pipeline-identifier>