Databricks

Databricks Reposで実務と資格対策を両立する

2026-03-26
更新: 2026-03-27
NicheeLab編集部

Databricksのノートブック開発はブラウザ上で完結する手軽さがある一方、 チームでの共同開発やバージョン管理にはGit統合が必須です。Databricks Reposは、ワークスペース内から直接Gitリポジトリをクローンし、 ブランチの切り替え・Pull・Push・差分表示を行える機能です。

この記事では、Reposの概要、サポートされるGitプロバイダ、ブランチ運用設計、 ファイル形式の選択(.py vs .ipynb)、シークレット管理の注意点、そしてCI/CDとの連携パターンを解説します。

Databricks Reposとは

ReposはDatabricksワークスペース内のフォルダとして表示されるGitリポジトリのクローンです。 ローカルPCにGitをインストールする必要はなく、ワークスペースのUI上でブランチ操作・Pull・Pushを行えます。

Reposの主な特徴は以下の通りです。

  • ワークスペースUIからブランチの作成・切り替え・Pull・Push・差分表示が可能
  • ノートブック・Pythonファイル・SQLファイルなどをGit管理対象にできる
  • Pull Request(PR)はGitプロバイダ側で作成・レビュー(DatabricksUI上では不可)
  • 1ユーザーにつき複数のReposフォルダを作成可能(ブランチごとに分ける運用も可能)

サポートされるGitプロバイダ

Gitプロバイダサポート状況認証方式
GitHub / GitHub Enterprise完全サポートPAT / GitHub App / OAuth
GitLab / GitLab Self-Managed完全サポートPAT
Azure DevOps (Azure Repos)完全サポートPAT / Entra ID Token
Bitbucket Cloud / Server完全サポートApp Password / PAT
AWS CodeCommitサポートGit Credentials(IAM生成)

Git認証情報はワークスペースのUser Settings → Git Integrationから設定します。 認証情報はユーザー単位で保存され、ワークスペース内の他のユーザーからは参照できません。

ブランチ運用のベストプラクティス

Databricks Reposを使ったチーム開発では、以下のブランチ戦略が推奨されます。

