所有文档

          规则引擎 Rule Engine

          SQL手册

          规则引擎的SELECT子句和WHERE子句语法总体上遵守SQL92标准,因此标准操作符、标量函数均可以使用。

          下面重点介绍在物联网场景下常用的语法和函数。

          常用语法

          规则引擎的SQL语法对JSON数据做了特殊的优化,以方便选择字段,或者构造期望的结果消息。下面是几种常用的语法举例。

          输入消息 SELECT子句 结果消息 备注
          {"a":"b", "c":7} * {"a":"b", "c":7} 选择所有的字段
          {"a":"b", "c":7} c {"c":7} 选择一个字段
          {"c": { "d": 9 }} c.d {"c": {"d": 9}} 选择嵌套字段
          {"a":"b", "c":7} a AS a1 {"a1":"b"} 重命名一个字段
          {"c": { "d": 9 }} c.d AS e.f {"e": { "f": 9 }} 选择嵌套字段,并且存入另外一个嵌套字段
          {} 'abc' AS d {"d":"abc"} 插入一个字符常量字段
          {} 'abc' AS d.e {"d": { "e": "abc" }} 插入一个字符常量到一个嵌套字段
          {"a":"b", "c":7} * AS d {"d":{"a":"b", "c":7}} 将所有字段嵌套到名为d的对象下面

          常用函数

          下面是常用函数,及其用途和示例

          函数 用途 示例
          CURRENT_TIMESTAMP 取系统当前时间 CURRENT_TIMESTAMP
          extract 提取时间戳各字段 extract(epoch FROM CURRENT_TIMESTAMP)
          substring 取字符串子串 substring(str, 1, 10)
          position 取子串在字符串中的位置 position('ab' IN '111ab')
          CHAR_LENGTH 求字符串长度 CHAR_LENGTH(deviceid)
          || 字符串串联 'devices/' || deviceid
          abs 求绝对值 abs(data)
          floor 向下取整 floor(temperature)
          ceil 向上取整 ceil(temperature)
          power 乘幂 power(a, 2)
          exp 对e取幂 exp(3)
          sqrt 求平方根 sqrt(a)
          mod 取模 mod(10, 8)
          nullif 如果两个参数相同返回null,否则返回参数一 nullif(a, b)
          coalesce 返回第一个不为null的参数,否则返回null coalesce(a, b)

          新增函数

          为了方便某些物联网特定的操作,新增了如下函数。

          函数 用途 示例
          topic 取输入消息的物接入主题 topic()
          clientid 取输入消息发送方的clientid clientid()
          clientip 取输入消息发送发的ip clientip()
          qos 取输入消息发送时的QoS qos()
          NEWID 生成一个uuid NEWID()
          hex2dec 将HEX STRING格式数据转化成整数 hex2dec('0f'), 返回15
          lookup_num 读取规则字典,返回一个数值类型 lookup_num('car001.speed')
          lookup_str 读取规则字典,返回一个字符串类型 lookup_str('car001.info.imei')
          lookup_obj 读取规则字典,返回一个JSON对象 lookup_obj('car001.info')

          常用操作符

          +,-,*,/,<,>,<>,>=,<=,and,or,in,like,case when
          上一篇
          数据目的地
          下一篇
          规则字典