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

Databricks アセットバンドルとは何ですか?

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

バンドルを使用すると、プロジェクトのソースファイルとともにメタデータを含めることができます。バンドルを使用してプロジェクトをデプロイすると、このメタデータはインフラストラクチャやその他のリソースのプロビジョニングに使用されます。プロジェクトのソースファイルとメタデータのコレクションは、単一のバンドルとしてターゲット環境にデプロイされます。バンドルには以下のパーツがあります。

  • 必要なクラウドインフラストラクチャおよびワークスペースの構成
  • ビジネスロジックを含むノートブックやPythonファイルなどのソースファイル
  • DatabricksDatabricksジョブ、DLT パイプライン、モデルサービング エンドポイント、MLflow エクスペリメント、登録モデル など、 リソースの定義と設定MLflow
  • ユニットテストと統合テスト

次の図は、バンドルを使用した開発およびCI/CDパイプラインの概要を示します。

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

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

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

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

  • チームベースの環境で、データ、アナリティクス、機械学習の各プロジェクトを構築します。バンドルを使用すると、さまざまなソースファイルを効率的に整理し管理できるようになります。これにより、コラボレーションがスムーズになり、プロセスも合理化されます。
  • 機械学習の問題を迅速に反復処理します。本番運用のベストプラクティスを最初から採用している機械学習プロジェクトを使用して、機械学習のパイプラインリソース(トレーニングやバッチ推論のジョブなど)を管理します。
  • デフォルトの権限、サービスプリンシパル、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 のバージョンを確認するには、次のコマンドを実行します。

sh
databricks --version

Databricks CLI をインストールした後、リモート Databricks ワークスペースが正しく構成されていることを確認します。 バンドルを使用するには、ワークスペース ファイル機能を有効にする必要があります。 Databricks Runtime バージョン 11.3 LTS 以降を使用している場合、この機能はデフォルトによって有効になります。

認証

Databricks には、いくつかの認証方法が用意されています。

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

OAuth U2M認証 の場合は、次の手順を実行します。

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

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

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

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

  • コマンド ライン オプション -p <profile-name>を付けると、コマンド databricks bundle validatedatabricks bundle deploydatabricks bundle run、または databricks bundle destroyが追加されます。 「Databricks アセット バンドルの開発」を参照してください。
  • バンドル構成ファイルの最上位の workspace マッピングの profile マッピングの値として (ただし、Databricks では、バンドル構成ファイルの移植性が向上するため、profile マッピングではなく Databricks ワークスペースの URL に設定された host マッピングを使用することをお勧めします)。ワークスペースprofileマッピングのカバレッジを参照してください。
  • 構成プロファイルの名前がDEFAULTの場合、コマンドラインオプション-p <profile-name>またはprofile(またはhost)マッピングが 指定されていない と、これがデフォルトで使用されます。

OAuth M2M認証 の場合は、次の手順を実行します。

  1. OAuth M2M 認証の設定手順を完了します。 「を使用してDatabricks リソースへの無人アクセスをサービスプリンシパルで承認 する」を参照してください。OAuth

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

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

    • DATABRICKS_HOSTで、Databricks ワークスペース インスタンスの URL ( https://dbc-a1b2345c-d6e7.cloud.databricks.comなど) に設定します。
    • DATABRICKS_CLIENT_IDをDatabricksサービスプリンシパルの アプリケーションID の値に設定します。
    • DATABRICKS_CLIENT_SECRETをDatabricksサービスプリンシパルのOAuth シークレット の値に設定します。

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

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

バンドル開発を開始する最速の方法は、バンドル プロジェクト テンプレートを使用することです。 Databricks CLI bundle init コマンドを使用して、最初のバンドル プロジェクトを作成します。 このコマンドは、 Databricks提供のデフォルト バンドル テンプレートの選択肢を提示し、プロジェクト変数を初期化するための一連の質問をします。

sh
databricks bundle init

バンドルの作成は、 バンドルのライフサイクルの最初のステップです。 2 番目のステップはバンドルの開発であり、その重要な要素は、 databricks.yml とリソース構成ファイルでバンドル設定とリソースを定義することです。 バンドル設定に関する情報については、「アセットバンドル設定Databricks」を参照してください。

ヒント

バンドル設定例は、 GitHub のバンドル設定例バンドル例リポジトリにあります。

次のステップ