InfluxDB:cannot use field in group by clause

  最近在使用InfluxDB时,发现一个很奇怪的问题,一个本来正常的功能,做了一次改动后,就不能正常显示了.

一、查询语句

SELECT MEMORY FROM "ACM_PROCESS_MONITOR" GROUP BY USER_NAME

 异常信息如下:

Server returned error: can not use field in GROUP BY clause: USER_NAME

Group By语句后面,只能是Tag列,不能是Field列

 

二、查看所有Tag列

 

  说明USER_NAME是Tag列

三、查看所有Field列

 

   说明USER_NAME是Field列

   综上所述,USER_NAME既是FIELD列,又是TAG列!

 四、问题产生原因

  产生这个问题的原因,是因为UESER_NAME以前确实是FIELD列:

 因为不能在GROUP BY 中查询,于是把它设置为了TAG列:

    为了方便,删除了原来的表,数据都是新的,GROUP BY 没有问题。

   今天一不小心,又启用了改之前的程序,导致又把USER_NAME作为了FIELD列,所以GROUP BY的时候出问题了。

   老外的描述:https://github.com/influxdata/influxdb/issues/3783

   解决方案:

   1.把表删了重建,然后启用新程序

或:

   2.重新为USER_NAME取一个作为TAG列的名字:TAG_USER_NAME,数据都写到这里,用它作为GROUP BY的Tag列

posted @ 2017-12-27 23:02  静若清池  阅读(1209)  评论(0编辑  收藏  举报