influxdb 中得 fields 与 tag 区别总结
1.Field 与 Tag 说明
在 InfluxDB 表结构中,field 和 tag 是用于存储数据的两种不同类型。
Field(字段):
Field 用于存储实际的数值数据,例如温度、湿度等测量值。
Field 是可变的,可以随时间的推移而改变其值。
Field 的值可以进行聚合计算,例如求平均值或总和等。
Field 不适合用于过滤和索引数据,因为它没有元数据信息。
Tag(标签):
Tag 用于存储元数据信息和标识数据的键值对,例如传感器名称、地理位置等。
Tag 是不可变的,一旦设置就不能更改。
Tag 的值不能进行聚合计算,只能用于过滤和分组查询。
Tag 是 InfluxDB 中的主要索引机制之一,可以提高查询性能和数据过滤效率。
2.查询场景区别:
2.1Field 的使用场景:
存储实际的测量值,例如传感器收集到的温度、湿度等数据。
对数值进行聚合计算,例如计算平均值、总和、最大值等。
在时间序列数据分析中,Field 可以表示监测指标的具体数值,支持统计和汇总操作。
示例 SQL 查询语句:
在上面的查询中,temp
是一个 Field,用于获取传感器数据表中的温度值。
2.2 Tag 的使用场景:
存储元数据信息,例如设备名称、传感器类型等。
在查询中用作过滤条件和分组依据,以进行更精确和详细的数据查询。
支持按照标签进行数据聚合和分组查询,以便进行统计和分析。
示例 SQL 查询语句:
SELECT mean(temp ) FROM dev_temp_monitor WHERE time > now() - 10m GROUP BY host
在上述查询中,host 是 Tags,用于过滤和分组传感器数据表中最近十分钟的不同传感器的平均温度值。
在使用 group by 进行汇聚查询时,group by 只能对 time 以及 tag 相关字段进行 group by,不能对 field 进行 group by
Field 更适合存储实际测量值,并支持聚合计算,而 Tag 则用于存储元数据信息和进行数据过滤、分组查询。通过合理地使用 Field 和 Tag,可以更好地组织和查询 InfluxDB 中的时序数据。
版权声明: 本文为 InfoQ 作者【互联网工科生】的原创文章。
原文链接:【http://xie.infoq.cn/article/833f35a50ac3cd89bd6302e23】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论