对于尽可能快地轮询大量中低密度传感器数据时间序列的硬件选择,我们有一些一般性的问题。
系统概述
数据包括来自不同时间不同位置的各种传感器的大约50-100K数据点的多个时间序列。主表中有大约15列数据,但有些列中包含长数组值。我与C#/ python接口,将查询发送到本地数据库,然后处理返回的数据。
问题和一些想法
目前,日志记录服务器的平均硬件(预算为4tb hdds,基本四核,8gb ram),并且根据查询中请求的数据量,它需要永远(re:"恼人的数量)等待")返回整个时间序列。我有成千上万的独立时间序列,我想比较多个时间序列。对于50K行,返回单个时间序列至少需要30个*,可能需要30秒以上,但只需几个列就可以低至100毫秒。使用了很多不同的查询,因此我不会为重复查询提供缓存。
所以我想到的是,不是直接从在线服务器上工作,而是将数据库的脱机副本放到更专用的硬件上,以便更快地进行分析。我一次都不需要所有数据(例如,我可以选择一个位置和时间范围,离线复制并继续处理)
表格设计非常基础。最常查询的表数据具有主键:
PRIMARY KEY (location_id, time_logged, sensor_id)
使用简单的查询,如
SELECT * FROM table
WHERE location_id = 2154321 AND sensor_id = 254;
这是最常见的,并将与其他一些WHERE条件一起使用。
每个location_id
有数千个location_id和几十个sensor_id问题
(关于上表/ pk /查询设置)
我在使用数据库方面比较新,所以我们真的不知道在性能方面有什么期望,所以任何指针都会有所帮助。
谢谢!