对我而言,我需要为设备捕获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