AI Proof Pricing Book a demo Get the free SAS assessment

Targets

Warehouses

Runtimes

Beyond SAS

SAS → Databricks
SAS to Databricks, with row-level proof.

SAS → Databricks. Validated row by row.

SAS2PY converts DATA step, macros, DI Studio jobs, and SAS/STAT, and emits native PySpark notebooks, Delta tables, and Workflows, with column lineage in Unity Catalog and a parity report your auditors can keep.

Updated

4–6 weeks · about 10K lines of your SAS ·

Architecture

How does SAS become Databricks? SAS in. Databricks out.

Deterministic parsers read the SAS estate and emit native Databricks code — not SAS sitting on a cheaper cluster.

SAS programs → SAS2PY parser → PySpark + Delta + Workflows

SAS
Base SAS DATA step / macros
DI Studio Jobs + mappings
EG / EM Projects + flows
Viya / CAS CASL + actions
SAS2PY Parser
Deterministic parse AI where it helps
Row-level parity Before cutover
PySpark emit Set-based, not loops
Workflow emit Job DAGs
Databricks
PySpark notebooks Set-based, not loops
Delta Lake ACID + time travel
Workflows Replaces SAS Grid
Unity Catalog Column lineage
Repos + DABs CI/CD promote
MLflow SAS/STAT models

MigryX AI handles the logic parsers cannot resolve alone, and every change it makes goes through the same parity checks. It runs on a model you approve, air-gapped if your estate requires it.

Alongside Lakebridge

Lakebridge and SAS2PY on Databricks

Lakebridge is free and covers SQL dialects. SAS2PY covers the SAS estate.

CapabilitySAS2PY
SAS DATA step, macros, %INCLUDEYes, deterministic parser
DI Studio jobs → WorkflowsYes
SAS/STAT, IML → MLflow / PythonYes
Row-level parity + exception reportYes
Signed evidence pack, as-of lineageYes (Atlas)
Air-gapped / on-premYes

Already part-way through with Lakebridge? The certify pilot checks that output row by row instead of redoing it.

The first engagement

What does a SAS to Databricks pilot contain?

Fixed scope, fixed exit. You keep everything the pilot produces.

What we need from you

  • A representative SAS workload. The painful, well-understood one is the right choice.
  • Agreed inputs and the original outputs, or a run in your environment, so parity can actually be measured.
  • One named owner for a weekly checkpoint.

Want a smaller first step? The readiness scan inventories the estate in a week and is the smaller first step.

Why Databricks

SAS Grid was never a lakehouse

Overnight windows keep slipping

SAS Grid scales by adding more of the same. Databricks distributes the rewritten job across a cluster. The batch that finished at 6am now finishes before the trading desk opens.

Macro libraries hide the real job

A thousand %INCLUDE files is not a platform. The parser expands macros, then emits readable PySpark so a new hire can follow the match criteria.

SAS datasets are not Delta

SPD Server and .sas7bdat are not a lakehouse table. We land ACID tables with time travel so yesterday's extract is a version, not a copy job.

Parser output

DATA step merge to a PySpark join

A classic SAS match-merge — two sorted datasets, BY key, IF IN= flags. Emitted as an explicit join, not a record loop.

SAS
/* SAS: customer + transactions */
proc sort data=cust; by cust_id; run;
proc sort data=txn;  by cust_id; run;
data gold;
  merge cust (in=a) txn (in=b);
  by cust_id;
  if a and b;
  if amount > 1000 then segment = 'GOLD';
  else segment = 'STD';
run;
→
SAS2PY
converts
PySpark on Databricks
# SAS match-merge → PySpark join
from pyspark.sql import functions as F
gold = (
    cust.join(txn, "cust_id", "inner")
        .withColumn(
            "segment",
            F.when(F.col("amount") > 1000, "GOLD")
             .otherwise("STD"),
        )
)

BY-group merge becomes an inner join. The IN= flags disappear because the join type is explicit. No sort required.

Coverage

SAS to Databricks — artifact mapping

SASDatabricksNotes
DATA stepPySpark DataFrameAssignment, IF/THEN, BY-groups
PROC SQLspark.sql / DataFrameJoins, GROUP BY, CASE
Macro / %INCLUDEExpanded then emittedNo leftover macro language
DI Studio jobDatabricks WorkflowsReplaces SAS Grid
SAS dataset / SPDSDelta LakeACID + time travel
SAS/STATMLflow + Spark MLWhere a model actually ran
18
SAS engagements
16
on Spark

SAS to Databricks for seven regulated enterprises

A US federal agency, a UK public healthcare body, a US insurer, one of Canada's largest banks, FTSE 100 retail and energy companies, and a global marketing-data company. Customer names are shared under NDA in a demo, with reference calls on request.

See all engagements →
Validation

How is the conversion proven? Every conversion validated to row-level parity

SAS output compared to Databricks output — row by row, column by column. Differences flagged before sign-off, and the evidence lives on in Atlas after the migration ends. Atlas attaches to a conversion license or runs standalone.

See how Data Matching works →  ·  What Atlas is →
Before you ask

Pilot questions

How long is the first engagement?

A SAS to Databricks pilot runs 4–6 weeks on about 10K lines of production SAS, validated row by row. A one-week readiness scan is the smaller first step.

We already use Lakebridge. What does SAS2PY add?

Lakebridge is a free Databricks Labs toolkit for assessment, SQL conversion, and reconciliation, and you can keep using it for that. SAS2PY converts SAS DATA step, macros, DI Studio jobs, and SAS/STAT, and produces row-level parity with a signed evidence pack. If Lakebridge has already converted a workload, the certify pilot validates that output rather than repeating the work.

What do we have to provide for the pilot to work?

A representative SAS workload, agreed inputs with the original outputs (or a run in your environment so we can compare), and one named owner for weekly checkpoints. No code upload is needed to start — the intake form only asks what you are modernizing and when your SAS renews.

Three ways to start

Pick the one that matches where you are.

Every route below ends with a person who has done this before, not a sales sequence.

Not ready to name a workload? The free sample assessment converts a representative piece of SAS at no cost — request one here.