Multiple Reference Times

Is there a discussion anywhere about storing time series data from a system that has multiple reference times that are not necessarily in sync?

Example data might look like:

Load to a bucket, data with: a fixed offset between 2 time references, but moving with the same time step as time changes.
time_reference_1, time_reference_2, name, value
2021-01-01T01:01:05, 2022-02-02T02:02:05, temperature1, 50.0
2021-01-01T01:01:06, 2022-02-02T02:02:06, temperature1, 51.0
2021-01-01T01:01:07, 2022-02-02T02:02:07, temperature1, 50.0
2021-01-01T01:01:08, 2022-02-02T02:02:08, temperature1, 51.0

Load to the same bucket, data with: a different fixed offset between 2 time references, but moving with the same time step as time changes.
time_reference_1, time_reference_2, name, value
2021-02-02T02:02:05, 2022-02-02T02:02:05, temperature1, 50.0
2021-02-02T02:02:06, 2022-02-02T02:02:06, temperature1, 51.0
2021-02-02T02:02:07, 2022-02-02T02:02:07, temperature1, 50.0
2021-02-02T02:02:08, 2022-02-02T02:02:08, temperature1, 51.0

Load to the same bucket, data with: a variable offset between 2 time references, moving with a variable time step as time changes.
time_reference_1, time_reference_2, name, value
2021-02-02T02:02:05, 2022-02-02T02:02:05, temperature1, 50.0
2021-02-02T02:02:06, 2022-02-02T02:02:10, temperature1, 51.0
2021-02-02T02:02:07, 2022-02-02T02:02:20, temperature1, 50.0
2021-02-02T02:02:08, 2022-02-02T02:02:40, temperature1, 51.0

And then extending this from 2 time references to N time references:
time_reference_1,
time_reference_2,
time_reference_3,

time_reference_N,

And the desire is to query on a range of time_reference_1, and a range of time_reference_2, simultaneously. E.g.:

range(time_reference_1 <= 2021-01-01T01:01:05 and time_reference_2 <= 2022-02-02T02:02:05):
2021-01-01T01:01:05, 2022-02-02T02:02:05, temperature1, 50.0

range(time_reference_1 <= 2021-02-02T02:02:05 and time_reference_2 <= 2022-02-02T02:02:05):
2021-01-01T01:01:05, 2022-02-02T02:02:05, temperature1, 50.0
2021-02-02T02:02:05, 2022-02-02T02:02:05, temperature1, 50.0

And then similarly among any combination of N time references. If you hash across time_reference_1, time_reference_2, name, value, each of the 12 measurement points above is uniquely identifiable, so there are no collisions here. And the cardinality among any subset of the N time references tends to be the product of the cardinalities of each member of the subset. E.g. it’s not like time_reference_1 sits at time X, and generates 1000 different time_reference_2. All time references tend to all change simultaneously. This is a common application in environments that execute simulations, and has other applications.

@qs6fqtbr,
Interesting. What is this called? Can you provide links to some additional learning material?/where this idea is sourced? Thank you!
@Jay_Clifford have you heard of or seen this?

I sadly have not seen this before, would be cool to see some more documentation / reading material :slight_smile:

Thanks @Jay_Clifford