Skip to content
sayak.webdesignerWeb · Software · Data · AI
Data & AI · Data & AI

Migration with proof, not hope

Every migration proposal promises zero downtime. What separates them is whether anyone can demonstrate, row by row, that the target matches the source before the old system is switched off.

data migration services indiaredshift to snowflake migration partnerdata warehouse migration company kolkataoracle to postgresql migration india
LEGACYRedshift dc23,100 tables84 stored procsNightly-only₹ fixed nodesDUAL-RUN BRIDGE (6–10 weeks)Schema translatorCDC replicationRow-count reconcilerQuery shadowingTARGETSnowflake / BigQueryIceberg external tablesdbt models + testsNear-real-timePer-second billing0 min downtime100% row parity41% cost cut
0 min
Downtime on our last 14 migrations
100%
Row parity verified before cutover
−41%
Median platform cost after
6–14 wks
Typical dual-run duration
The short version

Migrations fail in predictable ways. Scope is estimated from a table count rather than from the logic embedded in stored procedures. Business logic that lived in the old platform is discovered halfway through. Nobody validates row-level equivalence, so a subtle difference in null handling or date truncation goes unnoticed until a quarterly report disagrees with last year. And the cutover is a weekend event with no rehearsal and no rollback plan.

We approach migration as a verification exercise that happens to involve moving data. The moving part is largely mechanical; the value is in proving equivalence and in handling the hundreds of small semantic differences between platforms that determine whether the numbers still match.

We migrate warehouses — Redshift or on-premise Teradata to Snowflake, BigQuery or Databricks — as well as transactional databases, Oracle to PostgreSQL, on-premise to cloud, and lake reorganisations from raw file dumps to governed Iceberg or Delta tables.

The commercial driver is usually cost or capability. Legacy warehouses with fixed node pricing cost the same at 3 AM as at 3 PM; modern platforms charge for what you use, and the median reduction we see is around 41% once queries have been tuned for the new engine. But the capability gain is often larger: semi-structured data handled natively, elastic concurrency during month-end, and data sharing without building an export pipeline.

Discovery: finding the logic nobody documented

The first phase is inventory, and it goes deeper than counting tables. We catalogue every object, but more importantly we profile actual usage: which tables are queried, by whom, how often, and which have not been touched in a year. In a typical estate, thirty to forty per cent of objects are dead — migrating them is pure cost, and identifying them early is one of the largest savings in the project.

Then we find the logic. Stored procedures, views, materialised views, scheduled jobs, external ETL, and — invariably — some transformation that happens in a spreadsheet after the report is exported. Each carries semantics that must be reproduced, and each may be subtly wrong today in ways that need a decision rather than a translation.

We also profile the data itself: row counts, cardinality, null rates, date ranges, distribution of key columns. This becomes the baseline for validation and frequently surfaces quality problems the organisation did not know it had.

LEGACYRedshift dc23,100 tables84 stored procsNightly-only₹ fixed nodesDUAL-RUN BRIDGE (6–10 weeks)Schema translatorCDC replicationRow-count reconcilerQuery shadowingTARGETSnowflake / BigQueryIceberg external tablesdbt models + testsNear-real-timePer-second billing0 min downtime100% row parity41% cost cut
Legacy, dual-run bridge, target — with reconciliation running continuously rather than as a one-off check at the end.

The semantic differences that break migrations

Platforms differ in ways that look trivial and are not. Date and timestamp handling — time zones, truncation behaviour, what happens at daylight boundaries in source data collected internationally. Numeric precision and rounding, which changes financial totals in the third decimal and therefore in the annual figure. Null handling in aggregates and joins. String collation and case sensitivity, which changes join results. Empty string versus null, which Oracle famously conflates and PostgreSQL does not.

Each of these produces a small, plausible, wrong number. We handle them by cataloguing the differences relevant to your source and target pair up front, writing explicit translation rules, and then testing against real data rather than assuming.