ブランチ用途保護ルール
main本番デプロイ対象のコード直接pushを禁止、PRマージのみ
develop次回リリースの統合ブランチPRマージのみ、CI必須
feature/*個人の開発ブランチ制限なし(自由にpush可能)
release/*リリース前の最終検証PRマージのみ、E2Eテスト必須
hotfix/*緊急修正mainから分岐し、mainとdevelopの両方にマージ

実際の開発フローは以下の通りです。

  1. 開発者がReposでfeature/add-etl-pipelineブランチを作成
  2. ノートブックUI上でコードを開発・テスト
  3. ReposのUIからCommit → Push
  4. GitプロバイダのWebUI上でPull Requestを作成
  5. レビューアがコードレビューし、CIがテストを実行
  6. マージ後、CI/CDパイプライン(DABs等)が本番環境にデプロイ

ファイル形式の選択: .py vs .ipynb

Databricks ReposでGitに保存されるファイルの形式はGit管理の品質に直結します。

観点.py(ソースファイル形式).ipynb(ノートブック形式)
Gitのdiff読みやすい(Pythonコードそのまま)読みにくい(JSONメタデータ・出力セルを含む)
PRレビュー容易(コードの変更点が明確)困難(diffにノイズが多い)
ファイルサイズ小さい(コードのみ)大きい(出力・画像がBase64で埋め込まれる)
Databricks UIでの開発ノートブックUIでそのまま開発可能ノートブックUIでそのまま開発可能
外部IDEとの互換性高い(VSCode等でそのまま編集可能)Jupyter互換(VSCode + Jupyter拡張で開発可能)

Databricksのノートブックを.py形式で保存する場合、セルの区切りは# COMMAND ----------コメントで表現されます。 DatabricksのUIではこのコメントを解釈してセル分割を再現するため、.py形式でもノートブックUIの使い勝手は維持されます。

# Databricks notebook source

# COMMAND ----------

from pyspark.sql import SparkSession

# COMMAND ----------

df = spark.read.format("delta").load("/mnt/data/sales")
display(df.limit(10))

# COMMAND ----------

# MAGIC %sql
# MAGIC SELECT region, SUM(amount) FROM sales GROUP BY region

シークレット管理の注意点

Repos(Gitリポジトリ)にシークレット情報を含めてはいけません。以下は厳守すべきルールです。

  • APIキー・パスワード・トークンはコードに書かない: Gitの履歴に永続的に残り、 リポジトリが公開された場合やチームメンバーの退職時にシークレットが漏洩する
  • Databricks Secret Scopeを使う: dbutils.secrets.get(scope, key)で 実行時にシークレットを取得する。Secret ScopeはDatabricks上に安全に保存され、Gitには含まれない
  • 環境変数を活用する: クラスタの環境変数やSpark Config経由でシークレットを注入し、 コード上ではキー名のみ参照する
  • .gitignoreを活用する: 設定ファイルやローカルの.envファイルをGit管理対象外にする
# NG: シークレットをハードコード
storage_key = "AbCdEfGhIjKlMnOp..."

# OK: Secret Scopeから取得
storage_key = dbutils.secrets.get(scope="my-scope", key="storage-key")

# OK: Spark Configから取得(クラスタ設定で注入)
storage_key = spark.conf.get("spark.custom.storage_key")

CI/CD連携パターン

Reposは開発フェーズのGit統合を担い、デプロイはCI/CDパイプライン(DABs、GitHub Actions等)が担当する 「開発はRepos、デプロイはCI/CD」の役割分担が推奨されます。

フェーズツール役割
開発Databricks Reposブランチ上でノートブック開発・テスト・Commit・Push
コードレビューGitHub / GitLab / Azure DevOpsPull Requestのレビュー・承認
テスト自動化GitHub Actions / Azure Pipelinespytestによるユニットテスト・リンターチェック
デプロイDatabricks Asset Bundles(DABs)ジョブ・パイプラインの環境別デプロイ

Reposの制限事項

  • リポジトリのサイズ上限は10 GB(大きなデータセットやバイナリファイルはGit LFSを検討)
  • 1つのReposフォルダは1つのGitリポジトリに対応(モノレポの場合はスパースチェックアウトを検討)
  • マージコンフリクトの解消は基本的なもの以外はGitクライアント側で行う必要がある
  • Git Submodulesは非サポート
  • Reposフォルダ内のファイルはワークスペースACLでアクセス制御される(Gitの権限とは別)

Repos vs Workspace Filesの違い

Databricksにはファイルを配置する場所としてReposとWorkspace Filesがあります。

観点ReposWorkspace Files
Git統合あり(Clone/Pull/Push/Branch)なし
用途チーム開発・バージョン管理個人の作業ファイル・依存ファイル配置
ファイルタイプノートブック・Python・SQL・設定ファイル任意のファイル(.csv, .json, requirements.txt等)
相対インポートサポートサポート

試験で問われるポイント

  • 「ノートブックのバージョン管理に使う機能は」→ Databricks Repos(Git統合)
  • 「シークレットをGitリポジトリに含めてよいか」→ 不可。Secret Scopeを使用する
  • 「ReposとDABsの使い分けは」→ Reposは開発フェーズのGit統合、DABsはデプロイ自動化
  • 「PRレビューはどこで行うか」→ Gitプロバイダ(GitHub/GitLab等)のWebUI上
  • 「.ipynbのGit管理の問題点は」→ JSON形式でdiffが読みにくく、出力セルがノイズになる

問題で確認

Security & Governance

問題 1

データエンジニアリングチームがDatabricks Reposを使って共同開発を行っている。あるメンバーがノートブック内にストレージアカウントのアクセスキーをハードコードしてGitにCommit・Pushしてしまった。この問題への対処として最も適切なものはどれか。

  1. Gitの履歴からシークレットを完全に除去し、アクセスキーをローテーションした上で、今後はdbutils.secrets.get()でSecret Scopeから取得する方式に変更する
  2. 次のCommitでアクセスキーを環境変数名に置き換えれば、Git履歴に残っても問題ない
  3. Reposフォルダのアクセス権限を制限すれば、Git履歴にシークレットが残っていても安全である
  4. .gitignoreにノートブックファイルを追加して今後のCommitから除外する

正解: A

Gitにコミットされたシークレットは履歴に永続的に残るため、単に次のコミットで置き換えるだけでは不十分です。git filter-branchやBFG Repo Cleanerで履歴から完全に除去し、漏洩したキーは即座にローテーション(再発行)する必要があります。その上で、今後はSecret Scope経由でシークレットを取得する方式に変更します。Reposのアクセス権限制限はGit側のアクセスを制御しません。.gitignoreは既にコミットされたファイルには効果がありません。

よくある質問

Databricks Reposでコンフリクトが発生した場合どう対処しますか?

Databricks ReposのUIにはマージコンフリクト解消の簡易エディタが用意されていますが、複雑なコンフリクト解消には不向きです。実務ではローカルのIDEやGitHub/GitLab上でコンフリクトを解消してからpushし、Repos側でPullする運用を推奨します。Reposはあくまでワークスペース内でGitブランチの中身を同期・参照する仕組みで、本格的なコンフリクト解消はGitクライアント側で行うのが安全です。

Reposで.ipynbファイルと.pyファイルのどちらを使うべきですか?

Git管理の観点では.pyファイルを推奨します。.ipynbファイルはJSON形式で出力セルやメタデータを含むため、diffが読みにくくPRレビューが困難です。Databricksはノートブック形式で作成しても、Repos経由でGitに保存する際にはソースファイル(.py/.sql/.scala/.r)として保存する「ソースファイル形式」を選択できます。チームでGitレビューフローを運用する場合は.py形式を選択し、ノートブックUIで開発するメリットはそのまま維持できます。

Databricks ReposはDatabricks認定試験でどう出題されますか?

Data Engineer Associate試験の「開発ツールとワークフロー」ドメインおよびProfessional試験の「CI/CDとデプロイ」ドメインで出題されます。主な問われ方は「ReposとGitの統合方法」「ブランチ運用のベストプラクティス」「Repos vs DABsの使い分け」「シークレットをReposに含めてよいか」です。具体的なGitコマンドを書かせる問題は出ず、ReposのDatabricksエコシステムでの位置づけと運用上の注意点が問われます。

この記事で学んだ内容を問題で確認しましょう

16,000問以上の問題で実力チェック

無料で問題を解いてみる
この記事の著者

NicheeLab編集部

データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。


関連記事
Databricks

Databricks資格一覧|全7試験・難易度・勉強法

Databricks認定資格全7試験の一覧・難易度・出題範囲・合格ラインを徹底解説。2026年最新版の公式試験ガイドに準...

Databricks

Databricks試験の難易度ランキング|全7資格を徹底比較

Databricks認定全7試験の難易度をランキング形式で徹底比較。合格率・学習時間・出題傾向から難易度を分析。...

Databricks

Databricks資格の勉強方法|最短合格ルートと学習時間の目安

Databricks認定資格に最短で合格するための勉強方法を完全ガイド。公式リソース・問題集・学習スケジュールを徹底解説...

Databricks

Databricks Data Engineer Associate完全解説|出題範囲・問題例・合格戦略

Databricks Certified Data Engineer Associate試験を徹底解説。5つの出題ドメイ...

Databricks

Databricks Data Engineer Professional完全解説|上級試験の攻略法

Databricks Certified Data Engineer Professional試験を徹底解説。10の出題...

Databricksの記事一覧 (105件)
© 2026 NicheeLab All rights reserved.