Best way to implement multiple continuous aggregates in postgres

114 views Asked by At

Imagine you have to display information about rainfall based on cities over time.

You have tables the provides the details on how much it rains in a specific city for every hour. There is an endpoint that returns the average amount of rainfall for the timeframe/city requested.

(so imagine a table called rainfall_california, rainfall_texas, etc... I realize this schema isn't ideal for rainfall, but using it for an example.)

So instead of calculating the average on each request, I setup a continuous aggregate to calculate the average into a new view and have a policy to refresh the last hour of data once every hour.

ca_texas_rainfall_1_day ca_texas_rainfall_7_day ca_texas_rainfall_30_day ca_california_rainfall_1_day ca_california_rainfall_7_day ca_california_rainfall_30_day

This works great and is super fast, but I'm a little confused on the best way to set it up. Should I have a different view for each continuous aggregate and each city? Wouldn't that result in a ton of different views? Or should I consolidate the average of each table into a single view?

0

There are 0 answers