@sam,
Thanks for joining the Timescale Forum and asking about the fit for your application. I’m a Developer Advocate for the company but have a long history with time-series data applications before coming to Timescale (and one of the reasons I wanted join).
The scale that you’re describing is well within the bounds of a single-instance TimescaleDB database. We regularly see insert rates of tens and hundreds of thousands of rows/second without breaking a sweat and TBs of data in a table. So to that end, I’m confident you’ll be able to insert and retain historical data to fit your application needs.
More directed to your bullet points, these three features will have the most impact on your day-to-day application development and will require some planning as you step in, but I’m confident you’ll be rewarded for the effort.
Compression: TimescaleDB offers native columnar compression that is applied at the partition level. So as data ages, you can set an automated policy to compress the data which saves many of our clients 90% or more in storage. Obviously, that reduces costs, but because we transform this data into columnar format, many historical queries that aggregate specific columns over long time-ranges end up being faster too!
Continuous Aggregates: These are essentially materialized views that stay up-to-date on a schedule you choose and they only update/aggregate data that’s impacted by changes to the raw data. So, they’re very efficient to maintain, they can retain data differently from your raw data (ie. store aggregated rollups for months or years after the raw data was dropped!), and many of our new aggregate functions allow you to rollup a smaller aggregate (say one hour) to higher levels (1 day) without maintaining multiple views. And because these views aggregate the raw data, you can serve this data to more people, faster, because the aggregates are already done (and kept up-to-date!).
This is a total game changer for time-series data and something many of us maintained ourselves for years because there was no other solution.
Automated data retention: Like compression and continuous aggregates, data retention is applied with a policy of your choosing, and then you can stop thinking about it. TimescaleDB will regularly check for chunks that are older than your configured policy and drop the chunk for you.
Timescale Cloud: I’ll also add that Timescale Cloud is currently working (as of September 2022) on a number of other features around storage that aren’t public yet which will further reduce cost ability to serve a wider array of use cases.
The last comment I wanted to add was in relation to you relative time query. Without knowing your schema and data patterns it feels a bit difficult to say, “sure, Timescale will magically work there!”. That said, I’m confident that many of our query planner improvements will make searching and merging time-based comparisions easier, including work we’re currently exploring around join operators like “ASOF”, something that Postgres doesn’t support natively but that we can provide as part of the extention at some point.
Finally, if you weren’t aware, when you signup for a 30-day trial of Timescale Cloud, the Timescale support team is ready to assist in any way they can - including migration plans, schema design, etc. to make sure you’re successful with our hosted solution.
Feel free to ask more questions. We’re here to help.