目录

influxdb如何把point中的多个field一起查出来

问题描述

influx查询包含了水平拆分、垂直拆分. 查询结果的每一条记录record,只对应一个field

写入一个point时包含多个field, 查询时如何将这几个field一起查出来呢?

写入示例

point := influxdb2.NewPoint("history",
    map[string]string{
        "Version": DedefaultVersion,
        "Name": sh.Name,
        "Active": fmt.Sprintf("%v", sh.Active),
        "PortIdx": fmt.Sprintf("%d", sh.PortIdx),
        "Port": fmt.Sprintf("%v", sh.Port),
    },
    map[string]interface{}{
        "MsgId": fmt.Sprintf("%d", sh.MsgId),
        "Content": sh.Content,
    },
    time.Now(),
    )
  • 查询
from(bucket:"my-bucket")
|> range(start: -10m)
|> filter(fn: (r) => (r._measurement=="history") and (r.Name=="xxxx") )

用这个方法查询, 每个record只包含一个_field

解决方法: 分组

分组之后的record,会多一个table属性。table相同,则为一组。也就是一个point的field。
  • 按写入时间分组
|> group(columns: ["_time"])
  • 增加id标签,按id分组

为每个point增加一个id标签, 然后按id分组

佛說大乘無量壽莊嚴清淨平等覺經pdf 净土大经科注2014-doc 此生必看的科学实验-水知道答案 印光大师十念法(胡小林主讲第1集)