query engine

functions

influxdb的functions包含三类:aggregations,selectors和transformation。

  • aggregations包括count(),distinct(),mean(),sum(),median,以上函数都会对单个field进行聚合,返回一条记录

  • selector包括min,max,first,last,top,bottom,percentile,以上函数会对单个field进行筛选,选出单个值返回,top和bottom会根据第二个参数决定返回值的数量

  • transformation包括derivative,non-negetive-derivative,stddev,以上函数对单个field的数值进行变形,返回多条记录

query组合设计

  • raw query表示没有function的query,返回多个值
  • 三种function + raw query总共是四种方法
  • raw & aggregation: 不合法,前者返回多个值,后者返回单个值
  • raw & selector:不合法,前者返回多个值,后者返回单个值
  • raw & transformation: 不合法,

问题

怎么定义 select mean(val) + tmp from cpu

pr# fix math query, but cannot handle query with first,last,min,max, this pr add support for query with first last min and max,

In addition, I think more query speficiation is needed, when apply query