次の方法で共有


Databricks アセット バンドルとは

Databricks アセット バンドル (DABs) は、データと AI プロジェクトに対するソース管理、コード レビュー、テスト、継続的インテグレーションとデリバリー (CI/CD) などのソフトウェア エンジニアリングのベスト プラクティスの導入を容易にするツールです。 バンドルを使用すると、ジョブ、パイプライン、ノートブックなどの Databricks リソースをソース ファイルとして記述できます。 これらのソース ファイルは、プロジェクトの構造、テスト、デプロイの方法など、プロジェクトのエンド ツー エンドの定義を提供します。これにより、アクティブな開発中にプロジェクトでの共同作業が容易になります。

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

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

次の図は、バンドルを含む開発および CI/CD パイプラインの概要を表しています。

Databricks アセット バンドルの概要

いつ 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 CLI のインストールまたは更新」を参照してください。

Databricks アセット バンドルは、Databricks CLI バージョン 0.218.0 以降で提供されています。 Databricks CLI のバージョンがインストールされていることを確認するには、次のコマンドを実行します。

databricks --version

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

認証

Azure 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(OAuth M2M)を使用してサービスプリンシパルで Azure Databricks へのアクセスを認証する」を参照してください。

  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 バンドルinit コマンドをに使って、最初のバンドル プロジェクトを作成します。 このコマンドにより、Databricks が提供する既定のバンドル テンプレートの選択肢が表示され、プロジェクト変数を初期化するための一連の質問が表示されます。

databricks bundle init

バンドルの作成は、バンドルの ライフサイクルの最初の手順です。 2 番目の手順では、バンドルを開発します。その重要な要素は、 databricks.yml およびリソース構成ファイル内のバンドル設定とリソースを定義することです。 バンドル構成ファイルの詳細については、「Databricks アセット バンドルの構成」を参照してください。

ヒント

バンドル構成の例は、「Bundle の構成例」および GitHub の バンドル例のリポジトリで確認できます。

次のステップ