Skip to main content

Which Tool Should I Use?

Lakebridge provides multiple tools for assessment and transpilation. Use this guide to choose the right one for your migration.


Assessment: Profiler vs Analyzer

ProfilerAnalyzer
PurposeUnderstand data volumes, query complexity, and workload patternsAnalyze SQL code complexity and compatibility
InputLive database connectionsSQL code files (local filesystem)
OutputInteractive dashboard with usage metricsPer-object complexity report (LOW / MEDIUM / HIGH / VERY HIGH)
When to useEarly-stage scoping, executive reporting, sizing estimatesPre-migration planning, review current state of source code and its compatibility
Requires DB connectionYesNo

Quick decision:

  • If you need to scope the migration and communicate to stakeholders, use the Profiler.
  • If you have SQL files and want to know how hard each one will be to transpile, use the Analyzer.
  • Run both when you have access to the database — Profiler for sizing, Analyzer for developer planning.

Transpiler: BladeBridge vs Morpheus vs Switch

MorpheusBladeBridgeSwitch (Experimental)
ApproachAST-based (ANTLR grammar → IR tree → code gen)Config/pattern-based converterLLM-powered
Best forSQL migration where correctness guarantees and reproducibility matterETL platforms + broader SQL dialect coverageComplex logic, unsupported constructs, or any format via custom prompts
Source dialectsMSSql (SQL Server, Azure SQL, RDS for SQL Server), Snowflake (including dbt repointing), Synapse (Azure Synapse Analytics dedicated SQL pools)DataStage, SSIS, Oracle, Teradata, Netezza, Synapse, Redshift, and moreAny SQL dialect or programming language. Either via built-in (MSSQL, MySQL, Netezza, Oracle, PostgreSQL, Redshift, Snowflake, Teradata, Airflow, Python, Scala) or custom YAML prompts
Output formatsDatabricks SQL onlyDatabricks SQL, SparkSQL, PySpark, notebooks, workflow definitionsPython/SQL notebooks; any text-based format
AccuracyStrong guarantee: errors or warns rather than silently producing wrong outputDeterministic and repeatable; extensible via configSemantic/intent-aware; handles edge cases deterministic transpilers miss
SpeedFast — local execution, no API callsFast — local execution, no API callsSlower — requires LLM API calls per file
CostFreeFreeToken costs apply (Databricks Foundation Model API)
ScalabilityThousands of files locallyThousands of files locallyRate-limited by model serving; scales via Lakeflow Jobs
ConfigurationSimple: source-dialect flag + I/O pathsSimple: source-dialect flag + I/O paths + Optional JSON Config override filesYAML prompt files; configurable model endpoint
ExtensibilityNot extensible (fixed grammar)Fully extensible via JSON configFully extensible via custom YAML prompts

When to choose Morpheus

Use Morpheus when:

  • You are migrating SQL code from SQL Server, Snowflake, or Azure Synapse Analytics
  • You need correctness guarantees — you want to know immediately when a construct cannot be translated, rather than getting silently wrong output
  • You do not need ETL platform support

When to choose BladeBridge

Use BladeBridge when:

  • You are migrating ETL workloads (DataStage, SSIS, others)
  • You need broad SQL dialect coverage (Oracle, Teradata, Netezza, Redshift) with customizable configurations

When to choose Switch

Use Switch when:

  • You have stored procedures with complex business logic that rely heavily on context and intent
  • Your source dialect is not covered by Morpheus or BladeBridge (Switch supports any format via custom YAML prompts)
  • You want Python notebook output for logic that is difficult to express in pure SQL
  • You want to convert non-SQL sources (Python scripts, Airflow DAGs, etc.)
note

Switch is currently Experimental. Generated notebooks may require manual adjustments.


Still not sure?

Start with Morpheus if your source is SQL Server, Snowflake, or Synapse. Its correctness guarantee makes it the lowest-risk choice when it supports your dialect.

For everything else, check the supported dialects table and pick the transpiler that covers your source.