← All Modernizations
Snowflake Technology Partner
❄️ Snowflake Modernization Platform

Modernize SAS
to Snowflake.

SAS2PY converts SAS and SQL dialects directly to Snowflake — Snowpark, Dynamic Tables, Streams & Tasks, Snowflake Cortex AI, and Virtual Warehouses — with +95% parsing accuracy and column-level lineage.

10+
Legacy Sources
All modernized to Snowflake
+95%
Parser Accuracy
Up to 99% with optional AI augmentation
85%
Faster Modernization
vs. manual rewrite
Col.
Level Lineage
Full STTM to Snowflake catalog

Snowflake Targets

What SAS2PY produces on Snowflake

Every modernization generates production-ready Snowflake artifacts — leveraging Snowpark, Dynamic Tables, Streams & Tasks, Zero-Copy Cloning, Snowflake Cortex, and the Snowflake Data Cloud.

❄️

Snowpark Python

Legacy ETL logic converted to Snowpark Python DataFrames — pushdown computation runs natively inside the Snowflake Virtual Warehouse, no data movement required.

🔄

Dynamic Tables

Incremental transformation pipelines rewritten as Snowflake Dynamic Tables — declarative SQL with automatic refresh, lag targets, and full lineage tracking built in.

📡

Streams & Tasks

CDC patterns and scheduled ETL converted to Snowflake Streams (change capture on tables/views/stages) and Tasks (DAG-based orchestration with serverless compute).

🧊

Snowpipe & Auto-Ingest

Batch and near-real-time data ingestion replatformed to Snowpipe with auto-ingest from S3/Azure/GCS — replacing legacy file-based ETL landing patterns.

🤖

Snowflake Cortex AI

SAS analytical and scoring models converted to Snowflake Cortex — LLM functions (COMPLETE, SUMMARIZE, CLASSIFY), ML classification, regression, and anomaly detection inside Snowflake.

Virtual Warehouses

Workload-specific Virtual Warehouse sizing recommendations generated per pipeline — separating ETL, reporting, and ad hoc query workloads with auto-suspend/resume.

🪄

Zero-Copy Cloning

Legacy environment promotion patterns (dev → test → prod) replaced with Snowflake Zero-Copy Cloning — instant schema and table clones with no storage duplication.

🏔️

Iceberg Tables

Legacy data lake tables modernized to Snowflake-managed Apache Iceberg Tables — open format storage with Snowflake query performance and governance, on your own cloud storage.

Modernization Sources

Every legacy source — modernized to Snowflake.

Purpose-built parsers for each source platform. Not generic scanners. Every conversion produces explainable, auditable, Snowflake-native code — Snowpark, Dynamic Tables, or Snowflake SQL.

SAS

SAS to Snowflake

Base · Macros · PROC SQL · SAS/IML

Automate SAS Base, Macro, PROC SQL, and IML conversion to Snowpark Python and Snowflake SQL. DATA step logic, FORMAT/INFORMAT handling, PROC SORT/MEANS/FREQ, and PROC MODEL translated to Cortex ML.

Snowpark Snowflake SQL Cortex ML Dynamic Tables
ORA

Oracle PL/SQL to Snowflake

Procedures · Packages · Triggers

Modernize Oracle PL/SQL procedures, packages, and triggers with 2000+ function mappings, CONNECT BY → recursive CTE rewriting, BULK COLLECT → Snowpark batching, and full package dependency resolution.

Snowflake SQL Snowpark UDFs Stored Procs
SQL

SQL Dialects to Snowflake

15+ Dialects · 500+ Function Maps

Transpile SQL from Oracle, T-SQL, Teradata, DB2, Netezza, Greenplum, Hive HQL, and Vertica to Snowflake SQL — 500+ function mappings, window function normalization, and semi-structured VARIANT support.

Snowflake SQL Dynamic Tables VARIANT/JSON
DFX

SAS DataFlux to Snowflake

dfPower Studio · DMS · DQ Schemes

Modernize SAS DataFlux dfPower Studio jobs and DQ schemes — standardize/parse/match/validate patterns — to Snowpark Python UDFs and Snowflake data quality constraints with Cortex anomaly detection.

Snowpark Cortex Data Quality
🔍

Compass

Discovery · Lineage · Snowflake Catalog

Before you modernize, map your estate. Compass extracts column-level lineage, STTM, and dependency graphs from any source — and publishes them directly into the Snowflake object catalog for governance.

Snowflake Catalog STTM Lineage Graphs

How It Works

From legacy codebase to Snowflake in five steps

The same proven methodology applies to every source — SAS — all landing natively on Snowflake.

1

Ingest

Upload source artifacts — SAS scripts — into SAS2PY for parsing.

2

Parse & Analyze

Custom parsers build complete ASTs, expand macros, resolve dependencies, and produce column-level lineage — with Snowflake-readiness scoring.

