[我正在尝试确定如何在InfluxDB数据库中组织测量(我认为它们称为schema design and data layout,但是我认为这可能是一个更通用的数据库类型问题。
举个简单的例子,我正在>和外部两个位置测量两个数量,温度和湿度。 InfluxDB具有用于插入数据点的syntax:
测量
,标签键=标签值 字段键=字段值因此,有两个显而易见的选项(至少对我而言)。简要地说,第一个选项将像这样插入一个数据点:INSERT temperature,location=outside value=15
INSERT humidity,location=outside value=50
而第二个选项可以这样:
INSERT sensor_measurements,location=outside temperature=15,humidity=50
我的问题更高层次:
我觉得选项1更像是InfluxDB描述“度量”所隐含的内容。温度和湿度都是分开的量。但是,仅将其称为“值”似乎有点笨拙。
选项2似乎具有湿度和温度共享完全相同的时间戳的优点。例如,如果我想将数据导入其他软件并在两个数量之间进行关联,这将很有用,这意味着我不必进行任何内插或合并就可以使它们匹配。
我不确定使用选项2仅具有称为[[sensor_measurements
的常规度量值是否是个坏主意,以后将很难维护。详细:
选项1
INSERT humidity,location=outside value=50
INSERT temperature,location=outside value=15
INSERT humidity,location=living_room value=65
INSERT temperature,location=living_room value=28
t2,插入一些不同的数据:
INSERT humidity,location=outside value=50
INSERT temperature,location=outside value=15
INSERT humidity,location=living_room value=65
INSERT temperature,location=living_room value=28
> SELECT value FROM temperature WHERE location='living_room' name: temperature time value ---- ----- 1590416682017481091 28 1590416723963187592 29
我也可以使用group by function做这样的事情:
SELECT value FROM temperature GROUP BY "location"
选项2例如,有一个称为
的组合“测量”,对于sensor_measurements
INSERT sensor_measurements,location=outside temperature=15,humidity=50
INSERT sensor_measurements,location=living_room temperature=28,humidity=65
t2,插入一些不同的数据:
INSERT sensor_measurements,location=outside temperature=14,humidity=56
INSERT sensor_measurements,location=living_room temperature=29,humidity=63
> SELECT temperature FROM sensor_measurements WHERE location='living_room'
name: sensor_measurements
time temperature
---- -----------
1590416731530452068 28
1590416757055629103 29
我现在可以使用group by function做这样的事情:
SELECT temperature FROM sensor_measurements GROUP BY "location"
我正在尝试确定应该如何在InfluxDB数据库中组织度量(我认为它们称为架构设计和数据布局),但是我认为这可能是更通用的数据库类型...