This is also where we find that the old platform was wrong. On a recent Redshift-to-Snowflake project, a revenue figure differed by 0.3% and investigation showed the legacy query had been double-counting a category of returns since 2019. The migration did not create that problem; it exposed it. Handling that discovery well — surfacing it, letting the business decide, documenting the change — is part of the job.

In practice

Documented catalogue of semantic differences between the specific source and target.
Explicit translation rules for dates, numerics, nulls, collation and empty strings.
Differences surfaced to the business rather than silently reconciled by engineers.
Every rule tested against production-volume real data, not samples.

Every engagement starts with a conversation, not a proposal template.

Thirty minutes with a senior engineer. You leave with an architecture sketch and an honest cost range, whether or not you hire us.

Book that call

Dual running: the only credible way to prove equivalence

Both systems run in parallel for six to fourteen weeks. Data flows into both. Queries run against both. And an automated reconciliation compares outputs continuously — row counts by partition, control totals on financial measures, and full row-level comparison on critical tables.

Reconciliation results are published to a dashboard the business can see, so trust is built by evidence rather than assertion. A difference is investigated and either fixed or explicitly accepted with a documented reason. Cutover happens only when reconciliation has been clean for a defined period, typically three consecutive full reporting cycles.

We also shadow queries where possible: production queries are replayed against the target and results compared automatically. This catches the long tail of report-specific differences that table-level reconciliation misses, and it is what allows us to say with confidence that switching the BI tool over will not change any number on any dashboard.

Cutover criteria, agreed in writing

Before the project starts we agree exactly what must be true to cut over: row parity thresholds, control totals matching to a defined tolerance, query shadowing pass rate, performance benchmarks and a tested rollback. Cutover is then a decision against criteria rather than a judgement call under pressure.

Keeping the target in sync while you migrate

During dual running, both systems must stay current. For warehouses this usually means running ingestion into both targets from the same source pipelines, which is straightforward if your pipelines are well-built and painful if they are not — a common reason migration projects also become pipeline modernisation projects.

For transactional database migrations we use change data capture: an initial bulk load followed by continuous replication of changes, so the target is never more than seconds behind. Cutover then becomes a matter of stopping writes to the source for a brief window, letting replication drain, verifying, and pointing the application at the target. On our last fourteen migrations that window has been under four minutes, which for most businesses is indistinguishable from zero.

Migration typeSync methodTypical cutover window
Redshift → SnowflakeDual ingestion from source pipelinesMinutes — repoint BI tools
On-prem Oracle → PostgreSQLBulk load + logical CDC replicationUnder 5 minutes
SQL Server → Cloud managedBackup restore + transaction log shipping5–15 minutes
File dumps → Iceberg lakehouseBackfill + parallel new-data writesNo cutover — additive
MongoDB → PostgreSQLBulk transform + change stream tail10–20 minutes

Tuning for the new platform

A straight lift-and-shift almost always performs worse and costs more than it should, because query patterns that suited the old engine are wrong for the new one. Distribution keys that made sense on Redshift are irrelevant on Snowflake, where clustering keys and micro-partition pruning govern performance. Oracle hints do not translate to PostgreSQL. Spark jobs written for one file layout perform badly on another.

So tuning is part of the project, not a follow-up. We benchmark the heaviest queries before and after, restructure the physical layout for the target engine, right-size compute with aggressive auto-suspend, and materialise the aggregations that get computed repeatedly. The cost reduction we quote comes from this work as much as from the pricing model.

The reconciliation dashboard was what sold it internally. Our finance team could watch the two systems agree, every day, for two months. Nobody had to take anything on faith.
Deepak AgarwalGroup CIO, diversified manufacturing group

Rollback, and what happens if it goes wrong

Every migration we run has a tested rollback. For warehouse migrations that means the legacy platform stays running and current for a defined period after cutover — usually thirty days — so reverting is a matter of repointing BI tools. For database migrations, replication is reversed so changes made on the new system flow back, which keeps rollback viable for the first days rather than only the first hours.

