The symptoms that bring teams here.
Queries that used to be fast
Two seconds became forty seven. The table grew, the ordering key did not change, and nothing was re partitioned.
A warehouse bill nobody defends
Compute is billed by the second and your dashboards refresh on a schedule nobody set deliberately.
Pipelines that fail silently
Consumer lag climbs overnight and the first person to notice is a customer looking at yesterday data.
A migration everyone fears
The move off Postgres or Snowflake has been on the roadmap for four quarters because nobody wants to own the cutover.
What we actually do here.
MergeTree schema design, codec selection, sharding, TTL tiering and migration validation. The unglamorous work that decides whether the cluster holds.
See the whole stackRead the system tables
Flame graphs and query logs, not guesses. The profile tells us which knob matters before anything gets tuned.
Fix the schema first
Ordering keys aligned to real queries, column specific codecs that cut storage 40 to 60 percent, materialised views for the expensive aggregations.
Migrate with proof
Your production queries run against both systems. Row counts and checksums match before a single reader is switched over.
Tier the cold data
TTL policies move old partitions from NVMe to object storage automatically, so the bill stops tracking your total history.