Skip to main content

databricks-notebook-analyzer

Read a single Databricks notebook (.ipynb / .py / .scala source format) and produce a migration-readiness report — what it does, what it depends on, what risks the migrator will hit, which gotchas (from references/gotchas.md) will apply. Run before manually authoring an entry in a migration manifest, OR as a one-off "should we migrate this?" assessment. Read-only — does not modify the notebook and does not invoke the migrator.

Quellinformationen

Repository
oracle-samples/oracle-aidp-samples
Letzte Quellaktivität
24. Juni 2026 um 07:21
Erkannte Sprache von SKILL.md
Englisch
Sterne
47
Forks
32

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
databricks-notebook-analyzer
description
Read a single Databricks notebook (.ipynb / .py / .scala source format) and produce a migration-readiness report — what it does, what it depends on, what risks the migrator will hit, which gotchas (from references/gotchas.md) will apply. Run before manually authoring an entry in a migration manifest, OR as a one-off "should we migrate this?" assessment. Read-only — does not modify the notebook and does not invoke the migrator.
# `databricks-notebook-analyzer` — single-notebook readiness report Reads a single Databricks notebook and produces a migration-readiness report. DO NOT modify the notebook. DO NOT call the migrator. DO NOT execute the notebook. ## When to use - User points at a single Databricks notebook and asks "what does this do" or "can we migrate this". - BEFORE manually authoring an entry in a migration manifest. - BEFORE running [`aidp-migrate-job`](../aidp-migrate-job/SKILL.md) on a single notebook — sanity-check the risks first. ## Inputs the calling skill / user provides - A path to the notebook (`.ipynb`, `.py`, or `.scala` source format). - (Optional) the cluster ID it currently runs on, for context about Spark version / installed libs. ## What you produce A markdown report with these exact sections: ```markdown # Migration analysis: <notebook-name> ## What it does <1–3 sentence summary of the pipeline's purpose, inferred from cell content + comments> ## Inputs (reads) | Path / Table | Format | Detected via | |---|---|---| | <s3://... or schema.table> | parquet / delta / table | cell N: `spark.read.table(...)` | ## Outputs (writes) | Target | Mode | Detected via | |---|---|---| | <schema.table> | overwrite / append | cell N: `.saveAsTable(...)` | ## Dependencies - `%run`: <list> - `dbutils.notebook.run`: <list> - 3rd-party libs (imports): <list> ## Migration risks (Databricks-isms in this notebook) Cross-reference each finding to a gotcha number in `references/gotchas.md`. | Cell | Construct | Risk | Gotcha # | |---|---|---|---| | 5 | `from pyspark.sql.functions import *` | shadows `builtins.sum` | #3 | | 12 | `entity_decrypt(...)` | AWS Secrets Manager — no OCI equiv | #1 | | 18 | `dbutils.notebook.run("./helpers", ...)` | path with trailing `./` | #7 | ## Manual-conversion recommendations For each risk, name the cell + the specific fix: - Cell 5: change `from pyspark.sql.functions import *` to `import pyspark.sql.functions as F`. - Cell 12: replace `entity_decrypt(<arg>)` with a passthrough or a sandbox stub — migrator does this if `--catalog-manifest` includes the UDF. - ... ## Pass-2 expected behavior Rough prediction of what `aidp-migrate-job` will do: - N cells expected to pass first-try - M cells will likely need 1 retry (specific cells: ...) - K cells likely to be marked PARTIAL even after 10 attempts — these need [`aidp-fixup-cell`](../aidp-fixup-cell/SKILL.md) or manual ## Recommendation PROCEED / PROCEED WITH CAUTION (list the cautions) / REWRITE FIRST (list the prerequisites) ``` ## Method 1. **Read** the notebook source. For `.ipynb`, parse the JSON and walk `cells[].source` joined. 2. **Scan** every code cell for: - `spark.read.*` calls - `.saveAsTable(...)`, `.write.*` calls - `%run` lines - `dbutils.*` references - Imports - Magic line cells (`%scala`, `%sql`, `%sh`) 3. **Cross-reference** each finding to `references/gotchas.md`: ``` grep -n "Gotcha #" references/gotchas.md ``` Match the construct to its gotcha entry. 4. **Estimate** Pass-2 behavior by counting cells with no risk markers (likely first-try OK) vs cells with risk markers (likely needs retry). ## Boundaries - Do NOT execute the notebook. - Do NOT modify the notebook. - Do NOT propose changes to the migrator itself. - Do NOT speculate beyond what the source code shows. If a cell is unclear, mark it `UNKNOWN` rather than guessing. ## When to escalate back to the user - The notebook references a `dbutils.notebook.run` with a dynamic path (built at runtime). Mark as a blocker — the migrator's DAG builder can't resolve it. - The notebook uses a connector library that you can't find on the cluster (e.g. a Cassandra driver). The migrator will fail at the import; the user needs to install it OR rewrite to a different sink. - The notebook references a UDF defined elsewhere whose source you can't locate. Surface the UDF name + ask the user where it's defined.
Auf GitHub ansehen