背景:
公司有 30W 台设备,高峰时 6W 台在线,每隔 5s 上传一次数据,一年大概只有 6 个月左右工作.大概整个生命周期内 100W 条数据(每条数据算 64 个监控点),每年预计 10W 新设备增长,数据永久保存(最大到 100W 台设备).
现在使用单机 InfluxDB,总记录 600 亿左右,硬盘占用 4T,高峰时内存经常用满128G导致重启.
写多读少.
需求:
- 免费;
- 内存,硬盘占用少(新机器只能分配 128G 内存和 15T 的 SSD);
- 数据永久保存的情况下(每个设备 50W~100W 的数据量)近期数据的查询时间在 10s 内;
- 支持少量乱序写入.
最近调研了几个数据库:
-
TDengine:
a. 数据和表删除不会释放空间,只能 keep 设置的数据到期才会删除(企业版支持数据重组),而且乱序写入好像还会占用额外空间?
b. 性能还行,单表 1 亿的情况下也能在 10s 内,百万数据的话 1s 内(1W 个表,就一个表 1 亿数据,其他表只有 1W 数据).
-
IoTDB:
a. 性能还行,没多测;
b. 内存,硬盘按他给的算法,占用很多.
-
QuestDB:
a. 数据量一亿的情况下性能还行,占用跟 TDengine 差不多;
b. 数据量上到 10 亿后,查询性能下降非常多,写入也慢(吃 CPU,不过够用).
前几天看到站内的VictoriaMetrics/Prometheus+Thanos还没测,不知道具体咋样.
大家有没有什么好的推荐?