出于比较目的,在 Axibase时间序列数据库 您可以将温度存储为度量标准,将传感器ID存储为实体名称。 ATSD模式具有实体概念,该实体是正在为其收集数据的系统的名称。优点是更紧凑的存储和为实体本身定义标签的能力,例如传感器位置,传感器类型等。这样,您可以不仅通过传感器ID而且通过传感器标签对结果进行过滤和分组。
举个例子,在这篇博客中,文章0601911代表实体ID - 这是EPA站ID。该站收集了几个环境指标,同时在数据库中使用多个标签进行描述: http://axibase.com/environmental-monitoring-using-big-data/ 。
最重要的是,您不必为了高级报告而存储第二个数据库(通常是关系数据库),只是存储有关传感器,服务器等的扩展信息。
的 更新1:示例网络命令: 强>
series e:sensor-001 d:2015-08-03T00:00:00Z m:temperature=42.2 m:humidity=72 m:precipitation=44.3
描述传感器001的标签(如位置,类型等)是分开存储的,可最大限度地减少存储空间并加快查询速度。如果您正在收集能源/电力指标,您通常必须指定系列属性,例如状态,因为数据可能无法清理/验证。您可以使用系列标记来实现此目的。
series e:sensor-001 d:2015-08-03T00:00:00Z m:temperature=42.2 ... t:status=Provisional
您应该为每个传感器使用一个指标。您可能不需要聚合来自不同温度传感器的值,但您需要聚合给定传感器的值(例如,平均一分钟以上)。
度量标准对应于来自同一来源的数据,或者至少是您可能聚合的数据。您可以根据需要创建几乎一样多的指标(最多可达到 1600万个指标 例如在OpenTSDB中)。
标签可以区分这些数据。例如,如果数据突然发生很大变化,您可以对数据进行不同的标记,以便在需要时仅检索相关数据,而不会丢失其余数据。虽然对于温度传感器每秒获取数据,最好的可能是过滤并仅在值改变时存储数据...
总结了最佳实践 这里
如果您将数据存储在InfluxDB中,我建议将所有指标存储在一个度量中,并使用标记来区分源,而不是为每个源创建一个度量。原因是您可以使用测量中的标记轻松合并或分解度量标准,但在最新的InfluxDB中无法跨测量进行合并或连接。
最终决定权取决于您选择的TSDB以及您最关心的运行查询。