A deep dive into time-series storage design decisions that drive cost and query performance. Covers normalization vs. flat schemas in PostgreSQL (42% storage reduction with normalization), high-cardinality pitfalls, schema evolution with JSONB, columnar storage with Apache Parquet (up to 434x compression), wide vs. narrow schema trade-offs, two-dimensional partitioning (time + series identity) to avoid write hotspots, downsampling resolution ladders (720x row reduction from 5s to 1h), and dashboard read amplification mitigation strategies.
Table of contents
What is Time-Series Data?Relational Storage: Flat vs. NormalizedHigh Cardinality: When Normalization Breaks DownDesigning for Schema EvolutionColumnar Storage as the Next LeverWide vs. Narrow Schema for Multi-Metric RowsPartitioning: Time First, Then SpaceDownsampling and Retention: Trading Resolution for CostCost Challenges of Dashboard RefreshesConclusionAbout the AuthorSort: