这是一个关于在数据库中存储大量数据的难题。
假设我有一个充满机器的设施,每台机器都测量多个数量的时间序列。我将尝试用一个玩具示例进行解释。
MachineA
测量四个温度和一个湿度。MachineB
测量一个温度和五个电压。MachineC
测量风速和风向。测量一直在自动进行。
每台机器同时进行所有自己的测量,但时间间隔和偏移量因机器而异。这意味着一行只能包含一台机器在一个时间戳上进行的测量。
实际上有两千台机器。这意味着为每台机器或机器类型使用单独的表是不切实际的。
一直在添加不同的机器。一组跨越所有可能测量的列是不切实际的,因为如果我添加一个MachineD
带有咸度测量的列,我不会提前考虑咸度,我必须为此在一个非常大的表中添加一个新列一台机器使用。
典型查询:
- 过去 90 天的最高温度是多少
MachineA
? MachineB
过去 7 天的所有测量值是多少?- 在所有有温度测量的机器中,昨天测量的最低温度是多少?
- 对于每台进行温度测量的机器,昨天测量的最低温度是多少?
- 哪些机器有咸味检测器在过去一年内也有测量值?
- 根据
MachineC
' 的风速和MachineB
' 的温度,风寒是多少?
在这些限制条件下如何组织?