Databricks

Databricks Workspace Export / Import 実践

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

Databricksワークスペース内のノートブック・フォルダ・ファイルを別のワークスペースに移行したり、 バックアップを取得したり、CI/CDパイプラインにコードを渡す際に使うのがWorkspace Export / Importです。

この記事では、エクスポート形式(DBC/SOURCE/HTML)の違い、Databricks CLIとREST APIを使った 操作コマンド、Terraformとの連携方式、そしてエクスポート時の権限・シークレットの扱いについて解説します。

エクスポート形式の比較

Databricksのワークスペースからノートブックをエクスポートする際、3つの形式を選択できます。

形式拡張子含まれる内容用途インポート可能か
DBC.dbcノートブック本体・メタデータ・セル構造・フォルダ構造バックアップ・ワークスペース間移行はい(完全復元)
SOURCE.py / .sql / .scala / .rソースコードのみ(セル区切りはコメントで表現)Git管理・CI/CD・コードレビューはい(ノートブックとして作成)
HTML.htmlノートブックのレンダリング結果(コード+出力+グラフ)ドキュメント共有・レポート配布いいえ(読み取り専用)
JUPYTER.ipynbJupyter形式のノートブック(セル・メタデータ・出力)Jupyter Notebook互換環境への移行はい

DBC形式はDatabricks固有のアーカイブ(実体はZIPファイル)で、フォルダ全体をまとめてエクスポートできます。 SOURCE形式は純粋なソースコードファイルで、Gitリポジトリへの格納やPRレビューに最適です。

Databricks CLIによるExport / Import

Databricks CLIを使うと、コマンドラインからバッチ的にExport / Importを実行できます。

単一ノートブックのエクスポート

# SOURCE形式でエクスポート
databricks workspace export \
  /Workspace/Users/[email protected]/etl_pipeline \
  --file ./etl_pipeline.py \
  --format SOURCE

# DBC形式でエクスポート
databricks workspace export \
  /Workspace/Users/[email protected]/etl_pipeline \
  --file ./etl_pipeline.dbc \
  --format DBC

# HTML形式でエクスポート(レポート共有用)
databricks workspace export \
  /Workspace/Users/[email protected]/etl_pipeline \
  --file ./etl_pipeline.html \
  --format HTML

フォルダ全体の一括エクスポート

# フォルダ全体をSOURCE形式で一括エクスポート
databricks workspace export_dir \
  /Workspace/Shared/etl-project \
  ./backup/etl-project \
  --overwrite

インポート

# SOURCE形式のインポート
databricks workspace import \
  --path /Workspace/Users/[email protected]/etl_pipeline \
  --file ./etl_pipeline.py \
  --format SOURCE \
  --language PYTHON

# DBC形式の一括インポート
databricks workspace import_dir \
  ./backup/etl-project \
  /Workspace/Shared/etl-project-restored \
  --overwrite

REST APIによるExport / Import

CI/CDパイプラインからプログラマティックにExport / Importを行う場合はREST APIを使います。

# エクスポート(SOURCE形式)
curl -X GET \
  "https://<workspace-url>/api/2.0/workspace/export" \
  -H "Authorization: Bearer <token>" \
  -d '{
    "path": "/Workspace/Users/[email protected]/etl_pipeline",
    "format": "SOURCE"
  }'

# レスポンス(Base64エンコードされたコンテンツ)
{
  "content": "IyBEYXRhYnJpY2tzIG5vdGVib29rIHNvdXJjZQ...",
  "file_type": "py"
}
# インポート(SOURCE形式)
curl -X POST \
  "https://<workspace-url>/api/2.0/workspace/import" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "path": "/Workspace/Users/[email protected]/etl_pipeline_v2",
    "format": "SOURCE",
    "language": "PYTHON",
    "content": "IyBEYXRhYnJpY2tzIG5vdGVib29rIHNvdXJjZQ...",
    "overwrite": true
  }'

REST APIでのコンテンツはBase64エンコードされる点に注意してください。 大量のノートブックを移行する場合は、CLIのexport_dir/import_dirの方が効率的です。

エクスポートに含まれるもの / 含まれないもの

項目DBC形式SOURCE形式HTML形式
ソースコード含まれる含まれる含まれる(HTMLとして)
セル構造・メタデータ含まれるコメントで表現レンダリング済み
実行結果・出力含まれない含まれない含まれる
ダッシュボード含まれる(ノートブック付属の場合)含まれない含まれる
ワークスペース権限(ACL)含まれない含まれない含まれない
Secret Scopeの内容含まれない含まれない含まれない
クラスタ設定含まれない含まれない含まれない
ジョブ定義含まれない含まれない含まれない

ワークスペース権限(ACL)、Secret Scope、クラスタ設定、ジョブ定義はいずれの形式でもエクスポートされません。 これらのリソースを移行するには、Databricks Terraform ProviderまたはDatabricks CLIの 各リソース用APIを個別に使う必要があります。

Terraformとの連携

ワークスペースのノートブック配置をIaCで管理する場合、Terraform Providerのdatabricks_notebookリソースを使います。

resource "databricks_notebook" "etl_pipeline" {
  path     = "/Workspace/Shared/etl-project/etl_pipeline"
  language = "PYTHON"
  source   = "${path.module}/notebooks/etl_pipeline.py"
}