We rehearse cutover at least twice against production-scale data before the real one. The rehearsal produces a timed runbook, and it invariably finds two or three things that would have gone wrong — which is exactly why it is worth doing.

Every engagement starts with a conversation, not a proposal template.

Thirty minutes with a senior engineer. You leave with an architecture sketch and an honest cost range, whether or not you hire us.

Book that call
Capabilities

What is actually included in data & warehouse migration

Each of these is something we have shipped and still support in production — not a list of things we could do if asked.

01

Warehouse migration

Redshift, Teradata, Netezza, SQL Server DW to Snowflake, BigQuery, Databricks or Redshift Serverless.

02

Database migration

Oracle to PostgreSQL, SQL Server to managed cloud, MySQL upgrades, MongoDB to relational.

03

Lake reorganisation

Raw file estates restructured into governed Iceberg or Delta tables with catalogue and lineage.

04

On-premise to cloud

Full estate lift with network, security and identity handled alongside the data.

05

Logic translation

Stored procedures, views and jobs translated and verified against real outputs.

06

Reconciliation framework

Continuous row, total and query-level comparison with a dashboard the business can watch.

07

Performance tuning

Physical layout, clustering, compute sizing and materialisation for the target engine.

08

Cutover management

Rehearsed runbook, agreed criteria, tested rollback and post-cutover hypercare.

Technology

The stack we actually use for this

Chosen for what your team can maintain in three years, not for what looks impressive in a proposal.

Sources

  • Redshift
  • Teradata
  • Oracle
  • SQL Server
  • MySQL
  • MongoDB

Targets

  • Snowflake
  • BigQuery
  • Databricks
  • PostgreSQL
  • Iceberg
  • Delta Lake

Replication

  • Debezium
  • AWS DMS
  • GoldenGate
  • Snowpipe
  • Custom CDC

Verification

  • dbt tests
  • Great Expectations
  • Custom reconciliation framework
How it runs

From first conversation to something in production

Two-week slices, a demo you can share every alternate Friday, and no phase where you are waiting without seeing progress.

011

Inventory and profiling

Every object catalogued, usage profiled, dead objects identified, data baselined.

022

Logic extraction

Procedures, views, jobs and spreadsheet steps documented with their semantics.

033

Translation and build

Schema, logic and pipelines built on the target with explicit difference rules.

044

Dual run

Both systems live, reconciliation continuous, differences investigated and resolved.

055

Tuning and rehearsal

Performance work on the target, plus at least two full cutover rehearsals.

066

Cutover and hypercare

Go-live against agreed criteria, legacy retained for rollback, thirty days hypercare.

What you receive

Everything hands over. No lock-in, ever.

Source code in your Git organisation, infrastructure in your cloud account, domains in your name and documentation written for the next team rather than for us. If you part ways with us in year three, a competent engineer should be able to take over in a fortnight.

Deliverables checklist

  • Object inventory with usage and dead-object analysis
  • Documented semantic difference catalogue
  • Translated schema, logic and pipelines
  • Reconciliation framework and live dashboard
  • Query shadowing results
  • Performance benchmark before and after
  • Timed cutover runbook with tested rollback
  • Post-migration cost and performance report
Indicative investment

What this typically costs

Real ranges from real projects. The variable is almost always scope and integration count — the calculator will get you closer in two minutes.

Migration assessment

₹2,80,000

Know the real scope before committing.

  • Full object inventory
  • Usage profiling
  • Semantic difference analysis
  • Effort and cost estimate
  • Target platform recommendation
Get a fixed quote
Most chosen

Warehouse migration

₹14,00,000 – ₹55,00,000

Complete migration with dual run and verification.

  • Schema and logic translation
  • Pipeline rebuild
  • Reconciliation framework
  • Dual run and tuning
  • Cutover and hypercare
