Share via


Databricks アセット バンドルとは

Databricks アセット バンドル (DAB) は、Databricks プラットフォームの複雑なデータ、分析、ML プロジェクトの開発を合理化するための新しいツールです。 バンドルを使うと、1 つの簡潔で宣言型の YAML 構文でソフトウェア開発ワークフローに CI/CD 機能を提供することで、アクティブな開発時に複雑なプロジェクトを簡単に管理できます。 バンドルを使用してプロジェクトのテスト、デプロイ、構成管理を自動化することで、組織全体でテンプレート化されたプロジェクトとしてソフトウェアのベスト プラクティスを促進しながら、エラーを減らすことができます。

バンドルには、プロジェクトのソース ファイルと共にメタデータを含める方法が用意されています。 バンドルを使用してプロジェクトをデプロイする場合、このメタデータはインフラストラクチャやその他のリソースのプロビジョニングに使用されます。 その後、プロジェクトのソース ファイルとメタデータのコレクションが、ターゲット環境に 1 つのバンドルとしてデプロイされます。

バンドルには以下の部分が含まれます。

  • 必要なクラウド インフラストラクチャとワークスペースの構成
  • ビジネス ロジックが含まれるソース ファイル (ノートブックや Python ファイルなど)
  • Databricks リソース (Azure Databricks ジョブ、Delta Live Tables パイプライン、モデル提供エンドポイント、MLflow 実験、MLflow 登録済みモデルなど) の定義と設定
  • 単体テストと統合テスト

いつ Databricks アセット バンドルを使用する必要がありますか?

Databricks アセット バンドルは、Databricks プロジェクトを管理するためのコードとしてのインフラストラクチャ (IaC) アプローチです。 複数の共同作成者と自動化が不可欠であり、継続的インテグレーションとデプロイ (CI/CD) が必要な複雑なプロジェクトを管理する場合にこれらを使用します。 バンドルは、ソース コードと共に作成および管理する YAML テンプレートとファイルを使用して定義および管理されるため、IaC が適切なアプローチであるシナリオに適切にマップされます。

バンドルの理想的なシナリオには、次のようなものがあります。

  • チームベースの環境で、データ、分析、ML プロジェクトを開発します。 バンドルは、さまざまなソース ファイルを効率的に整理および管理するのに役立ちます。 これにより、スムーズなコラボレーションと合理化されたプロセスが保証されます。
  • ML の問題をより迅速に反復処理します。 運用のベスト プラクティスに従う ML プロジェクトを最初から使用して、ML パイプライン リソース (トレーニング、バッチ推論ジョブなど) を管理します。
  • カスタム バンドル テンプレート (既定のアクセス許可、サービス プリンシパル、CI/CD 構成を含む) を作成することで、新しいプロジェクトの組織標準を設定します。
  • 規制コンプライアンス: 規制コンプライアンスが重要な問題である業界では、バンドルが、コードとインフラストラクチャの作業のバージョン管理された履歴を維持するのに役立ちます。 これにより、ガバナンスが支援され、必要なコンプライアンス基準が確実に満たされます。

Databricks アセット バンドルのしくみ

バンドル メタデータは、Databricks プロジェクトの成果物、リソース、および構成を指定する YAML ファイルを使用して定義されます。 この YAML ファイルは、手動で作成することも、バンドル テンプレートを使用して生成することもできます。 その後、Databricks CLI を使用して、これらのバンドル YAML ファイルを使用してバンドルを検証、デプロイ、実行できます。 IDE、ターミナル、または Databricks 内から直接、バンドル プロジェクトを実行できます。 この記事では、Databricks CLI の使用について説明します。

バンドルは、手動で作成することも、テンプレートに基づいて作成することもできます。 Databricks CLI には単純なユース ケース用に既定のテンプレートが用意されていますが、より具体的なまたは複雑なジョブの場合は、カスタム バンドル テンプレートを作成してチームのベスト プラクティスを実装し、一般的な構成の一貫性を保つことができます。

Databricks アセット バンドルを表現するために使用される構成 YAML の詳細については、「Databricks アセット バンドルの構成」を参照してください。

バンドルを使うように環境を構成する

Databricks CLI を使うと、コマンド ラインからバンドルを簡単にデプロイできます。 次のコマンドを実行して、Databricks CLI がインストールされているかどうかと、使っている現在のバージョンを確認できます。

