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

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 から直接更新をプルしたり、変更をプッシュしたりできます。たとえば、機能ブランチまたは開発ブランチを使用して、複数のブランチ間で行われた変更を集約します。

次のフローでは、機能ブランチを使用して共同作業を行う方法について説明します。

  1. 既存の Git リポジトリを Databricks ワークスペースにクローンします

  2. Git フォルダー UI を使用して、メイン ブランチから 機能ブランチを作成します 。複数の機能ブランチを作成して使用し、作業を行うことができます。

  3. Databricks ノートブックとリポジトリ内の他のファイルに変更を加えます。

  4. 変更をコミットして、リモートの Git リポジトリにプッシュします

  5. コントリビューターは、Git リポジトリを自分のユーザーフォルダにクローンできるようになりました。

    1. 新しいブランチで作業している同僚は、Git フォルダー内のノートブックやその他のファイルに変更を加えます。
    2. 共同作成者 は、変更をコミットしてリモート Git リポジトリにプッシュします。
  6. 自分や他の共同作成者がコードをマージする準備ができたら、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本番運用フォルダを作成するには:

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

  2. サービスプリンシパルを取得し、サービスプリンシパルがこのGitリポジトリにアクセスするためのGit資格情報を構成します。

  3. Git リポジトリ用の Databricks Git フォルダーを作成し、プロジェクト、チーム、開発ステージ専用の Workspace の下のサブフォルダーに分岐します。

  4. フォルダを選択した後に 共有 を選択するか、 ワークスペース ツリーの下のフォルダを右クリックして 共有(権限) を選択します。次の権限で Git フォルダを設定します。

    • [ 実行可能 ] は、任意のプロジェクト ユーザーに対して設定
    • Databricks自動化を実行する任意の サービスプリンシパル アカウントに対して 実行可能 を設定します。
    • プロジェクトに適している場合は、ワークスペース内のすべてのユーザーに対して 表示可能 を設定して、検出と共有を促進します。

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

  5. [追加] を選択します。

  6. Databricks Git フォルダーの自動更新を設定します。オートメーションを使用して、本番運用 Git フォルダをリモートブランチと同期させるには、次のいずれかを実行します。

    • GitHub Actionsなどの外部CI/CDツールを使用して、プルリクエストがデプロイ ブランチにマージされたときに、最新のコミットを本番運用Gitフォルダーにプルします。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>)

Databricks Repos APIによる自動化の詳細については、ReposのDatabricks REST API ドキュメント を参照してください。