更新时间:2022-06-27 GMT+08:00
分享

函数

当前系统内置了如下函数。

表1 函数列表

函数名称

函数分类

函数功能

举例

Sum([...])

数学

求数组的总和值

Sum([1,2,3]),结果为6

Avg([...])

数学

求数组的平均值

Avg([1,2,3]),结果为2

Min([...])

数学

求数组的最小值

Min([1,2,3]),结果为1

Max([...])

数学

求数组的最大值

Max([1,2,3]),结果为3

Len([...])

通用

求数组的长度

Len([1,2,3,4]),结果为4

Get(json, key)

通用

获取Json内容里面key对应的值

Get('{"age":30, "name":"ironman"}', "name"),结果为"ironman"

If(condition, ifTrue, ifFalse)

通用

用于分支判断

当condition为true时,返回ifTrue的值,否则返回ifFalse的值

If(1<2, 'good', 'bad'),结果为'good'

If(a>b, 'yes', 'no'),则当a>b时返回 'yes', 否则返回'no'

If可以嵌套使用。如If(a>b, If(a-b>2, a-b, a+b), If(a<=b, a*b, a/b))

Exit()

通用

退出分析任务,一般和If结合使用

If(a<0,exit(),'ok')

UUID()

通用

生成一个UUID

UUID()

EventTime()

通用

获取触发分析任务的时间,入参变化的时间或者定时任务时间,非运行分析任务的系统时间

EventTime()

GetAssetId(modelName,staticPropertyName,staticPropertyValue)

通用

获取资产ID,根据模型名称、静态属性名称、静态属性值获取资产ID,只能获取分析任务所在资产树以内的资产ID

GetAssetId('modelName','staticPropertyA','staticValue')

GetLastValue(assetId,propertyName,default)

通用

获取资产属性在分析任务触发之前的上一次值。注意,由于上一次的值可能还未入库,不建议应用在非常频繁变化的属性上

GetLastValue('assetId1','propertyA')

GetLastValueEq(assetId,tagPropertyName,tagPropertyValue,targetPropertyName,default)

通用

获取资产属性在分析任务触发之前的上一次值,并且会根据标签属性和标签属性值对同时刻的目标属性进行过滤。注意,由于上一次的值可能还未入库,不建议应用在变化非常频繁的属性上

GetLastValueEq('assetId1','tagPropertyA','tagPropertyAValue','propertyB')

GetValues(assetId,targetPropertyName,tags,default,from,to,limit)

通用

获取资产属性的多个历史值,返回值数组,支持标签过滤,支持返回默认值,支持设置开始和结束时间,支持限定条数。参数:

assetId:string类型,目标资产ID,必填

targetPropertyName:string类型,目标属性名称,必填

tags:object类型,过滤的标签,最多支持3个,如果无则填写为{},多个标签之间是与的关系,必填

default:object类型,默认值,必填

from:long|string类型,开始时间,可以填写为long类型的毫秒,也可以填写为string类型的时间,格式为yyyy-MM-dd'T'HH:mm:ss.SSS'Z',支持填写为""表示不指定开始时间,必填

to:long|string类型,结束时间,可以填写为long类型的毫秒,也可以填写为string类型的时间,格式为yyyy-MM-dd'T'HH:mm:ss.SSS'Z',支持填写为""表示分析任务触发时间,必填

limit:integer类型,返回条数,范围为(0,20],必填

GetValues('assetId1','propertyA',{'tagPropertyB':123},-1,EventTime()-3600000,EventTime(),5)

GetByIndex(json,index)

通用

根据数组下标获取数组元素

GetByIndex(["a","b"],1)

StateTime(property, state)

时序聚合

求周期内状态的持续时长,单位为毫秒

StateTime(status, 'on'),结果为周期内status的值为on的总持续时间

TS_Sum(property)

时序聚合

求周期内某个属性的总和值

TS_Sum(qps),结果为周期内的总qps值。

sin

数学

求弧度的sin值

sin(3.14/2) = 0.9999996829318346

cos

数学

求弧度的cos值

cos(3.14) = -0.9999987317275395

tan

数学

求弧度的tan值

tan(3.14/4) = 0.9992039901050427

asin

数学

求输入值的asin值

asin(1) = 1.5707963267948966

acos

数学

求输入值的acos值

acos(-1) = 3.141592653589793

atan

数学

求输入值的atan值

atan(1) = 0.7853981633974483

sqrt

数学

求输入值的平方根

sqrt(2) = 1.4142135623730951,sqrt(4) = 2.0

ceil

数学

求大于等于输入值的最小整数

ceil(3.8) = 4.0,ceil(-1.2) = -1.0,ceil(0) = 0.0

floor

数学

求小于等于输入值的最大整数

floor(3.8)=3, floor(-1.2)=-2,floor(0) = 0.0

abs

数学

求输入值的绝对值

abs(1.23) = 1.23, abs(-1.23) = 1.23

log

数学

求输入值的自然对数值

log(2.718) = 0.999896315728952

log10

数学

求输入值以10为底的对数值

log(100) = 2.0

说明

  • 只有当分析任务类型为”聚合计算“时,计算公式中才能使用“时序聚合”类函数

相关文档