3

Convert

Parser-driven conversion to Snowpark Python, Dynamic Tables, Snowflake SQL, Tasks DAGs, or Snowpipe — with auto documentation and Snowflake best-practice patterns.

4

Validate

Row-level and aggregate data matching between legacy and Snowflake outputs — using Snowflake-native comparison queries for audit-ready sign-off.

5

Govern

Publish lineage, STTM, and data contracts to the Snowflake object catalog. Merlin AI surfaces risk and recommends clustering, materialization, and Virtual Warehouse sizing.

Platform Capabilities

Built for Snowflake's Data Cloud Architecture

Every SAS2PY modernization leverages the full Snowflake platform — Snowpark compute, Dynamic Tables, Streams & Tasks, Zero-Copy Cloning, Time Travel, and Cortex AI.

⚙️

Custom-Built Parsers

Purpose-built for each source language. SAS macro expansion — full fidelity, deterministic output, no approximation.

❄️

Snowpark-Native Output

Legacy ETL logic converted to Snowpark Python DataFrames — pushdown execution inside Virtual Warehouses with no external compute required. UDFs, UDTFs, and Stored Procedures generated automatically.

🔄

Dynamic Tables & Streams

Scheduled ETL converted to Snowflake Dynamic Tables (declarative, lag-based refresh) and Streams + Tasks DAGs (event-driven CDC) — replacing legacy job schedulers with Snowflake-native orchestration.

📐

Column-Level Lineage & Catalog

Source-to-target column mappings and STTM tables published to the Snowflake object catalog — TAG-based governance, data classification, and lineage API integration for compliance.

🤖

Merlin AI & Cortex

AI analyzes parsed metadata to recommend clustering keys, materialization strategies, and Virtual Warehouse sizing. SAS analytical models land in Snowflake Cortex ML with automatic feature engineering.

🔒

On-Premise & Air-Gapped

Full deployment behind your firewall. Source code and lineage never leave your network. Zero-Copy Clone promotion patterns for dev → test → prod. SOX, GDPR, BCBS 239 ready.

Deep Platform Integration

Native to the Snowflake Data Cloud — not bolted on

SAS2PY isn't a generic modernization tool retrofitted for Snowflake. Every output is built for Snowflake-native execution — Snowpark pushdown, Dynamic Tables, Cortex AI, and governed by Snowflake's object catalog.

❄️

Snowpark Pushdown Compute

Generated Python leverages Snowpark DataFrame API for full pushdown execution — all computation runs inside the Virtual Warehouse, no data movement or external compute clusters required.

Snowpark
🔄

Dynamic Tables

Incremental ETL pipelines converted to declarative Dynamic Tables with target lag, automatic refresh scheduling, and built-in lineage — replacing legacy batch scheduling entirely.

Dynamic Tables
📡

Streams & Tasks Orchestration

CDC patterns and job scheduling converted to Snowflake Streams (change capture) and Tasks (DAG-based orchestration) — serverless compute, retry logic, and cron/event-driven triggers.

Streams & Tasks
🧠

Snowflake Cortex AI

SAS analytical models (PROC LOGISTIC, PROC GLM, PROC MIXED) converted to Snowflake Cortex — ML classification, regression, anomaly detection, and LLM functions (COMPLETE, SUMMARIZE) running natively.

Cortex AI
🧊

Snowpipe & Auto-Ingest

Batch and near-real-time ingestion replatformed to Snowpipe with auto-ingest from S3, Azure Blob, and GCS — replacing legacy file-based ETL landing patterns with continuous streaming.

Snowpipe
🔐

Object Catalog Governance

Column-level lineage, STTM mappings, data classification TAGs, row access policies, and masking policies published directly to Snowflake's object catalog — full governance from day one.

Catalog & TAGs
🪄

Zero-Copy Cloning

Legacy environment promotion patterns (dev → test → prod) replaced with Zero-Copy Cloning — instant schema and table clones with no storage duplication for CI/CD and testing workflows.

Zero-Copy Clone
🤝

Data Sharing & Marketplace

Cross-organization data exchange patterns preserved during modernization — legacy file-based sharing converted to Snowflake Secure Data Sharing, listings, and Marketplace distributions.

Data Sharing
🏔️

Iceberg Tables

Legacy data lake tables modernized to Snowflake-managed Apache Iceberg Tables — open format storage with full Snowflake query performance, governance, and catalog integration on your own cloud storage.

Iceberg

Modernization Architecture

End-to-end flow — from legacy to Snowflake Data Cloud

Every SAS2PY modernization follows a deterministic pipeline that lands production-ready artifacts directly on Snowflake — governed, validated, and deployment-ready.

Legacy Sources

Ingest

SAS
SAS2PY Engine

Parse & Convert

Custom AST Parsers
Macro Expansion
Column-Level Lineage
Merlin AI Analysis
Snowflake Output

