Databricksのワークロード(ノートブック、ジョブ、カタログ、スケジュール)をOracle AI Data Platformに移行する際に、最初に参照するスキルです。移行に必要なツール群、2段階の移行アーキテクチャ(複数回のデータ処理を経るシステム設計)、および各段階を担当する他のaidp-*スキルについて説明します。そのほかのスキルを組み合わせて使用します。このスキル自体はAPI(データを取得・処理するための機能)を提供しません。 **次のような場合に使用: ユーザーがDatabricksワークロードをOracle AI Data Platformへの移行について言及した場合**
Router skill. Read this first whenever the user mentions migrating a Databricks workload (notebooks, jobs, catalogs, schedules) onto Oracle AI Data Platform (AIDP). Lays out the toolkit, the two-pass migration architecture, and which of the other aidp-* skills handles each phase. Compose those skills; this one adds no API surface.
aidp-migrator-overview — ルーターDatabricksワークロードをAIDPへ移行する作業は、複数フェーズからなる操作です。 このスキルは、ユーザーの要求内容に応じて適切な次のスキルを選択します。
┌────────────────────┐ ┌──────────────────────┐ ┌─────────────────────┐
│ Pass-0: 計画 │ → │ Pass-1: 依存コード │ → │ Pass-2: 実行 │
│ build_dag.py │ │ ensure_migrated() │ │ job_migrate.py │
│ check_data_ │ │ %run ツリーを走査し │ │ ライブAIDPクラスター│
│ availability.py │ │ 各依存ノートブックの│ │ 上でセル単位に実行、│
│ │ │ Databricks APIを │ │ 4方向検証、最大10回 │
│ (読み取り専用) │ │ 書き換え(実行なし)│ │ の修正試行 │
└────────────────────┘ └──────────────────────┘ └─────────────────────┘
カタログ移行は独立したフローであり、Pass-2の前に実行します
(移行済みノートブックが読み取りを試みる時点で、スキーマとテーブルの
ロケーションが存在するようにするため):
┌──────────────────────────────────┐ ┌──────────────────────────────────┐
│ extract_catalog_databricks.py │ → │ migrate_catalog.py │
│ Unity Catalog APIへREST呼び出し │ │ 18種のDDL書き換えルールを適用し │
│ → reports/catalog_pack.json │ │ AIDPへCREATE SCHEMA / CREATE │
│ │ │ TABLEを一括WSエグゼキュートで発行│
└──────────────────────────────────┘ └──────────────────────────────────┘
| ユーザーの発言 | 呼び出すスキル |
|---|---|
| 「このDatabricksジョブを移行して」「このワークフローを移植して」「AIDPに変換して」 | aidp-migrate-job |
| 「移行マニフェストを作って」「何が移行対象か確認したい」「DAGを見せて」 | aidp-build-dag |
| 「ソーステーブルは利用可能か」「移行前チェック」「データの準備はできているか」 | aidp-check-data |
| 「移行を再開して」「移行済みをスキップして」「前回の続きから再開して」 | aidp-resume-migration |
| 「セルNが失敗している」「このノートブックを修正して」「セルKからリトライして」 | aidp-fixup-cell |
| 「Unity Catalogを移行して」「HMSスキーマを移植して」「DDL移行」 | aidp-migrate-catalog |
| 「S3バケットをOCIにマッピングして」「バケットマッピングを設定して」 | aidp-bucket-mapping |
| 「ストリーミング収束」「受け入れ契約」「パイプラインが安定するまで待って」 | aidp-acceptance-contract |
| ツールキット初回利用、「何をインストールすればいいか」 | aidp-migrator-bootstrap |
このプラグインは自己完結型です — migratorエンジン一式が
${CLAUDE_PLUGIN_ROOT}/engine/ 配下にバンドルされています。
このプラグイン内のいずれかのスキルが実際に動作するには、
ユーザーが以下を準備する必要があります:
エンジンのPython依存パッケージをインストール済みであること。
pip install -r ${CLAUDE_PLUGIN_ROOT}/engine/requirements.txt を一度実行します。
スキル aidp-migrator-bootstrap がこの手順と以降のチェックをガイドします。
~/.oci/config に api_key プロファイル(無人実行用)または
セッショントークンプロファイル(対話的実行用)が設定済みであること。
AIDPクラスターが起動中であること。
エンジンのPass-2はWebSocketによる実行パスを必要とするため、
ライブクラスターが必須です。
クラスターが停止している場合は、aidp-migrate-job
を呼び出す前にAIDPコンソールからクラスターを起動するようユーザーに案内してください。
ANTHROPIC_API_KEY が環境変数に設定済みであること。
エンジンはセルの書き換えごとにtool useを使用してClaudeを呼び出します。
このキーがない場合、Pass-2ループは動作しません。
env-coords.md ファイルが存在すること。
references/env-coords.template.md を参照してください。
DataLake OCID、ワークスペースUUID、クラスターID、AIDPベースURL、
OCIプロファイル名をユーザーが一度記入すれば、
以降のすべてのスキルがこれらの値を引き継ぎます。
dbutils.fs を OCI Object Storage のファイルとして移行することは対象外です —
テーブル・ノートブック・ジョブ構成のみが対象です。
DBFSのファイルレベルのレプリケーションは別途対応が必要です。references/cli-map.md — migratorのすべてのCLIエントリーポイントと目的の対応表references/gotchas.md — Databricks → AIDPの注意点15項目と修正レシピreferences/ddl-rewrite-rules.md — 18種のDDL書き換えルールreferences/env-coords.template.md — すべてのスキルが参照するスキャフォールドaidp-migrator-bootstrap — ワークステーションごとに1回aidp-migrate-catalog — スキーマとテーブルを最初に移行し、ノートブックの読み取り先を確保するaidp-bucket-mapping — s3:// 外部ロケーションを持つテーブルを移行する場合のみaidp-build-dag — reports/<job>_manifest.json を生成するaidp-check-data — クラスター時間を消費する前に検証するaidp-migrate-job — メインの移行実行aidp-fixup-cell — 自動修正ループで回復できなかったセルがある場合のみaidp-acceptance-contract — ストリーミング/バッチ収束パイプラインの場合aidp-migrator-overview — routerMigrating a Databricks workload onto AIDP is a multi-phase operation. This skill picks the right next skill based on what the user asks.
┌────────────────────┐ ┌──────────────────────┐ ┌─────────────────────┐
│ Pass-0: Plan │ → │ Pass-1: Dep code │ → │ Pass-2: Execute │
│ build_dag.py │ │ ensure_migrated() │ │ job_migrate.py │
│ check_data_ │ │ walks %run tree, │ │ cell-by-cell on a │
│ availability.py │ │ rewrites Databricks │ │ live AIDP cluster, │
│ │ │ APIs in each dep │ │ 4-way verify, up │
│ (read-only) │ │ notebook (no run) │ │ to 10 fix attempts │
└────────────────────┘ └──────────────────────┘ └─────────────────────┘
The catalog migration is a SEPARATE flow, run BEFORE Pass-2 (so the
schemas + table locations exist when migrated notebooks try to read them):
┌──────────────────────────────────┐ ┌──────────────────────────────────┐
│ extract_catalog_databricks.py │ → │ migrate_catalog.py │
│ REST against Unity Catalog API │ │ 18 DDL rewrite rules → batched │
│ → reports/catalog_pack.json │ │ CREATE SCHEMA / CREATE TABLE │
│ │ │ on AIDP in a single WS execute │
└──────────────────────────────────┘ └──────────────────────────────────┘
| User says | Skill to invoke |
|---|---|
| "Migrate this Databricks job", "port this workflow", "convert to AIDP" | aidp-migrate-job |
| "Build a migration manifest", "what would migrate", "show the DAG" | aidp-build-dag |
| "Are my source tables available?", "pre-migration check", "is the data ready" | aidp-check-data |
| "Resume the migration", "skip already-migrated", "pick up where I left off" | aidp-resume-migration |
| "Cell N is failing", "fix this notebook", "retry from cell K" | aidp-fixup-cell |
| "Migrate the Unity Catalog", "port the HMS schemas", "DDL migration" | aidp-migrate-catalog |
| "Map s3 buckets to OCI", "configure bucket mapping" | aidp-bucket-mapping |
| "Streaming convergence", "acceptance contract", "wait for pipeline to settle" | aidp-acceptance-contract |
| First time using this toolkit, "what do I need to install" | aidp-migrator-bootstrap |
This plugin is self-contained — the full migrator engine ships bundled under ${CLAUDE_PLUGIN_ROOT}/engine/. Before any skill in this plugin can do real work, the user needs:
pip install -r ${CLAUDE_PLUGIN_ROOT}/engine/requirements.txt. Skill aidp-migrator-bootstrap walks through this and the rest of these checks.~/.oci/config with either an api_key profile (unattended) or session-token profile (interactive).aidp-migrate-job.ANTHROPIC_API_KEY in the environment. The engine uses Claude with tool use for every cell rewrite. Without this key the Pass-2 loop won't run.env-coords.md file — see references/env-coords.template.md. The customer fills in their DataLake OCID, workspace UUID, cluster ID, AIDP base URL, OCI profile name once; every other skill threads these through.dbutils.fs to OCI Object Storage files — only table/notebook/job constructs. File-level DBFS replication is a separate exercise.references/cli-map.md — every migrator CLI entrypoint mapped to its purpose.references/gotchas.md — 15 Databricks → AIDP gotchas with fix recipes.references/ddl-rewrite-rules.md — the 18 DDL rewrite rules.references/env-coords.template.md — the scaffold every skill threads from.aidp-migrator-bootstrap — once per workstation.aidp-migrate-catalog — schemas and tables FIRST, so notebook reads have targets.aidp-bucket-mapping — only if migrating tables with s3:// external locations.aidp-build-dag — produces reports/<job>_manifest.json.aidp-check-data — verify before committing cluster time.aidp-migrate-job — the big run.aidp-fixup-cell (only if needed) for cells the auto-fix loop couldn't recover.aidp-acceptance-contract (for streaming / batch convergence pipelines).原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。