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

相邻消息计算

算子简介

  • 名称:相邻消息计算
  • 功能说明:基于前一消息和当前消息,按照表达式进行数值计算,计算的结果赋值给当前输入消息的属性。

    举例:消息中有上报机器的产品总产量,但没有相对上一个上报周期的增量产量。通过相邻消息计算算子,可以用本消息中的产品总量减去上一个消息中的产品总产量,得到的计算结果赋予一个新的属性,比如产品增量。那么经过本算子清洗后的消息中,都将携带产品增量属性了。

  • 约束:下游不允许对接数据源及产品过滤算子。

算子配置

基础配置项

算子名称:

  • 配置项英文名:name
  • 说明:算子名称,对算子进行个性化的命名,以辅助增加可读性。支持中文、英文、数字、中划线、下划线,长度小于等于64个字符。
  • 类型:STRING
  • 必选:否
  • 约束:需要符合正则表达式: ^[\u4E00-\u9FA5A-Za-z0-9_-]{1,64}$

分区键:

  • 配置项英文名:partitionKeys
  • 说明:分区键,用于作为消息分区/分组的标识,具体填入的内容为消息中获取的JSON Path,比如可以选择消息中设备ID所在的JSON Path。 设置后,拥有该分区键数值相同的所有消息会进入一个分区,比如分区键选择了设备ID后,那么相同设备ID的消息进入一个分区。当选择多个字段时,按指定字段顺序组合成的字符作为算子并行处理的分区的Key。相邻消息计算会针对每个分区中的消息单独作用;举例:1)选择将设备ID作为分区键,那么本算子会将相同设备ID的消息进行分区,然后进行相邻消息计算。比如设备ID为1的所有消息会进入一个分区,设备ID为2的所有消息会进入另一个分区,计算策略会审视每一个分区中的消息进行单独相邻消息计算; 2)选择消息中的设备ID与设备状态为分区键,那么相同设备ID与设备状态的消息会进入一个分区,然后进行单独的相邻计算。比如设备ID为1、设备状态为正常的所有消息会进入一个分区,设备ID为1、设备状态为异常的所有消息进入另一个分区,计算策略会审视每一个分区中的消息进行相邻消息计算。
  • 类型:STRING
  • 必选:是
  • 约束:需要符合正则表达式: ^.{1,1000}$

前一变量:

  • 配置项英文名:previousVariables
  • 说明:前一变量,把前一条消息中的属性作为变量在表达式中使用。对变量进行定义,设置变量名称和变量的取值。
  • 必选:是
  • 子配置项:前一变量包括如下子配置项:变量名称、变量取值。

变量名称:

  • 配置项英文名:variable
  • 说明:变量名称,用户可自定义一个变量名称,计算时使用,以免以配置计算表达式时使用jsonPath。
  • 类型:STRING
  • 必选:是
  • 约束:需要符合正则表达式: ^[a-zA-Z]\w{0,20}$

变量取值:

  • 配置项英文名:value
  • 说明:取值内容,以JSON Path格式来指定变量从消息中指定的JSON Path属性获取的取值。
  • 类型:STRING
  • 必选:是
  • 约束:需要符合正则表达式: ^.{0,1000}$

当前变量:

  • 配置项英文名:variables
  • 说明:当前变量,把输入消息中的属性作为变量在表达式中使用。对变量进行定义,设置变量名称和变量的取值。
  • 必选:是
  • 子配置项:variables包括如下子配置项:变量名称、变量取值。

变量名称:

  • 配置项英文名:variable
  • 说明:变量名称,用户可自定义一个变量名称,计算时使用,以免以配置计算表达式时使用jsonPath。
  • 类型:STRING
  • 必选:是
  • 约束:需要符合正则表达式: ^[a-zA-Z]\w{0,20}$

变量取值:

  • 配置项英文名:value
  • 说明:取值内容,以JSON Path格式来指定变量从消息中指定的JSON Path属性获取的取值。
  • 类型:STRING
  • 必选:是
  • 约束:需要符合正则表达式: ^.{0,1000}$

计算表达式:

  • 配置项英文名:calculates
  • 说明:以表达式来计算属性的值。
  • 必选:是
  • 子配置项:计算配置包括如下子配置项:属性、表达式。

属性:

  • 配置项英文名:property
  • 说明:属性名,表达式计算结果赋值给此属性,属性以JSON Path格式来表示,请填写JSON Path。。
  • 类型:STRING
  • 必选:是
  • 约束:需要符合正则表达式: ^.{1,1000}$

表达式:

  • 配置项英文名:expression
  • 说明:计算表达式,支持的表达式详细说明请参考:表达式说明
  • 类型:STRING
  • 必选:是
  • 约束:需要符合正则表达式: ^.{0,1000}$

存活时长:

  • 配置项英文名:ttl
  • 说明:存活时长,配置前一变量的存活时长。如果超过此时长没有接收到新的消息更新前一变量取值,则前一变量将被老化清除。存活时长的单位为秒,最小清除时间为1s,最大清除时间为30天,如果不设置此参数表示永远不清除。当算子每次接收了消息,更新延长存活时长。
  • 类型:INTEGER
  • 必选:否
  • 约束:最小值1, 最大值 2592000,即30天。

使用输出:

  • 配置项英文名:usingOutput
  • 说明:使用输出,是以算子计算的输出消息来获取前一变量,还是算子输入的原始消息来获取前一变量。通过该参数的设置,实际控制了上一条消息的缓存策略,即缓存上一条消息的原始状态,还是缓存上一条消息经过相邻计算算子处理后的状态,默认为以算子计算更新后的输出消息来获取前一变量。算子输出消息会被表达式修改,会影响前一变量的取值。
  • 类型:STRING
  • 必选:否,默认为TRUE
  • 约束:仅可填写TRUE 或 FALSE

高级配置项

并行数

  • 配置项英文名:parallelism
  • 说明:并行数,指定算子执行时的并行任务个数。对于性能要求越高的算子,可以设置较高的并行数,但是占用资源越多。如果此参数不设置,那么作业运行时本算子使用作业的并行数设置。
  • 类型:INTEGER
  • 必选:否
  • 约束:最小值1,最大值 1024。

相关文档