tharensol
Global Data Platform Migration
All Projects
Enterprise2024completed

Global Data Platform Migration

Zero-downtime migration of a 15TB legacy Oracle data warehouse to a modern Snowflake + dbt stack for a global insurance group, unlocking real-time reporting.

$4M
Annual Cost Saved
14h → 47min
Batch Runtime
0 seconds
Downtime

Project Overview

A global insurance group with operations in 23 countries had a 15-year-old Oracle data warehouse that was costing $4M/year in licences and taking 14 hours to run nightly batch jobs. Business teams were making decisions on 24-hour-old data. New analytics use cases were taking 6–9 months to implement.

We were brought in as the fractional CTO team to architect and execute a full migration to a modern cloud data stack — with a hard requirement of zero downtime and zero data loss.

The Challenge

A 15TB Oracle warehouse accumulated 15 years of tribal knowledge: stored procedures with undocumented business logic, reports referencing deprecated schemas, ETL jobs written in COBOL.

Key risks:

  • Silent breakage — migrated data that looked correct but contained subtle transformation errors
  • Downtime — any outage would prevent claims processing across 23 countries
  • Political resistance — 12 teams owned different sections of the warehouse, each with their own priorities and concerns

Architecture

Migration Strategy: We used a strangler fig pattern — standing up the new Snowflake stack in parallel, migrating table-by-table with automated reconciliation, and only cutting over when parity was confirmed.

Reconciliation Engine: We built a custom Python reconciliation tool that ran daily comparisons between Oracle and Snowflake outputs for every report, flagging any discrepancies above a 0.001% threshold.

dbt Transformation Layer: All 400+ Oracle stored procedures were reverse-engineered, documented, and rewritten as dbt models with unit tests. Business logic was made explicit and version-controlled for the first time.

Cutover: Each country's reporting was migrated in a 2-hour cutover window on a Sunday, with an automated rollback plan ready.

Results

  • Zero downtime across all 23 country deployments
  • Nightly batch runtime reduced from 14 hours to 47 minutes
  • Oracle licence costs eliminated: $4M/year saved
  • New analytics use cases now deliverable in days instead of months

Technologies Used

SnowflakedbtPythonAirflowTerraformLooker