Data Cloud Artifacts

Snowpark Python
Dynamic Tables · Tasks
Snowflake SQL · Cortex
Snowpipe · Iceberg
Deployment

CI/CD & Cloning

Git Integration
Zero-Copy Clone
Dev → Staging → Prod
Terraform / Schemachange
Governance

Object Catalog

STTM Registration
Data Classification TAGs
Row/Column Security
Data Sharing Policies

Measurable Results

Quantifiable Value — On Snowflake

Organizations using SAS2PY to land on Snowflake accelerate delivery, eliminate manual rewrite cost, and unlock Snowflake-native performance from day one.

85%
Faster Delivery

Automated lineage extraction and parser-driven analysis eliminate months of manual discovery and rewrite.

70%
Risk Reduction

Complete dependency visibility prevents production incidents and modernization-related data defects.

60%
Lower Costs

Automated conversion, accelerated time-to-value, and eliminated rework deliver 60%+ cost savings.

+95%
Parser Accuracy

Deterministic custom parsers deliver +95% accuracy out of the box. Optional AI augmentation pushes accuracy up to 99%.

Why SAS2PY

Custom parsers vs. generic Snowflake modernization tooling

Generic ETL scanners approximate lineage. SAS2PY parses it exactly — every macro, every column, every dialect — then lands it natively on Snowflake.

Capability SAS2PY Generic Tools
Custom parser per source (SAS, etc.)
100% column-level lineage to Snowflake catalog~
Native Snowpark Python output generation
Snowflake Dynamic Tables & Streams/Tasks generation
SAS macro expansion & full dialect support
Snowflake Cortex AI integration for analytical models
On-premise / air-gapped deployment
Row-level data validation & parity proof
STTM export & Snowflake object catalog registration~
Virtual Warehouse sizing recommendations per workload
Zero-Copy Clone promotion patterns (dev→test→prod)
Multi-target output (Snowflake + Databricks + BigQuery)
Deterministic AST-based parsing (not regex or AI-only)
Parser-driven risk analysis & Snowflake optimization

✓ Full support   ~ Partial / approximate   ✗ Not supported

Frequently Asked Questions

Snowflake Modernization FAQ

Common questions from teams evaluating SAS2PY for Snowflake modernization programs.

Does SAS2PY generate Snowflake-native output or generic Python?

Snowflake-native. SAS2PY generates Snowpark Python with full pushdown execution inside Virtual Warehouses, Dynamic Tables with declarative refresh, Streams & Tasks DAGs, and Snowflake SQL — not generic Python or Spark code adapted for Snowflake.

How does SAS2PY handle Dynamic Tables vs Streams & Tasks?

SAS2PY analyzes the source pipeline pattern and recommends the optimal target: Dynamic Tables for declarative incremental refresh with target lag, Streams & Tasks for event-driven CDC with complex DAG dependencies. Both are generated automatically — the choice is based on parsed source semantics.

Does SAS2PY register lineage in the Snowflake object catalog?

Yes. SAS2PY produces column-level STTM (Source-to-Target Mapping) tables and publishes them to the Snowflake object catalog with data classification TAGs, row access policies, and masking policies — providing full governance from day one of the modernization.

Can SAS2PY convert SAS analytical models to Snowflake Cortex?

Yes. SAS PROC LOGISTIC, PROC GLM, PROC MIXED, and PROC MODEL are converted to Snowflake Cortex ML functions — classification, regression, anomaly detection, and forecasting — running natively inside Snowflake with no external compute required.

How are legacy ETL schedules modernized to Snowflake?

Legacy job schedulers (Control-M, Autosys, SAS batch flows) are converted to Snowflake Tasks with DAG dependencies, serverless compute, retry logic, and cron-based scheduling — or to Dynamic Tables with automatic refresh targets.

Does SAS2PY support Snowpark UDFs, UDTFs, and Stored Procedures?

Yes. Complex legacy logic that cannot be expressed as pure SQL is converted to Snowpark Python UDFs, UDTFs (for table-returning functions), and Stored Procedures — all executing natively inside the Virtual Warehouse with full pushdown.

Can SAS2PY deploy behind a firewall / air-gapped environment?

Yes. SAS2PY supports full on-premise and air-gapped deployment. Source code, lineage data, and metadata never leave your network. Zero-Copy Cloning is used for environment promotion (dev → test → prod) without data duplication.

What does the data validation process look like?

SAS2PY generates row-level and aggregate-level data comparison queries that run natively in Snowflake — comparing legacy output against Snowflake-produced output. Validation includes row counts, column checksums, business rule assertions, and statistical parity proofs for audit-ready sign-off.

Ready to modernize to Snowflake?

As a Snowflake Technology Partner, we'll run a technical deep-dive on your SAS estate. We'll show you parsed lineage, Snowpark output, and catalog registration from code.