Inside the pre_aggregation block, set partition_granularity to day, month, or year to instruct Cube Store to split materialized data into separate partition tables per time unit
Add an updateWindow property (e.g., 3 days) to tell Cube to refresh only the most recent N time units rather than rebuilding the entire pre-aggregation on each refresh cycle
Set a build_range_start and build_range_end using now() expressions or absolute timestamps to control the historical depth of pre-aggregation construction
Keep total partition count (build_range divided by partition_granularity) below roughly 500–1000 partitions to avoid excessive memory and CPU overhead in Cube Store
Monitor pre-aggregation build times in Cube Cloud's pre-aggregation management UI and adjust partition_granularity or updateWindow if builds exceed acceptable durations
Known gotchas
The updateWindow is evaluated independently per partition; setting it too short (e.g., 1 day) on a dataset with multi-day late-arriving data will cause those late records to be permanently excluded from the pre-aggregation
Incremental partitioned builds require that your time dimension be a proper database timestamp or date column; string-formatted date columns will cause partition boundary detection to fail
Changing partition_granularity on an existing pre-aggregation does not automatically rebuild old partitions; you must invalidate and rebuild the pre-aggregation manually or wait for the next full refresh cycle
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp