CI/CD フローで Databricks Git フォルダーを使用して、ソース管理の作業を維持し、データ エンジニアリング ワークフローと統合します。 Azure Databricks での CI/CD の広範な概要については、 Azure Databricks の CI/CD に関するページを参照してください。
使用フロー
Git フォルダーの自動化では、初期フォルダー構成と Azure Databricks Repos REST API を中心にして、Azure Databricks ジョブから Git 操作を自動化します。 自動化を構築する前に、次の操作を行います。
- 使用するリモート Git リポジトリを確認します。
- 各ステージ (開発、統合、ステージング、運用) に適したリポジトリとブランチを選択します。
主に次の 3 つのフローがあります。
- 管理者フロー: Azure Databricks ワークスペース管理者は、運用 Git フォルダーをホストするために最上位レベルのフォルダーを作成します。 管理者は、各フォルダーを作成するときにリポジトリとブランチを複製し、目的別に名前を付けることができます (例: "Production"、"Test"、"Staging")。 本番環境の Git フォルダー作成を参照してください。
-
ユーザー フロー: ユーザーは、リモート リポジトリから
/Workspace/Users/<email>/の下に Git フォルダーを作成し、ユーザー固有のブランチで動作し、コミットをリモートにプッシュします。 Git フォルダーを使用した共同作業を参照してください。 - マージ フロー: Git フォルダーからプッシュすると、ユーザーは pull request (PR) を開きます。 PR がマージされると、Automation は Azure Databricks Repos API を使用して、運用環境の Git フォルダーに変更をプルできます。
Git フォルダーを使用した共同作業
Azure Databricks UI から変更をプルしてプッシュすることで、他のユーザーと共同作業を行います。 一般的なパターンは、機能または開発ブランチを使用して作業を集計することです。
機能ブランチで共同作業を行う方法:
- 既存の Git リポジトリを自分の Databricks ワークスペースにクローンします。
- Git フォルダー UI で、メイン ブランチから機能ブランチを作成 します。 必要に応じて、複数の機能ブランチを使用できます。
- リポジトリ内の Azure Databricks ノートブックとその他のファイルを編集します。
- 変更をコミットして リモート リポジトリにプッシュします。
- 他の共同作成者は、リポジトリを独自のユーザー フォルダーに複製できます。 ブランチで作業し、Git フォルダー内のノートブックとファイルを変更してから、 リモートにコミットしてプッシュ します。
- 準備ができたら、Git プロバイダーで PR を作成し、チームと確認し、デプロイ ブランチにマージします。
注
Databricks では、各開発者が独自のブランチで作業することをお勧めします。 マージの競合を解決する方法については、「 マージの競合を解決する」を参照してください。
CI/CD アプローチを選択する
Databricks は、CI/CD ワークフローをパッケージ化してデプロイするために Databricks アセット バンドル を推奨します。 コードのみをワークスペースにデプロイする場合は、代わりに運用 Git フォルダーを使用できます。 より広範な CI/CD の概要については、 Azure Databricks の CI/CD に関するページを参照してください。
ヒント
バンドルを使用してソース内のジョブやパイプラインなどのリソースを定義し、ワークスペースの Git フォルダーで作成、デプロイ、管理します。 ワークスペースのバンドルでの共同作業を参照してください。
本番環境 Git フォルダーを作成する
運用 Git フォルダーは、 /Workspace/Users/のユーザー レベルの Git フォルダーとは異なります。 ユーザー レベルのフォルダーは、ユーザーが変更を開発してプッシュするローカル チェックアウトです。 運用 Git フォルダーは、ユーザー フォルダーの外部の管理者によって作成され、デプロイ ブランチを保持し、自動化されたワークフローのソースです。 PR をデプロイ ブランチにマージする場合にのみ、自動化によって更新する必要があります。 運用 Git フォルダーを、ほとんどのユーザーの実行専用アクセスに制限します。 管理者と Azure Databricks サービス プリンシパルのみに編集を許可します。
運用 Git フォルダーを作成するには:
デプロイ用の Git リポジトリとブランチを選択します。
サービス プリンシパルを作成または使用し、そのリポジトリにアクセスできるように Git 資格情報を構成します。
リポジトリとブランチの Azure Databricks Git フォルダーを ワークスペース の下のサブフォルダー (プロジェクト、チーム、ステージごとなど) に作成します。
フォルダーを選択し、[ 共有 ] を選択します (または、ワークスペース ツリーで [ 共有 ( アクセス許可)] を右クリックします)。
アクセス許可レベルを割り当てます。
- ワークフローを実行する必要があるプロジェクト ユーザーに対して実行できます。
- このフォルダーに対して自動化を実行する任意の Azure Databricks サービス プリンシパルに対して実行できます。
- 必要に応じて、検出と共有をサポートするすべてのワークスペース ユーザーを 表示できます 。
追加をクリックします。
次のいずれかのオプションを使用して、運用 Git フォルダーをリモート ブランチと同期したままにします。
- 外部 CI/CD: GITHub Actions などのツールを使用して、PR がデプロイ ブランチにマージされたときに最新のコミットをプルします。 例については、「 Git フォルダーを更新する CI/CD ワークフローを実行する」を参照してください。
- スケジュールされたジョブ: 外部 CI/CD を使用できない場合は、Git フォルダーを更新するスケジュールされたジョブを実行します。 スケジュールに従って実行される単純なノートブックを使用します。
from 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 ドキュメントを参照してください。