如何在 InfluxDB 中存储光学数据

How to store optical data in InfluxDB

我是 InfluxDB 的新手,对如何存储我的数据有疑问。我们的光学传感器输出每个时间戳都有数千个值。到目前为止,我只看到每个时间戳的几个值的示例。 我的数据将是这样的:

时间戳、标签{}、字段{value1、value2...value10000}

是否有在 InfluxDB 中存储此类数据的最佳实践?另外,一个数据点可以有多少个字段有限制吗?

在不知道传感器与其数据之间的确切关系的情况下,这里有 3 个可能的选项。

案例一:时序数据

值得注意的是,InfluxDB 能够使用精确到纳秒级的时间戳。如果您的数千个值是连续的并且可以单独加上时间戳,请考虑 writing/storing 它们在单独的时间戳中

INSERT measurement sensor=[value1] 2016-11-26T00:00:00.00000000Z
INSERT measurement sensor=[value2] 2016-11-26T00:00:00.00010000Z
...
INSERT measurement sensor=[value10000] 2016-11-26T00:00:01.00000000Z

这样做的好处是可以在一个时间序列中查看所有测量值。

案例 2:一对一映射传感器到值

如果每个值都来自一个独特的传感器,这样您就有数千个点和数千个传感器,请考虑为每个传感器创建一个标签或字段。

A:通过传感器标记值

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

B:每个传感器是一个字段

INSERT measurement sensor1=[value1] sensor2=[value2] ... sensor10000=[value10000]

如果每个传感器有多个指标,我会考虑选项 A。如果每个传感器只产生 1 个指标,我会选择选项 B。

案例 3:值的数量可变

如果每个时间戳的值数量可变,例如,在机器视觉中,您已经对图像进行了阈值处理并从图像中提取了一个对象,那么您就达到了 TSDB 的极限。像这样的空间数据不能很好地映射到像 InfluxDB 这样的基于度量的时间序列数据库中。