databricks --version

Note

Databricks CLI バージョン 0.218.0 以降が必要です。 Databricks CLI をインストールするには、「Databricks CLI のインストールまたは更新」を参照してください。

Databricks CLI をインストールしたら、リモートの Databricks ワークスペースが正しく構成されていることを確認します。 この機能では Databricks Notebook 以外のファイル (.py ファイル、.yml ファイルなど) の操作がサポートされているため、バンドルではワークスペース ファイル機能を有効にする必要があります。 Databricks Runtime バージョン 11.2 (またはそれ以降) を使用している場合、この機能は既定で有効にする必要があります。

認証

Azure Databricks には、いくつかの認証方法が用意されています。 Databricks では、認証に次のいずれかの方法を使用することをお勧めします。

  • Web ブラウザーを使用して対象の Azure Databricks ワークスペースにログインする手動ワークフロー (Databricks CLI によって求められた場合) などの ''有人'' 認証シナリオでは、OAuth ユーザー対マシン (U2M) 認証を使います。 この方法は、Databricks アセット バンドルの入門チュートリアルの実験や、バンドルの迅速な開発に最適です。
  • その時点で Web ブラウザーを使用して対象の Azure Databricks ワークスペースにログインする機会がない完全に自動化されたワークフローなど、''無人'' 認証シナリオでは、OAuth マシン間 (M2M) 認証を使います。 この方法では、Azure Databricks サービス プリンシパルを使用する必要があり、GitHub などの CI/CD システムで Databricks アセット バンドルを使う場合に最適です。

OAuth U2M 認証の場合は、次の操作を行います。

  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 のオプションを一緒に指定することが必要になる場合があります。

この構成プロファイルの名前は、バンドルを検証、デプロイ、実行、または破棄するときに、次の 1 つ以上の方法で使用できます。

  • コマンド ライン オプション -p <profile-name> を使用して、databricks bundle validatedatabricks bundle deploydatabricks bundle rundatabricks bundle destroy のいずれかのコマンドに追加する。 Databricks アセット バンドルの開発ワークフローに関するページを参照してください。
  • バンドル構成ファイルの最上位の workspace マッピングの profile マッピングの値として (ただし、Databricks では、バンドル構成ファイルの移植性が高まるため、profile マッピングではなく、Azure Databricks ワークスペースの URL に設定された host マッピングを使用することをお勧めします)。 ワークスペースprofile マッピングの対象範囲を確認してください。
  • 構成プロファイルの名前が DEFAULT の場合、コマンドライン オプション -p <profile-name> または profile (または host) マッピングが指定されていない場合は、既定でその名前が使用されます。

