我正在使用 pipelinedb 来测试对来自传感器的数据流的一些分析。例如,我希望能够在流中找到由聚合定义的事件。例如,查找最近 5 分钟内最大(温度)和最小(温度)之间的差异超过一定范围的事件。
当试图将聚合放在 WHERE 子句中时,我收到一条错误消息,上面写着“在连续视图中不允许聚合的子句”
我在这里遗漏了什么还是不可能?
否则我非常非常喜欢pipelinedb!
好吧,pipelinedb 说:“连续查询不支持 HAVING 子句”。
我正在尝试做的是以下内容:
我有一个名为 geo_vital_stream 的流,它会发送一些传感器数据以及地理位置。目前我很感兴趣
insert into geo_vital_stream (device_id, user_id, measured_at, heartrate, energy, eda, lon, lat) VALUES( 'A005D8-E4 2.0',1,'2015-10-08 15:04:33.134000+02',96.8497201823,351.056269367,0.505791,8.07154018407,52.9531484103 );
我的简历是这样的:
CREATE CONTINUOUS VIEW cv_sensor_eda AS
SELECT user_id::integer,
MAX(eda::numeric) - MIN(eda::numeric) as range_eda
FROM geo_vital_stream
WHERE (measured_at > clock_timestamp() - interval '1 minutes')
GROUP BY user_id
现在,我只对那些范围(range_eda 在最后一分钟超过某个值)的“事件”感兴趣。