對我而言,我需要爲設備捕獲15個性能指標並將其保存到InfluxDB。每個設備都有唯一的設備ID。InfluxDB性能
指標通過以下方式寫入InfluxDB中。這裏我只舉一個例子
new Serie.Builder("perfmetric1")
.columns("time", "value", "id", "type")
.values(getTime(), getPerf1(), getId(), getType())
.build()
寫數據是快速和容易的。但是當我運行查詢時,我看到了糟糕的性能。我試圖獲得最後一小時的所有15個指標值。
select value from perfmetric1, perfmetric2, ..., permetric15
where id='testdeviceid' and time > now() - 1h
對於一個小時,每個度量有120個數據點,總共有1800個數據點。當c4.4xlarge EC2實例處於空閒狀態時,查詢大約需要5秒。
我相信InfluxDB可以做得更好。這是我的模式設計的問題,還是其他的東西?將查詢拆分爲15個並行呼叫會更快嗎?
感謝您的快速響應!我對InfluxDB相當陌生,基本上只是試驗。這一切都有道理。我有點驚訝,因爲這似乎是一個非常常見的用例。 標籤索引對於0.9.0版本來說是新鮮事物 - 目前我正在運行穩定的0.8.8。 「爲了使標籤和特定列值快速查找等事情,我們將添加對列索引的支持,以下是跟蹤列索引的問題。」 –
該軟件處於alpha版的開發狀態,所以很多東西缺失和大量的錯誤 – valentin