Best Way To Create Time Series from Postgres Table Update History? I have a Postgres Table (500 rows, 10 columns) that gets updated every 6 hours by a Daemon (that performs some calculations) and executes a series of row-by-row upsert operations. How can I construct day-by-day time series of the state of the table? Is there some way to build this by walking through the update/operation history? Are there any frameworks/techniques out there to make this easy?

Table will grow to max of 5000 rows.
You could maintain a history table that has the same structure as the original table plus a timestamp column. 

Then create a trigger that copies the old row into that history table before applying the UPDATE. During the INSERT into the history table, the trigger would populate the timestamp column to store the point in time when the change occurred. The UPDATE will then proceed normally on the main table.

Depending on your needs you might also want to store new rows when they are INSERTed or the old rows before they are DELETEd. 

This approach typically does not require any changes in the application. To find out old "versions" of your data, you need to query that history table, rather than the real table. Whether that is acceptable I can't tell.