Skip to content

Snowflake to Databricks adoption path

DataMuru can discover Snowflake databases and schemas in live-readonly mode and turn that inventory into a reviewable Databricks mapping draft. The draft maps Snowflake databases to Databricks catalogs and Snowflake schemas to Databricks schemas.

This workflow does not copy data, translate SQL, create Databricks objects, or change either provider.

Before you start

Use a Snowflake project configured for PAT, browser SSO, or an approved password environment variable. PAT automation uses only environment-variable references in YAML:

provider:
  cloud: snowflake
  host_env: SNOWFLAKE_HOST
  user_env: SNOWFLAKE_USERNAME
  token_env: SNOWFLAKE_TOKEN
  auth_type: programmatic_access_token
  warehouse: COMPUTE_WH
  role: SYSADMIN
  execution_mode: live-readonly

Validate the source before generating a draft:

datamuru validate --config datamuru.yml --strict
datamuru doctor --config datamuru.yml
datamuru import discover --config datamuru.yml --catalog FINANCE

Generate a bounded mapping

datamuru import map-databricks `
  --config datamuru.yml `
  --database FINANCE `
  --target-workspace databricks-dev `
  --target-cloud azure `
  --catalog-prefix sf `
  --identifier-case lower `
  --out migrations/snowflake-to-databricks/finance.mapping.yml

Repeat --database to include more than one database. Omit it only when the operator intends to review every non-system database returned by discovery.

The draft has this shape:

migration:
  source:
    provider: snowflake
  target:
    provider: databricks
    workspace: databricks-dev
    cloud: azure
  naming:
    catalog_prefix: sf
    identifier_case: lower
  mappings:
    databases:
      FINANCE:
        catalog: sf_finance
        schemas:
          RAW: raw
  review:
    status: draft

Naming safeguards

--identifier-case lower is the default. Use preserve when the review must retain source casing. Characters outside letters, numbers, and underscores are normalized to underscores.

DataMuru blocks the draft when two source names normalize to the same target. For example, FINANCE-RAW and FINANCE_RAW both normalize to finance_raw. Change the source scope, naming mode, or catalog prefix instead of accepting an automatic suffix.

Review boundary

Review:

  • database-to-catalog names;
  • schema names and collisions;
  • target workspace and cloud;
  • object ownership and Unity Catalog storage requirements;
  • data movement and validation ownership outside DataMuru;
  • role and grant redesign between Snowflake and Databricks.

The current draft does not include tables, views, functions, roles, users, grants, masking policies, row-access policies, pipelines, or data. Those capabilities remain outside this bounded mapping workflow.

For the opposite direction, see Databricks to Snowflake adoption path.