Get a fixed quote

Database migration

₹8,00,000 – ₹30,00,000

Transactional database with CDC and near-zero downtime.

  • Bulk load and CDC
  • Application compatibility work
  • Rehearsed cutover
  • Reverse replication rollback
  • Hypercare
Get a fixed quote

All figures exclude GST. Fixed-price options available on defined scope. Build your own estimate →

Straight answers

The questions clients actually ask

Including the ones where the honest answer is that you may not need us. If your question is not here, call +91 70033 91355 — you will speak to an engineer, not a call handler.

For a mid-sized estate — a few thousand tables, a few hundred pipelines, a hundred or so reports — expect four to seven months end to end, of which six to fourteen weeks is dual running. The build is rarely the long pole; verification and the business's confidence-building are. Anyone quoting six weeks for a full warehouse migration is either working with a very small estate or planning to skip verification.

They should not, and query shadowing is how we prove it: production queries replayed against both systems with results compared automatically. Where a difference appears, it is almost always a semantic difference we then translate explicitly, or an error in the legacy system that we surface for the business to decide on. Any accepted change is documented and communicated before cutover rather than discovered afterwards.

Usually yes, and it is often better. Subject area by subject area, with both platforms serving different domains during the transition and a federation layer if a report needs to span both. It takes longer and reduces risk considerably. The main constraint is reports that join across domains — those either wait for both sides to move or use a temporary federated view.

It happens on roughly half of our migrations, and the way it is handled matters. We surface it with evidence, quantify the impact, and let the business decide whether to correct going forward, restate history, or accept the legacy behaviour deliberately. What we will not do is quietly reproduce a known error to make reconciliation look clean, or fix it silently and let someone discover the change in a board meeting.

Across our completed migrations the median platform cost reduction is 41%, but the range is wide and depends on how badly the legacy platform was sized and how much tuning the target receives. We build a cost model during assessment with your actual query patterns and volumes, and we present the pessimistic case as well as the optimistic one. Cost is also not always the main driver — elastic concurrency during month-end and native semi-structured handling are frequently worth more than the saving.

Yes. Repointing Power BI, Tableau, Looker or Metabase, adjusting any platform-specific SQL in reports, retesting dashboards, and managing the user communication. This is a routinely underestimated part of the work — a warehouse migrated perfectly still fails the users if forty dashboards break on cutover day.

Kolkata & West Bengal

Why being local to you matters here

Several large groups headquartered in Kolkata run legacy warehouses purchased a decade ago on fixed-capacity licensing, paying for peak capacity around the clock. Migration is usually justified on cost alone, and the capability gain is treated as a bonus. Being local means our engineers can sit with your finance and MIS teams through the dual-run period, which is when confidence is actually built.

For data warehouse and database migration services in Kolkata and across India, call +91 70033 91355 or WhatsApp us. The assessment gives you a real scope and a real number.

KolkataSalt Lake Sector VHowrahNew TownDurgapurAsansolSiliguriHaldia
SEALDAH · KOLKATA · WEST BENGAL
Next step

Tell us what is slowing your business down.

A 30-minute call with a senior engineer — not a salesperson. You leave with an architecture sketch and an honest cost range, whether or not you hire us.

Direct line

+91 70033 91355

Mon–Sat · 9:30 AM – 7:30 PM IST · Sealdah, Kolkata

Reply within one working hour NDA signed before any brief Fixed-price option on every scope
Verify us independently

Don’t take our word for it — ask an AI

Every page on this site is written to be read and quoted by AI answer engines, and we publish llms.txt and llms-full.txt so they can read us properly. One click opens the assistant with the question already typed.

The question we will ask for you

Tell me about the Data Migration service from Sayak Web Designer (sayakwebdesigner.in), an IT company in Kolkata, India — what is included, how it works, and what it costs.

Opens in a new tab. We do not see your conversation.

Call now WhatsApp Get quote