Skip to content
kc@kumarChandrachooda.com:~$ cd /blog/series/kc-star-v2-every-measure-gets-computed && read --section="top" 0%
Series

KC Star V2 — Every Measure Gets Computed

In reading order.

  • 4 parts
  • ≈ 16 min total
  • 4 published
Part 1 30 Jul 2025 4 min read

Eight Measures, One Table

KC Star V1 declared eight measures and computed four. V2 computes all eight - base measures and aggregates together in a single SalesFact table. Kicking off the series on the version that made the warehouse analytical, and started the trouble that V3 had to fix.

Part 2 31 Jul 2025 4 min read

Promoting SaleType from Row to Column

To compute per-SaleType aggregates, KC Star V2 lifted one dimension out of the row store and made it a real column. Here is the renumbering it forced, what it did to the version hash, and the honest tension of un-inverting one attribute in a schema built on inversion.

Part 3 01 Aug 2025 4 min read

GROUP BY in a Window Function's Clothes

KC Star V2's measure formulas read like window functions - SUM(...) OVER (PARTITION BY SaleType) - but the implementation is plain GROUP BY. Here is how CreateAggregatedFacts actually builds the aggregates, and why the formula strings deliberately lie.

Part 4 01 Aug 2025 4 min read

The Expiry Clause That Missed

KC Star V2 stores base facts and aggregates in one table and tells them apart by a NULL. When it expires old aggregates, that one distinction turns out to be a distinction short - per-SaleType aggregates never retire, duplicates pile up, and V3 gets its reason to exist.

Which CV would you like?

Pick the one closest to the role. Each is two pages and carries the same facts.

Applied AI

Agentic AI & Cloud Engineer · multi-agent systems, RAG and MCP on AWS

Cloud & .NET

C#, .NET 10 and ASP.NET Core microservices on AWS and Azure · Terraform & AWS CDK

Data Engineering

AWS lakehouse · Kinesis, Glue (PySpark), Apache Iceberg, Lake Formation

Everything

All three domains, with the standout project from each