OAuth M2M 認証の場合は、次の操作を行います。

  1. OAuth M2M 認証のセットアップ手順を完了します。 「OAuth マシン間 (M2M) 認証」を参照してください。

  2. 次のいずれかの方法で、ターゲット コンピューティング リソースに Databricks CLI をインストールします。

    • Databricks CLI をリアルタイムでコンピューティング リソースに手動でインストールするには、「Databricks CLI のインストールまたは更新」を参照してください。
    • GitHub Actions を使用して Databricks CLI を GitHub 仮想マシンに自動的にインストールするには、GitHub の「setup-cli」を参照してください。
    • 他の CI/CD システムを使用して Databricks CLI を仮想マシンに自動的にインストールするには、CI/CD システム プロバイダーのドキュメントと「Databricks CLI のインストールまたは更新」を参照してください。
  3. コンピューティング リソースに以下の環境変数を次のように設定します。

    • DATABRICKS_HOST。対象の Azure Databricks のワークスペースごとの URL に設定されます (例: https://adb-1234567890123456.7.azuredatabricks.net)。
    • DATABRICKS_CLIENT_ID。Azure Databricks サービス プリンシパルの [アプリケーション ID] 値に設定します。
    • DATABRICKS_CLIENT_SECRET。Azure Databricks サービス プリンシパルの OAuth の [シークレット] 値に設定します。

    これらの環境変数を設定するには、ターゲット コンピューティング リソースのオペレーティング システムまたは CI/CD システムのドキュメントを参照してください。

最初の Databricks アセット バンドルを開発する

バンドル開発を最も早く開始する方法は、テンプレートを使用することです。 Databricks CLI bundle init コマンドをオプションを指定せずに使って、最初のバンドル プロジェクトを作成します。 これにより、Databricks が提供する既定のバンドル テンプレートの選択肢が表示され、プロジェクト変数を初期化するための一連の質問が表示されます。

databricks bundle init

組織は、独自の標準を定義するカスタム バンドル テンプレートを作成することもできます。 これらの標準には、既定のアクセス許可、サービス プリンシパル、カスタムの CI/CD 構成を含めることができます。 「Databricks アセット バンドル テンプレート」を参照してください。

プロジェクトを初期化したら、ワークスペースにデプロイする前に、bundle validate コマンドを使ってバンドルを検証します。

databricks bundle validate

通常、バンドルは、IDE と Databricks CLI バージョン 0.218.0 以降があるローカル開発マシン上に作成します。 これらのツールを使用して、バンドルの作成、検証、デプロイ、および実行を行うことができます。 Databricks アセット バンドルの開発ワークフローに関するページを参照してください。

Databricks Git フォルダー統合を使用してバンドルを Git に追加した後、Azure Databricks ワークスペースでバンドルを編集できます。 ただし、ワークスペースからバンドルをテストまたはデプロイすることはできません。 代わりに、デプロイのテストおよび CI/CD のためにローカル IDE を使用できます。

次のステップ

一般的なタスク

Databricks アセット バンドルの一般的なタスクについては、次の記事を参照してください。

[アーティクル] 次のことを行う場合は、この記事を使用します。
Databricks アセット バンドルの開発ワークフロー databricks.yml ファイルを作成し、Databricks CLI を使用して databricks bundle validatedatabricks bundle deploy、および databricks bundle run コマンドを実行することで、バンドルを作成、検証、デプロイ、および実行するためのワークフローについて説明します。
Databricks アセット バンドルの構成 バンドルを構成するための YAML 構文に準拠するバンドルの databricks.yml ファイルと他の関連するバンドル構成ファイルを作成します。
Databricks アセット バンドルの認証 Azure Databricks 認証用のバンドル プロジェクトを設定します。
Databricks アセット バンドルを使用して Azure Databricks でジョブを開発する Azure Databricks ジョブのバンドルを作成、デプロイ、および実行します。
Databricks アセット バンドルを使用して Delta Live Tables パイプラインを開発する Delta Live Tables パイプラインのバンドルを作成、デプロイ、および実行します。
MLOps スタック用の Databricks アセット バンドル MLOps Stack のバンドルを作成、デプロイ、および実行します。
Databricks アセット バンドルのライブラリ依存関係 関連する Azure Databricks クラスターでバンドルを実行するために必要なライブラリをインストールします。
Databricks アセット バンドルのデプロイ モード developmentproduction などのバンドル デプロイ モードを使用して、関連するスケジュールやトリガーの一時停止や一時停止解除などの一般的なデプロイ動作を自動的に有効または無効にします。
Databricks アセット バンドル テンプレート テンプレートを使用することで、特定の種類のバンドルをより速く、簡単に、一貫性があり、かつ再現性のある結果を作成できます。
Databricks アセット バンドルのリソースのアクセス許可を設定する 特定のバンドル リソースに対して、ユーザー、グループ、サービス プリンシパルにきめ細かなアクセス許可レベルを適用します。
Databricks アセット バンドルで成果物の設定を動的に定義する バンドルのアーティファクトに対して特定の設定を結合または上書きします。
Databricks アセット バンドルと GitHub Actions を使用して CI/CD ワークフローを実行する Pull Request やマージなど、特定の GitHub ワークフロー イベントに応じてバンドルをデプロイまたは実行します。
Databricks アセット バンドルのクラスター設定をオーバーライドする バンドルのクラスターに対して特定の設定を結合または上書きします。
Databricks アセット バンドルのジョブにタスクを追加する バンドル内のジョブにタスクを追加します。
Databricks アセット バンドルのジョブ タスク設定をオーバーライドする バンドルのジョブ タスクに対して特定の設定を結合または上書きします。
Databricks アセット バンドルを使用して Python ホイール ファイルを開発する Python ホイール ファイルをバンドルしてビルド、デプロイ、および呼び出しを行います。

その他のリソース