Databricks Git フォルダーを使用した CI/CD (Repos)
Databricks Git フォルダーは、CI/CD フローで使用できます。ワークスペースで Databricks Git フォルダーを構成することで、ソース コントロールを使用して Git リポジトリでの作業を行い、それらをデータ エンジニアリング ワークフローに統合できます。 Databricks での CI/CD の包括的な概要については、「 Databricks の CI/CD」を参照してください。
利用フロー
Git フォルダーの自動化を開発する作業の大部分は、フォルダーの初期設定と、Databricks ジョブからの Git 操作を自動化するために使用する Databricks Repos REST API の理解にあります。自動化の構築とフォルダーの設定を開始する前に、自動化フローに組み込むリモート Git リポジトリを確認し、開発、統合、ステージング、本番運用など、自動化のさまざまなステージに適したリポジトリを選択します。
- 管理フロー : 本番運用フローの場合、 Databricks ワークスペース管理者は、本番運用 git フォルダーをホストするために、ワークスペース内の最上位フォルダーを設定します。 管理者は、 Git リポジトリとブランチを作成するときにクローンを作成し、これらのフォルダに「本番運用」、「テスト」、「ステージング」などの意味のある名前を付けることができます。これらは、開発フローにおけるリモート Git リポジトリの目的に対応しています。 詳しくは、本番運用 Git フォルダをご覧ください。
- ユーザー フロー : ユーザーは、リモート Git リポジトリに基づいて
/Workspace/Users/<email>/
の下に Git フォルダーを作成できます。ユーザーは、その作業に対してローカルのユーザー固有のブランチを作成し、そのブランチにコミットしてリモートリポジトリにプッシュします。ユーザー固有の Git フォルダーでの共同作業に関する情報については、Git フォルダーを使用して共同作業するを参照してください。 - マージ フロー : ユーザーは、Git フォルダーからプッシュした後にプルリクエスト (PR) を作成できます。PRがマージされると、自動化処理はDatabricks Repos APIを使用して変更を本番運用フォルダGit フォルダに取り込むことができます。
Git フォルダーを使用した共同作業
Git フォルダーを使用して他のユーザーと簡単に共同作業を行い、Databricks UI から直接更新をプルしたり、変更をプッシュしたりできます。たとえば、機能ブランチまたは開発ブランチを使用して、複数のブランチ間で行われた変更を集約します。
次のフローでは、機能ブランチを使用して共同作業を行う方法について説明します。
-
Git フォルダー UI を使用して、メイン ブランチから 機能ブランチを作成します 。複数の機能ブランチを作成して使用し、作業を行うことができます。
-
Databricks ノートブックとリポジトリ内の他のファイルに変更を加えます。
-
コントリビューターは、Git リポジトリを自分のユーザーフォルダにクローンできるようになりました。
- 新しいブランチで作業している同僚は、Git フォルダー内のノートブックやその他のファイルに変更を加えます。
- 共同作成者 は、変更をコミットしてリモート Git リポジトリにプッシュします。
-
自分や他の共同作成者がコードをマージする準備ができたら、Git プロバイダーの Web サイトで PR を作成します。変更をデプロイ ブランチにマージする前に、チームでコードを確認します。
Databricks では、各開発者が独自のブランチで作業することをお勧めします。マージ競合の解決方法については、マージ競合の解決を参照してください。
CI/CD アプローチを選択する
Databricksでは、Databricks Asset Bundles を使用して CI/CD ワークフローをパッケージ化およびデプロイすることをお勧めします。ソース管理されたコードのみをワークスペースにデプロイする場合は、本番運用 Git フォルダーを設定できます。 Databricks での CI/CD の包括的な概要については、Databricks の CI/CDを参照してください。
バンドルを使用してソースファイルでジョブやパイプラインなどのリソースを定義し、ワークスペースのGitフォルダーでバンドルを作成、デプロイ、管理します。ワークスペースでのバンドルでの共同作業を参照してください。
本番運用 Git フォルダ
本番運用 Git フォルダは、/Workspace/Users/
のユーザフォルダにあるユーザレベルの Git フォルダとは異なる目的を果たします。ユーザーレベルの Git フォルダーは、ユーザーがコードの変更を開発してプッシュするローカル チェックアウトとして機能します。これに対し、本番運用 Git フォルダは、 Databricks 管理者がユーザーフォルダの外部で作成し、本番運用デプロイメントブランチを含んでいます。 本番運用 Git フォルダーには、自動化されたワークフローのソース が含まれており、プル要求 (PR) がデプロイ ブランチにマージされたときにのみプログラムで更新する必要があります。 本番運用 Git フォルダーの場合は、ユーザー アクセスを実行専用に制限し、管理者と Databricks サービスプリンシパルのみが編集できるようにします。
Git本番運用フォルダを作成するには:
-
デプロイ用の Git リポジトリとブランチを選択します。
-
サービスプリンシパルを取得し、サービスプリンシパルがこのGitリポジトリにアクセスするためのGit資格情報を構成します。
-
Git リポジトリ用の Databricks Git フォルダーを作成し、プロジェクト、チーム、開発ステージ専用の
Workspace
の下のサブフォルダーに分岐します。 -
フォルダを選択した後に 共有 を選択するか、 ワークスペース ツリーの下のフォルダを右クリックして 共有(権限) を選択します。次の権限で Git フォルダを設定します。
- [ 実行可能 ] は、任意のプロジェクト ユーザーに対して設定
- Databricks自動化を実行する任意の サービスプリンシパル アカウントに対して 実行可能 を設定します。
- プロジェクトに適している場合は、ワークスペース内のすべてのユーザーに対して 表示可能 を設定して、検出と共有を促進します。
-
[追加] を選択します。
-
Databricks Git フォルダーの自動更新を設定します。オートメーションを使用して、本番運用 Git フォルダをリモートブランチと同期させるには、次のいずれかを実行します。
- GitHub Actionsなどの外部CI/CDツールを使用して、プルリクエストがデプロイ ブランチにマージされたときに、最新のコミットを本番運用Gitフォルダーにプルします。GitHub Actions例については、本番運用Git フォルダーを更新するCI/CDワークフロー の実行を参照してください。
- 外部の CI/CD ツールにアクセスできない場合は、スケジュールされたジョブを作成して、ワークスペース内の Git フォルダーをリモート ブランチで更新します。次のコードを使用して、単純なノートブックを定期的に実行するようにスケジュールします。
Pythonfrom databricks.sdk import WorkspaceClient
w = WorkspaceClient()
w.repos.update(w.workspace.get_status(path=”<git-folder-workspace-full-path>”).object_id, branch=”<branch-name>”)
Databricks Repos APIによる自動化の詳細については、ReposのDatabricks REST API ドキュメント を参照してください。