我正在尝试将带有传感器数据的计算字段添加到我的超表中,例如,我想添加体积读数的导数以获得体积流量。
我尝试使用连续聚合来执行此操作,但是得到invalid SELECT query for continuous aggregate
。
create view public.readings_raw_with_calc_fields
WITH (timescaledb.continuous)
as
select
serial,
time,
type,
value
from public.readings_raw
union all
select
serial,
time,
'Volume flow calc.' as type,
(lead(value) over (partition by serial,devicetype,manufacturer order by time))-value as value
from
public.readings_raw
where type='Volume'
是因为lead
函数,还是因为连续聚合中必须有聚合函数?最佳做法是什么?我可以做一个工作,每分钟将数据插入原始表中,但是如果及时插入新数据,我将无法捕获(这是一个相当大的表,因此我无法每分钟运行一次整个表)。
答案 0 :(得分:1)
这两个窗口功能和UNION都将阻止连续的聚合工作。
在这种情况下,由于每行执行的计算量很小,因此按时间索引和常规视图可能会提供所需的性能。