Databricks アセットバンドルは、データおよびAIプロジェクトにおいて、ソース管理、コードレビュー、テスト、継続的インテグレーションとデリバリー(CI/CD)を含むソフトウェアエンジニアリングのベストプラクティスを導入するためのツールです。 バンドルを使用すると、プロジェクトのソース ファイルと共にメタデータを含め、ジョブやパイプラインなどの Databricks リソースをソース ファイルとして記述できます。 最終的には、バンドルはプロジェクトのエンドツーエンドの定義であり、プロジェクトの構造、テスト、配置の方法を含みます。 これにより、アクティブな開発時にプロジェクトでの共同作業が容易になります。
バンドル プロジェクトのソース ファイルとメタデータのコレクションは、ターゲット環境に 1 つのバンドルとしてデプロイされます。 バンドルには以下の部分が含まれます。
- 必要なクラウド インフラストラクチャとワークスペースの構成
- ビジネス ロジックが含まれるソース ファイル (ノートブックや Python ファイルなど)
- Databricks リソースの定義と設定 (Lakeflow ジョブ、Lakeflow 宣言パイプライン、モデル サービス エンドポイント、MLflow 実験、MLflow 登録済みモデルなど)
- 単体テストと統合テスト
次の図は、バンドルを含む開発および CI/CD パイプラインの概要を表しています。
いつ Databricks アセット バンドルを使用する必要がありますか?
Databricks アセット バンドルは、Databricks プロジェクトを管理するためのコードとしてのインフラストラクチャ (IaC) アプローチです。 複数の共同作成者と自動化が不可欠であり、継続的インテグレーションとデプロイ (CI/CD) が必要な複雑なプロジェクトを管理する場合にこれらを使用します。 バンドルは、ソース コードと共に作成および管理する YAML テンプレートとファイルを使用して定義および管理されるため、IaC が適切なアプローチであるシナリオに適切にマップされます。
バンドルの理想的なシナリオには、次のようなものがあります。
- チームベースの環境で、データ、分析、ML プロジェクトを開発します。 バンドルは、さまざまなソース ファイルを効率的に整理および管理するのに役立ちます。 これにより、スムーズなコラボレーションと合理化されたプロセスが保証されます。
- ML の問題をより迅速に反復処理します。 運用のベスト プラクティスに従う ML プロジェクトを最初から使用して、ML パイプライン リソース (トレーニング、バッチ推論ジョブなど) を管理します。
- カスタム バンドル テンプレート (既定のアクセス許可、サービス プリンシパル、CI/CD 構成を含む) を作成することで、新しいプロジェクトの組織標準を設定します。
- 規制コンプライアンス: 規制コンプライアンスが重要な問題である業界では、バンドルが、コードとインフラストラクチャの作業のバージョン管理された履歴を維持するのに役立ちます。 これにより、ガバナンスが支援され、必要なコンプライアンス基準が確実に満たされます。
Databricks アセット バンドルのしくみ
バンドル メタデータは、Databricks プロジェクトの成果物、リソース、および構成を指定する YAML ファイルを使用して定義されます。 その後、Databricks CLI を使用して、これらのバンドル YAML ファイルを使用してバンドルを検証、デプロイ、実行できます。 IDE、ターミナル、または Databricks 内から直接、バンドル プロジェクトを実行できます。
バンドルは、手動で作成することも、テンプレートに基づいて作成することもできます。 Databricks CLI には単純なユース ケース用の既定のテンプレートが用意されていますが、より具体的なジョブや複雑なジョブの場合は、カスタム バンドル テンプレートを作成してチームのベスト プラクティスを実装し、一般的な構成の一貫性を保つことができます。
Databricks アセット バンドルを表現するために使用される構成 YAML の詳細については、 Databricks アセット バンドルの構成に関するページを参照してください。
要求事項
Databricks アセット バンドルは、Databricks CLI の機能です。 バンドルをローカルでビルドした後、Databricks CLI を使用してリモート Databricks ワークスペースをターゲットにバンドルをデプロイし、コマンド ラインからそれらのワークスペースでバンドル ワークフローを実行します。
Azure Databricks ワークスペースでバンドルをビルド、デプロイ、実行するには:
リモート Databricks ワークスペースでは、ワークスペース ファイルが有効になっている必要があります。 Databricks Runtime バージョン 11.3 LTS 以降を使用している場合、この機能は既定で有効になっています。
Databricks CLI バージョン v0.218.0 以降をインストールする必要があります。 Databricks CLI をインストールまたは更新するには、 Databricks CLI のインストールまたは更新に関する記事を参照してください。
Databricks では、 新しいバンドル機能を利用するために、CLI の最新バージョンに定期的に更新することをお勧めします。 Databricks CLI のバージョンがインストールされていることを確認するには、次のコマンドを実行します。
databricks --version
Databricks ワークスペースにアクセスするように Databricks CLI を構成しました。 Databricks では、「ワークスペースへのアクセスの構成」で説明されている OAuth ユーザーからマシンへの (U2M) 認証を使用して アクセスを構成することをお勧めします。 その他の認証方法については、「 Databricks アセット バンドルの認証」を参照してください。
バンドルの使用を開始する方法
バンドル開発を最も早く開始する方法は、バンドル プロジェクト テンプレートを使用することです。 Databricks CLI bundle init コマンドを使用して、最初のバンドル プロジェクトを作成します。 このコマンドにより、Databricks が提供する既定のバンドル テンプレートの選択肢が表示され、プロジェクト変数を初期化するための一連の質問が表示されます。
databricks bundle init
バンドルの作成は、バンドルのライフサイクルの最初 の手順です。 次に、 databricks.yml
およびリソース 構成ファイルでバンドル設定とリソースを定義して、バンドルを開発します。 最後に、バンドルを 検証 して デプロイ し、 ワークフローを実行します。
ヒント
バンドル構成の例は、 バンドル構成の例 と GitHub の Bundle サンプル リポジトリにあります。
次のステップ
- ノートブックを Azure Databricks ワークスペースにデプロイし、そのデプロイされたノートブックを Azure Databricks ジョブまたはパイプラインで実行するバンドルを作成します。 Databricks アセット バンドルを使用したジョブ開発やLakeflow 宣言型パイプラインの開発については、関連ページを参照してください。
- MLOps Stack をデプロイして実行するバンドルを作成します。 MLOps スタックの Databricks アセット バンドルを参照してください。
- GitHub の CI/CD (継続的インテグレーション/継続的デプロイ) ワークフローの一部としてバンドルデプロイを開始します。 パイプライン更新を実行するバンドルを使用した CI/CD ワークフローの実行を参照してください。
- Python ホイール ファイルをビルド、デプロイ、呼び出すバンドルを作成します。 Databricks アセット バンドルを使用した Python ホイール ファイルの作成を参照してください。
- ワークスペース内のジョブまたはその他のリソースの構成をバンドルで生成し、ワークスペース内のリソースにバインドして、構成が同期された状態を保ちます。 「バンドル構成ファイルの生成」 および 「バンドル リソースのバインド」を参照してください。
- ワークスペースにバンドルを作成してデプロイします。 ワークスペースのバンドルでの共同作業を参照してください。
- 自分や他のユーザーがバンドルの作成に使用できるカスタム テンプレートを作成します。 カスタマムテンプレートには、既定のアクセス許可、サービス プリンシパル、カスタムの CI/CD 構成を含めることができます。 Databricks アセット バンドル プロジェクト テンプレートを参照してください。
- dbx から Databricks アセットバンドルに移行する dbx からバンドルへの移行を参照してください。
- Databricks アセット バンドル用にリリースされた最新の主要な新機能について説明します。 Databricks アセット バンドル機能のリリース ノートを参照してください。