Databricks アセットバンドルとは何ですか?
Databricks アセットバンドルは、ソース管理、コードレビュー、テスト、継続的インテグレーションとデリバリー (CI/CD) など、ソフトウェアエンジニアリングのベストプラクティスをデータプロジェクトや AI プロジェクトに導入するためのツールです。バンドルを使用すると、プロジェクトのソースファイルと一緒にメタデータを含めることができ、ジョブやパイプラインなどの Databricks リソースをソースファイルとして記述できます。最終的に、バンドルはプロジェクトのエンドツーエンドの定義であり、プロジェクトの構造化、テスト、デプロイの方法が含まれます。これにより、活発な開発中にプロジェクトでの共同作業が容易になります。
バンドルプロジェクトのソースファイルとメタデータのコレクションは、単一のバンドルとしてターゲット環境にデプロイされます。バンドルには、次のパーツが含まれています。
- 必要なクラウドインフラストラクチャおよびワークスペースの構成
- ビジネスロジックを含むノートブックやPythonファイルなどのソースファイル
- DatabricksDatabricksジョブ、DLT パイプライン、モデルサービング エンドポイント、MLflow エクスペリメント、登録モデル など、 リソースの定義と設定MLflow
- ユニットテストと統合テスト
次の図は、バンドルを使用した開発およびCI/CDパイプラインの概要を示します。
Databricks アセットバンドルはいつ使用する必要がありますか?
Databricksアセットバンドルは、Databricksプロジェクトを管理するためのInfrastructure-as-Code(IaC)アプローチです。複数のコントリビューターと自動化が不可欠であり、継続的インテグレーションとデプロイ(CI/CD)が要件である複雑なプロジェクトを管理する場合に使用します。バンドルは、ソースコードと共に作成および保守するYAMLテンプレートとファイルを使用して定義および管理されるため、IaCが適切なアプローチであるシナリオに適切にマップされます。
バンドルの理想的なシナリオには、以下のものがあります。
- チームベースの環境で、データ、アナリティクス、機械学習の各プロジェクトを構築します。バンドルを使用すると、さまざまなソースファイルを効率的に整理し管理できるようになります。これにより、コラボレーションがスムーズになり、プロセスも合理化されます。
- 機械学習の問題を迅速に反復処理します。本番運用のベストプラクティスを最初から採用している機械学習プロジェクトを使用して、機械学習のパイプラインリソース(トレーニングやバッチ推論のジョブなど)を管理します。
- デフォルトの権限、サービスプリンシパル、CI/CD構成を含むカスタムバンドルテンプレートを作成することで、新しいプロジェクト向けに組織としての基準を設定できます。
- 規制順守:規制順守に細心の注意を払う必要のある業界でも、バンドルを活用することで、コードやインフラストラクチャ作業のバージョン管理がしやすくなります。これは適切なガバナンスに役立つだけでなく、必要なコンプライアンス基準を確実に満たす上でも効果的です。
Databricks アセットバンドルはどのように機能しますか?
バンドルメタデータは、Databricksプロジェクトのアーティファクト、リソース、構成を指定するYAMLファイルを使用して定義されます。その後、Databricks CLIでこれらのバンドルYAMLファイルを使用してバンドルを検証、デプロイ、実行することができます。バンドルプロジェクトは、IDE、ターミナル、またはDatabricks内から直接実行することができます。
バンドルは手動で作成することも、テンプレートに基づいて作成することもできます。Databricks CLIはシンプルなユースケース用のデフォルトテンプレートを提供しますが、より特殊で複雑なジョブの場合は、カスタムバンドルテンプレートを作成してチームのベストプラクティスを実装し、一般的な構成の一貫性を保つことができます。
Databricks アセット バンドルの表現に使用される構成 YAML の詳細については、「 Databricks アセット バンドルの構成」を参照してください。
必要条件
Databricks アセット バンドルは、Databricks CLI の機能です。バンドルをローカルでビルドし、Databricks CLI を使用してバンドルをリモートの Databricks ワークスペースにデプロイし、それらのワークスペースでコマンド ラインからバンドル ワークフローを実行します。
Databricks ワークスペースでバンドルをビルド、デプロイ、実行するには:
-
リモート Databricks ワークスペースでは、ワークスペース ファイルが有効になっている必要があります。 Databricks Runtime バージョン 11.3 LTS 以降を使用している場合、この機能はデフォルトによって有効になります。
-
Databricks CLI バージョン v0.218.0 以降をインストールする必要があります。Databricks CLI をインストールまたは更新するには、「 Databricks CLI のインストールまたは更新」を参照してください。
Databricks では、 新しいバンドル機能を利用するために、最新バージョンの CLI に定期的に更新することをお勧めします。インストールされている Databricks CLI のバージョンを確認するには、次のコマンドを実行します。
shdatabricks --version
-
Databricks ワークスペースにアクセスするように Databricks CLI を構成しました。Databricks では、「 ワークスペースへのアクセスを構成する」で説明されている OAuth ユーザー間 (U2M) 認証を使用してアクセスを構成することをお勧めします。その他の認証方法については、「 Databricks アセット バンドルの認証」を参照してください。
バンドルの使用を開始するにはどうすればよいですか?
バンドル開発を最も早く開始する方法は、バンドルプロジェクトテンプレートを使用することです。Databricks CLI bundle init コマンドを使用して、最初のバンドル プロジェクトを作成します。このコマンドは、 Databricks提供のデフォルト バンドル テンプレートの選択肢を提示し、プロジェクト変数を初期化するための一連の質問をします。
databricks bundle init
バンドルの作成は、 バンドルのライフサイクルの最初のステップです。次に、 databricks.yml
と Resource の構成ファイルでバンドル設定とリソースを定義して、バンドルを開発します。 最後に、バンドル を検証し て デプロイ し、 ワークフローを実行します。
バンドル設定例は、 GitHub のバンドル設定例 と バンドル例リポジトリにあります。
次のステップ
- ノートブックを Databricks ワークスペースにデプロイし、そのデプロイされたノートブックを Databricks ジョブまたはパイプラインで実行するバンドルを作成します。「Databricks アセット バンドルを使用したジョブの開発」および「Databricks アセット バンドルを使用した DLT パイプラインの開発」を参照してください。
- MLOps スタックをデプロイして実行するバンドルを作成します。 「MLOps スタックの Databricks アセット バンドル」を参照してください。
- GitHub の CI/CD (継続的インテグレーション/継続的デプロイ) ワークフローの一部としてバンドル デプロイを開始します。「パイプラインの更新を実行するバンドルを使用した CI/CD ワークフローの実行」を参照してください。
- Python wheel ファイルをビルド、デプロイ、および呼び出すバンドルを作成します。「アセットバンドルを使用した Python wheelファイルの構築」を参照してください 。Databricks
- ワークスペース内のジョブまたはその他のリソースの構成をバンドルに生成し、それをワークスペース内のリソースにバインドして、構成の同期が維持されるようにします。バンドル構成ファイルの生成およびバンドル・リソースのバインドを参照してください。
- 自分や他のユーザーがバンドルを作成するために使用できるカスタムテンプレートを作成します。 カスタム テンプレートには、デフォルト アクセス許可、サービスプリンシパル、およびカスタム CI/CD 構成が含まれる場合があります。 「Databricks Asset Bundle プロジェクト テンプレート」を参照してください。
- dbx から Databricks Asset Bundle に移行します。 dbx からバンドルへの移行を参照してください。
- Databricks Asset Bundle でリリースされた最新の主要な新機能をご覧ください。 「 Databricks Asset Bundles feature リリースノート」を参照してください。