OpenTSDB和单个测量中的多个值

时间:2012-12-08 20:33:25

标签: opentsdb

据我了解,OpenTSDB处理measument是单个值的时间序列。许多测量设备在单次测量中提供一组值。例如,这可能是一个设备的单个测量:2012-12-16 01:00:00,temp = 12,current = 2,waterheight = 3,nacl-level0.5,....

OpenTSDB允许我将这些存储在一起,还是我被迫将它们存储为单独的时间序列?

3 个答案:

答案 0 :(得分:4)

最好将它们存储为单独的时间序列,因此您需要一个温度,一个用于电流,一个用于水高,一个用于NaCl水平等。您可以随时查询它们在一起。

标签应该主要用于对相同性质的数据点进行分类,例如,如果您有多个测量点,那么您将有一个标签指示哪个设备收集了测量值。这样您就可以获得每个设备的时间序列,或者获得所有内容的汇总视图(通过求和或平均等)。

答案 1 :(得分:3)

除了事实之外,我认为,tsuna绝对是正确的,它可以用OpenTSDB。保存数据的行具有一个唯一的行键和多个值 - 所有类型都相同。

每个时间戳(最小时间间隔:1秒)和每行键(度量标准名称+小时时间戳+标记名)只能放置一个值。因此,您无法在一个时间序列行中放置具有相同时间戳或不同标记的值。或者您想如何在不使用标签的情况下区分不同的测量点(温度,电流,水高等)?

答案 2 :(得分:1)

大卫,

数据处理描述如下: http://opentsdb.net/docs/build/html/user_guide/writing.html

可以强制OpenTSDB以这种方式存储数据(需要一些调整和重新编译),你基本上是正确的:这不是你想要的方式。

根据要存储的测量值来判断,我认为我之前已经在该领域工作过。 将该系列存储为单独的时间序列有两个原因:

  • 您只能将 8 标记附加到单个数据点,因此您只能进行6次测量,假设1个标记用于标识,1个用于位置。
  • 将它们存储为单独的时间序列,您可以利用OpenTSDB的优秀内部数据解析工具。

如果你这样构造它:

1d.height t=timedate height rivername=name

您可以立即检索整条河流的平均高度。

想象一下你可以用二维水体做什么:

 2d.height t=timedate height type=lake name=IJsselmeer xcoord=xx ycoord=yy 

可能的标记值(16M)数量有限。根据要存储的分辨率,您可能希望将数据划分为扇区和网格点。 (如果你想以1M分辨率存储大西洋)