HMF-TSDB 表达式通常由多个“子句”组成。HMF-TSDB表达式中存在以下几种子句:
1、选择器子句
2、时间范围子句
3、函数子句
4、降频子句
5、分组子句
1、选择器子句
选择器子句是用来 选择测点/指标的。在一个简单查询或者复杂分析的表达式中,可以定义一个或多个选择器。选择器的语法如下: metricName{tagName1=’tagValue1’,tagName2=’tagValue2’} 其中“metricName”是一个测点名,tagName是测点的一个标签,tagValue是测点标签值。
例子1:
查询一号配电柜的输入端口的功率,表达式可以这么写: power{device=‘一号配电柜’,port=‘输入’}
例子2:
在选择器中,对同一个标签,可以设置多个值。假如我们要查询两个设备的输入功率,可以这么写: power{device=‘一号设备’|‘二号设备’,port=‘输入’}。
2、时间范围子句
时间范围子句是表达用来定义时间范围的。在一个表达式中,必须有且仅有一个时间范围子句。时间范围子句有两种形式: from ‘yyyy-MM-dd HH:mm:ss’to ‘yyyy-MM-dd HH:mm:ss’或者 last[1h]
前一种形式直接定义了开始时间和结束时间。第二种形式定义了最近多长的一个时间范围,比如: last[1h] 表示最近1小时; 这种形式中,时间长度单位可以是:m、h或者d,分别表示分钟、小时和天。
3、函数子句
函数子句 赋予了HMF-TSDB强大的时序数据分析计算能力。函数子句的语法形式如下:functionName(subExp[…])。其中functionName是函数名,括号内是一个或者多个 选择器子句或者函数子句。HMF-TSDB表达式支持的函数包括:sum、avg、min、max、mul、div、sub等。