Data Engineering

Snowflake Cloud Migration

Migrating an enterprise on-prem data warehouse to Snowflake and AWS

SnowflakeAWSPythonSQL ServerCI/CD

Overview

The organization's analytics ran on legacy on-premises warehousing: SQL Server pipelines, Teradata sources, and manually managed scripts. As Lead BI Developer, I'm driving the modernization of that platform, architecting cloud-native solutions on Snowflake and AWS and establishing the migration patterns the rest of the organization follows.

The Challenge

The platform had to keep serving enterprise analytics while being rebuilt underneath. Refresh cycles were daily, transformations lived inside Tableau extracts straining production servers, critical HR data sat in Teradata, and the team managed scripts by hand with no version control, so every change was risky and slow.

The Solution

Architected hybrid pipelines in Python and SQL Server as the foundation, then built cloud-native solutions on Snowflake and AWS with repeatable migration patterns so each workload move got cheaper than the last. Re-engineered ETL/ELT workflows to cut ingestion from daily to hourly, pushed transformations out of Tableau extracts into backend stored procedures, and moved the team from manual script management onto Git with a structured CI/CD workflow.

System Architecture

01

Ingest

Python and SQL Server pipelines integrating processing across hybrid on-prem and cloud environments, including automated Teradata-to-warehouse migration of critical HR data

PythonSQL ServerTeradata
02

Transform

ETL/ELT workflows re-engineered for hourly refresh, with heavy transformations moved from Tableau extracts into backend stored procedures and temporary tables

Advanced SQLStored proceduresELT patterns
03

Serve & Deploy

Cloud-native warehousing on Snowflake and AWS serving enterprise analytics, shipped through Git-based collaborative workflows and CI/CD

SnowflakeAWSGitCI/CD

Key Features

01

Repeatable Migration Patterns

Designed scalable cloud architectures and documented migration patterns so each on-prem workload moves to Snowflake the same proven way.

02

Daily-to-Hourly Ingestion

Re-engineered ETL/ELT workflows to cut refresh latency from daily to hourly, enabling near real-time decisions for business stakeholders.

03

Transformation Pushdown

Moved heavy transformations out of Tableau extracts into backend stored procedures, significantly reducing load on production servers.

04

Team Engineering Standards

Introduced Git version control and CI/CD to a team previously managing scripts by hand, and mentored junior developers on SQL optimization and data modeling.

Results & Impact

Daily → Hourly
Refresh latency

Ingestion latency cut by re-engineering ETL/ELT workflows

2 days
Saved per cycle

Solution Delivery metrics automated with SQL, replacing manual Excel processes

Tech Stack Deep Dive

Cloud & Warehouse

SnowflakeTarget cloud data warehouse
AWSCloud infrastructure for data solutions
SQL ServerLegacy warehouse and hybrid pipelines
TeradataSource system for HR data migration

Pipeline & Tooling

PythonPipeline development and migration automation
Advanced SQLTransformations and stored procedures
Git / CI/CDVersion control and deployment workflow

Lessons Learned

Migration patterns matter more than individual migrations; the second workload should be cheaper than the first.

Moving transformations off the BI layer and into the warehouse pays for itself in server load alone.

Version control adoption is a culture change, not a tooling change; mentoring is part of the rollout.