Databricks Git フォルダーを使用した CI/CD
CI/CDフローでDatabricks Gitフォルダーを使用して、作業をソース管理内に保ち、データエンジニアリング ワークフローと統合します。 Databricks を使用した CI/CD のより広範な概要については、 「Databricks 上の CI/CD」を参照してください。
利用フロー
Git フォルダーの自動化は、初期のフォルダー構成と、Databricks ジョブからの Git 操作を自動化するための Databricks Repos REST API を中心に行われます。自動化を構築する前に:
- 使用するリモート Git リポジトリを確認します。
- 各段階 (開発、統合、ステージング、本番運用) に適切なリポジトリとブランチを選択します。
主な流れは3つあります。
- 管理フロー : Databricksワークスペース管理者は、本番運用Gitフォルダーをホストする最上位フォルダーを作成します。 管理者は各フォルダーを作成するときにリポジトリとブランチを複製し、目的に応じて名前を付けることができます (例: 「本番運用」、「テスト」、または「ステージング」)。 「本番運用Gitフォルダーを作成する」を参照してください。
- ユーザーフロー : ユーザーはリモートリポジトリから
/Workspace/Users/<email>/の下に Git フォルダーを作成し、ユーザー固有のブランチで作業し、コミットをリモートにプッシュします。「Git フォルダーを使用した共同作業」を参照してください。 - マージフロー : Git フォルダーからプッシュした後、ユーザーはプル リクエスト (PR) を開きます。PRがマージされると、自動化によりDatabricks Repos APIを使用して本番運用Gitフォルダーに変更をプルできます。
Git フォルダーを使用した共同作業
Databricks UI から変更をプルおよびプッシュすることで、他のユーザーと共同作業を行います。一般的なパターンは、機能または開発ブランチを使用して作業を集約することです。
機能ブランチで共同作業するには:
- 既存の Git リポジトリを Databricks ワークスペースにクローンします。
- Git フォルダー UI で、メイン ブランチから機能ブランチを作成します。必要に応じて複数の機能ブランチを使用できます。
- リポジトリ内の Databricks ノートブックやその他のファイルを編集します。
- 変更をコミットしてリモート リポジトリにプッシュします。
- 他の貢献者は、リポジトリを自分のユーザー フォルダーに複製できます。ブランチで作業し、Git フォルダー内のノートブックとファイルを変更し、コミットしてリモートにプッシュします。
- 準備ができたら、Git プロバイダーで PR を作成し、チームで確認して、デプロイメント ブランチにマージします。
Databricks では、各開発者が独自のブランチで作業することを推奨しています。マージの競合を解決するには、 「マージの競合の解決」を参照してください。
CI/CDアプローチを選択する
Databricks では、CI/CD ワークフローをパッケージ化してデプロイするためにDatabricks Asset Bundleを推奨しています。コードのみをワークスペースにデプロイしたい場合は、代わりに本番運用Gitフォルダーを使用できます。 より広範な CI/CD の概要については、 「Databricks の CI/CD」を参照してください。
バンドルを使用してソース内のジョブやパイプラインなどのリソースを定義し、それらをワークスペースの Git フォルダーで作成、デプロイ、管理します。「ワークスペースでバンドルを共同作業する」を参照してください。
本番運用Gitフォルダーを作成する
本番運用Gitフォルダーは、 /Workspace/Users/にあるユーザーレベルのGitフォルダーとは異なります。 ユーザー レベルのフォルダーは、ユーザーが開発して変更をプッシュするローカル チェックアウトです。本番運用Gitフォルダーは、ユーザー フォルダーの外部の管理者によって作成され、デプロイメント ブランチを保持し、自動化されたワークフローのソースになります。 これらは、PR がデプロイメント ブランチにマージされたときにのみ、自動化によって更新される必要があります。ほとんどのユーザーに対して本番運用Gitフォルダーへのアクセスを実行のみに制限します。 管理者とDatabricksプリンパルシのみに編集を許可します。

本番運用Gitフォルダーを作成するには:
-
デプロイメント用の Git リポジトリとブランチを選択します。
-
サービスプリンシパルを作成または使用し、そのリポジトリにアクセスできるようにGit資格情報を構成します。
-
ワークスペース の下のサブフォルダーにリポジトリとブランチ用の Databricks Git フォルダーを作成します (たとえば、プロジェクト、チーム、ステージごと)。
-
フォルダーを選択し、 [共有] (またはワークスペース ツリーで [共有 (権限)] を右クリックします)。
-
権限レベルを割り当てます:
- ワークフローを実行する必要があるプロジェクトユーザーに対して 実行できます 。
- このフォルダーに対して自動化を実行するDatabricksサービス プリンシパル を実行できます 。
- オプションで、検出と共有をサポートするために、すべてのワークスペース ユーザーに 表示権限を与えます 。
![[Git フォルダの共有] モーダル ダイアログ ウィンドウ。](/gcp/ja/assets/images/add-production-folder2-a9b7cca8b543671ccec1cacaa4387585.png)
-
[ 追加 ] をクリックします。
-
次のオプションのいずれかを使用して、本番運用Gitフォルダーとリモート ブランチの同期を維持します。
- 外部 CI/CD : PR がデプロイメント ブランチにマージされたときに、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>")
Repos APIを使用した自動化の詳細については、 ReposのDatabricks REST APIドキュメントを参照してください。