据我了解,OpenTSDB处理measument是单个值的时间序列。许多测量设备在单次测量中提供一组值。例如,这可能是一个设备的单个测量:2012-12-16 01:00:00,temp = 12,current = 2,waterheight = 3,nacl-level0.5,....
OpenTSDB允许我将这些存储在一起,还是我被迫将它们存储为单独的时间序列?
答案 0 :(得分:4)
最好将它们存储为单独的时间序列,因此您需要一个温度,一个用于电流,一个用于水高,一个用于NaCl水平等。您可以随时查询它们在一起。
标签应该主要用于对相同性质的数据点进行分类,例如,如果您有多个测量点,那么您将有一个标签指示哪个设备收集了测量值。这样您就可以获得每个设备的时间序列,或者获得所有内容的汇总视图(通过求和或平均等)。
答案 1 :(得分:3)
除了事实之外,我认为,tsuna绝对是正确的,它可以用OpenTSDB。保存数据的行具有一个唯一的行键和多个值 - 所有类型都相同。
每个时间戳(最小时间间隔:1秒)和每行键(度量标准名称+小时时间戳+标记名)只能放置一个值。因此,您无法在一个时间序列行中放置具有相同时间戳或不同标记的值。或者您想如何在不使用标签的情况下区分不同的测量点(温度,电流,水高等)?
答案 2 :(得分:1)
大卫,
数据处理描述如下: http://opentsdb.net/docs/build/html/user_guide/writing.html
可以强制OpenTSDB以这种方式存储数据(需要一些调整和重新编译),你基本上是正确的:这不是你想要的方式。
根据要存储的测量值来判断,我认为我之前已经在该领域工作过。 将该系列存储为单独的时间序列有两个原因:
如果你这样构造它:
1d.height t=timedate height rivername=name
您可以立即检索整条河流的平均高度。
想象一下你可以用二维水体做什么:
2d.height t=timedate height type=lake name=IJsselmeer xcoord=xx ycoord=yy
可能的标记值(16M)数量有限。根据要存储的分辨率,您可能希望将数据划分为扇区和网格点。 (如果你想以1M分辨率存储大西洋)