我是InfluxDB的新手,对如何存储数据存有疑虑。我们的光学传感器输出每个时间戳有数千个值。到目前为止,我已经看到每个时间戳只有几个值的示例。 我的数据是这样的:
时间戳,标签{},字段{value1,value2 ... value10000}
最好的做法是在InfluxDB中存储这样的数据吗?此外,一个数据点可以有多少个字段是否有限制?
答案 0 :(得分:1)
在不知道传感器与其数据之间的确切关系的情况下,这里有3种可能的选择。
案例1:时间顺序数据
值得注意的是,InfluxDB能够使用低至纳秒精度的时间戳。如果您的数千个值是连续的并且可以单独加时间戳,请考虑在单独的时间戳中写入/存储它们
INSERT measurement,sensor=sensor1 field=[value1] 2016-11-26T00:00:00Z
INSERT measurement,sensor=sensor2 field=[value2] 2016-11-26T00:00:00Z
...
INSERT measurement,sensor=sensor10000 field=[value10000] 2016-11-26T00:00:00Z
这样做的好处是可以在一个时间序列中看到所有测量结果。
案例2:一对一映射传感器值
如果每个值来自一个独特的传感器,使您有数千个点和数千个传感器,请考虑为每个传感器制作标签或字段。
A:按传感器标记值
INSERT measurement sensor1=[value1] sensor2=[value2] ... sensor10000=[value10000]
B:每个传感器都是一个字段
class warehouse
{
private static int radios, televisions, computers;
public warehouse (int r, int t, int c)
{
r = Radios;
t = Televisions;
c = Computers;
}
public warehouse()
{
radios = 5;
televisions = 5;
computers = 5;
}
warehouse one = new warehouse(5, 6, 5);
warehouse two = new warehouse();
public static int Radios
{
get
{
return radios;
}
set
{
radios = value;
}
}
public static int Televisions
{
get
{
return televisions;
}
set
{
televisions = value;
}
}
public static int Computers
{
get
{
return computers;
}
set
{
computers = value;
}
}
}
}
如果每个传感器都有多个指标,我会考虑选项A.如果每个传感器只生成1个指标,我会选择选项B.
案例3:可变数量的值
如果每个时间戳具有可变数量的值,例如,在机器视觉中,您已从图像中对阈值和提取对象进行阈值处理,那么您就达到了TSDB的极限。像这样的空间数据不能很好地映射到基于度量的时间序列数据库,如InfluxDB。