resource "databricks_notebook" "data_quality" {
  path     = "/Workspace/Shared/etl-project/data_quality"
  language = "SQL"
  source   = "${path.module}/notebooks/data_quality.sql"
}

Terraformで管理するメリットは、ノートブックの配置だけでなく、 クラスタ・ジョブ・権限・Secret Scopeなどのリソースも含めて一元管理できる点です。 ただし、ノートブックの頻繁な更新にはTerraformのapplyサイクルが重く、 開発フェーズではRepos、デプロイフェーズではDABsまたはTerraformという使い分けが現実的です。

ワークスペース移行パターン

ワークスペース間でのノートブック移行には複数のアプローチがあります。

パターン方法適用場面
手動Export/ImportUIからDBC形式でエクスポート → 別ワークスペースでインポート少量のノートブック移行(〜数十件)
CLIバッチ処理export_dirimport_dir大量のノートブック移行(数百件〜)
Git経由Reposで元ワークスペースからpush → 新ワークスペースでcloneGit管理済みのプロジェクト
TerraformIaCコードのtarget変更で別ワークスペースにapplyインフラ含めた全体移行

ベストプラクティス

  • 定期バックアップにはCLIのexport_dir + DBC形式: cronジョブまたはCI/CDスケジュールで 定期的にワークスペースのノートブックをDBC形式でバックアップする
  • 移行前にシークレットのハードコードを排除する: エクスポートされたコードにシークレットが 含まれないよう、事前にSecret Scope方式に移行する
  • 権限は別途移行する: ノートブックのExport/Importでは権限が引き継がれないため、 Permissions APIまたはTerraformで権限を再設定する
  • 長期的にはRepos + DABsに移行する: Export/Importは一時的な移行やバックアップには有用だが、 継続的なデプロイにはRepos + DABsの方が適している

試験で問われるポイント

  • 「ノートブックをワークスペース間で移行するには」→ Export/Import(DBC形式)またはRepos経由のGit Clone
  • 「エクスポートに権限は含まれるか」→ 含まれない(Permissions APIで別途設定が必要)
  • 「SOURCE形式とDBC形式の違いは」→ SOURCEはソースコードのみ、DBCはメタデータを含むアーカイブ
  • 「HTML形式のエクスポートはインポートできるか」→ できない(読み取り専用のレポート形式)

問題で確認

Development Tools

問題 1

開発環境のDatabricksワークスペースから本番環境のワークスペースにノートブックを移行する必要がある。ノートブックのコード・セル構造・フォルダ構成を完全に保持したい。ただし権限設定は両環境で異なるため個別に設定する。最も適切な移行方法はどれか。

  1. DBC形式でフォルダ全体をエクスポートし、本番ワークスペースにインポートした後、Permissions APIで権限を設定する
  2. SOURCE形式でノートブックをエクスポートし、本番ワークスペースにインポートする
  3. HTML形式でノートブックをエクスポートし、本番ワークスペースにインポートする
  4. 開発環境のDBFSからノートブックファイルをコピーし、本番環境のDBFSに配置する

正解: A

DBC形式はセル構造・メタデータ・フォルダ構成を完全に保持するアーカイブ形式です。エクスポートに権限は含まれないため、インポート後にPermissions APIで権限を設定します。SOURCE形式はソースコードのみでセル構造の完全な保持は保証されません。HTML形式は読み取り専用でインポートできません。ノートブックはDBFSではなくワークスペースのファイルツリーに保存されるため、DBFSコピーではノートブックは移行できません。

よくある質問

DBC形式とSOURCE形式のどちらでエクスポートすべきですか?

用途によります。DBC形式はDatabricks固有のアーカイブ形式で、ノートブックのメタデータ・セル構造・ダッシュボードなどを完全に保持します。ワークスペース間のノートブック移行やバックアップにはDBC形式が適しています。SOURCE形式は純粋なソースコード(.py/.sql/.scala/.r)としてエクスポートするため、Git管理やCI/CDパイプラインとの連携に適しています。HTML形式はドキュメント共有用の読み取り専用形式です。一般的にはバックアップはDBC、開発はSOURCE、レポート共有はHTMLと使い分けます。

エクスポートした内容にシークレットは含まれますか?

いいえ。dbutils.secrets.get()で取得するシークレット自体はSecret Scope内に安全に保管されており、ノートブックのエクスポートには含まれません。ただし、シークレットのスコープ名やキー名はコード内に記述されているため、エクスポートされたコードからどのシークレットを参照しているかは推測可能です。また、ノートブック内にハードコードされたシークレット(非推奨ですが存在する場合)は、SOURCEやDBC形式のエクスポートに含まれます。エクスポート前にコード内のシークレットハードコードを排除することが重要です。

Workspace Export / Importは認定試験でどう出題されますか?

Data Engineer Associate試験の「開発ツール」ドメインおよびProfessional試験の「デプロイと管理」ドメインで出題されます。主な出題パターンは「ワークスペース間でノートブックを移行する方法」「CLIでバッチエクスポートするコマンド」「DBC vs SOURCE形式の違い」「エクスポートに含まれる/含まれないもの」です。Terraform連携やDABsとの使い分けが問われることもあります。

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

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.