有没有可能预先计算(缓存)差异信号的聚合值(最小/最大/平均值)?
我有几个通道(例如50个),每秒钟进行一次或多次测量,我可以轻松地存储预先计算的1分钟或15分钟聚合值以加快显示速度。
但是其中一个要求是显示相对值的图表。例如,如果我有通道C1、C2和C3,则用户希望在单独的图表上看到C1的平均值和(C2-C3)的平均值(或15分钟的最小/最大值)。
例如,假设我有这两个通道(还有48个):
t(min) 0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10
C1 0.0 0.1 0.2 -0.1 0.0 0.1 0.3 0.5 0.7 0.9 0.2
C2 0.1 0.4 0.2 0.1 -0.1 0.5 0.6 0.1 0.2 0.3 0.0
我可以预先计算并存储5分钟的聚合数据:
t(min) 0 to +4 +5 to +10
C1_min -0.1 0.1
C1_max 0.2 0.9
C2_min -0.1 0.0
C2_max 0.4 0.6
从中可以轻松获取10分钟或15分钟的总计。
但是,如果用户想要查看任何这50个通道组合的min(C2-C1)
或max(C2-C1)
5分钟聚合数据,似乎我不能重复使用此信息。
换句话说,除了存储这些元组的每个可能组合之外,在我的看来似乎不可能预先计算出这些值,因为min(C2-C3)
并不等于min(C2)-min(C3)
。
我是否漏掉了某些能帮助我更快地计算这些值的想法?
min(A-B)
聚合(即避免每次都要遍历整个数据库)。我问题中的示例是简化的,但实际上每秒钟有很多测量值,而“差异最小值”的要求确实破坏了我对快速绘图的希望。 - Lou