synapse-migration

Migrates Azure Synapse Analytics Spark workloads to Microsoft Fabric via REST APIs.

Updated Jul 14, 2026
One-click install
npx skills add https://github.com/9vantage/skills-for-fabric-clone --skill synapse-migration-9vantage
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: synapse-migration
Source: https://github.com/9vantage/skills-for-fabric-clone/tree/main/plugins/fabric-skills/skills/synapse-migration
Command: npx skills add https://github.com/9vantage/skills-for-fabric-clone --skill synapse-migration-9vantage

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Moving Spark workloads from Azure Synapse Analytics to Microsoft Fabric requires translating mssparkutils calls, replacing Linked Services, recreating Lake Databases as Lakehouses, and reconfiguring Spark Pools — a manual process prone to missed references and broken notebooks. ## Core Features & Use Cases - API-Driven Migration Phases: Orchestrates Spark Pool → Environment, Lake Database → Lakehouse, and Notebook/SJD migration through Synapse and Fabric REST APIs in the correct dependency order. - Code Refactoring Guidance: Provides before/after patterns for mssparkutils → notebookutils, Linked Services → Data Connections and OneLake Shortcuts, Kusto/Cosmos DB connectors, and spark.catalog API gaps. - Validation and Troubleshooting: Includes row-count validation checks, a feature parity matrix, capacity sizing tables, and a gotcha catalog covering blockers like GPU pools and .NET for Spark. - Use Case: A data engineer needs to port a Synapse workspace with 40 notebooks and three Lake Databases to Fabric. The skill inventories the source via REST APIs, creates Lakehouses with shortcuts to existing ADLS data, rewrites notebook utility calls, and produces a migration report with validation results. ## Quick Start Ask the assistant to migrate your Synapse Spark workspace to Microsoft Fabric, providing the Synapse workspace name and target Fabric workspace.

Frequently Asked Questions about synapse-migration

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I migrate Synapse Spark notebooks to Microsoft Fabric?

Migrate notebooks by replacing mssparkutils imports with notebookutils, updating env calls to notebookutils.runtime.context, and rebinding to a Fabric Lakehouse. The migration runs in phases: Environments first, then Lakehouses, then notebooks and Spark Job Definitions.

What replaces Synapse Linked Services in Microsoft Fabric?

Linked Services are replaced by Fabric Data Connections for external databases and OneLake Shortcuts for ADLS Gen2 or Blob storage mounts. Key Vault linked services are replaced by direct notebookutils.credentials.getSecret calls using the full vault URL.

Does Microsoft Fabric support mssparkutils?

Fabric uses notebookutils, which shares most of the mssparkutils API surface — the namespace is the primary change. The main exception is mssparkutils.env, which becomes notebookutils.runtime.context with dictionary-style access.

Can I migrate an external Hive Metastore from Synapse to Fabric?

Fabric cannot connect to an external Hive Metastore, so metadata must be extracted via JDBC queries against the HMS database and recreated in the Lakehouse catalog. Tables are migrated as OneLake shortcuts, with Delta tables auto-registering and other formats requiring manual CREATE TABLE statements.

What Synapse features have no Fabric equivalent?

GPU-accelerated Spark pools, .NET for Spark (C#/F# job definitions), result set caching, and workload management classifiers are not available in Fabric. The spark.read.synapsesql() connector must be replaced with Delta reads or JDBC against the Warehouse endpoint.

Why does shortcut creation fail during Lake Database migration?

Shortcut creation fails with 403 errors when the connection identity lacks Storage Blob Data Reader on the ADLS account, or with 400 Stored Credential errors when the connection credential expired. A missing connectionId in the request payload also causes a 400 error.