メインコンテンツまでスキップ

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 から変更をプルおよびプッシュすることで、他のユーザーと共同作業を行います。一般的なパターンは、機能または開発ブランチを使用して作業を集約することです。

機能ブランチで共同作業するには:

  1. 既存の Git リポジトリを Databricks ワークスペースにクローンします
  2. Git フォルダー UI で、メイン ブランチから機能ブランチを作成します。必要に応じて複数の機能ブランチを使用できます。
  3. リポジトリ内の Databricks ノートブックやその他のファイルを編集します。
  4. 変更をコミットしてリモート リポジトリにプッシュします
  5. 他の貢献者は、リポジトリを自分のユーザー フォルダーに複製できます。ブランチで作業し、Git フォルダー内のノートブックとファイルを変更し、コミットしてリモートにプッシュします
  6. 準備ができたら、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フォルダーを作成するには:

  1. デプロイメント用の Git リポジトリとブランチを選択します。

  2. サービスプリンシパルを作成または使用し、そのリポジトリにアクセスできるようにGit資格情報を構成します。

  3. ワークスペース の下のサブフォルダーにリポジトリとブランチ用の Databricks Git フォルダーを作成します (たとえば、プロジェクト、チーム、ステージごと)。

  4. フォルダーを選択し、 [共有] (またはワークスペース ツリーで [共有 (権限)] を右クリックします)。

  5. 権限レベルを割り当てます:

    • ワークフローを実行する必要があるプロジェクトユーザーに対して 実行できます
    • このフォルダーに対して自動化を実行するDatabricksサービス プリンシパル を実行できます
    • オプションで、検出と共有をサポートするために、すべてのワークスペース ユーザーに 表示権限を与えます

    [Git フォルダの共有] モーダル ダイアログ ウィンドウ。

  6. [ 追加 ] をクリックします。

  7. 次のオプションのいずれかを使用して、本番運用Gitフォルダーとリモート ブランチの同期を維持します。

    • 外部 CI/CD : PR がデプロイメント ブランチにマージされたときに、GitHub Actions などのツールを使用して最新のコミットをプルします。例については、 「Git フォルダーを更新する CI/CD ワークフローを実行する」を参照してください。
    • スケジュールされたジョブ : 外部 CI/CD が利用できない場合は、Git フォルダーを更新するスケジュールされたジョブを実行します。スケジュールに従って実行されるシンプルなノートブックを使用します。
    Python
    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ドキュメントを参照してください。