配置超时插值

超时插值节点的作用是在数据上报产生中断时,通过固定的策略进行补值,防止数据出现中断,可用在后续数据处理对数据连续性有强要求的场景中。

应用场景

某恒温箱上的温度传感器特点是数据上报不规律,只有检测到温度值出现波动时,才会将变化后的数值进行上报,如果没有上报,默认是当前数据没有发生变化。现在需要对该传感器数据进行分钟级的数据监控,您可以使用超时插值节点进行实现。

前提条件

已配置数据计算的表达式或数据过滤的筛选器,具体操作,请参见配置数据计算和数据过滤

背景信息

操作步骤

  1. 进入数据解析工作台

  2. 在中间画布单击当前节点后的添加image图标。

  3. 在弹出的节点列表中单击超时插值节点。

  4. 在画布中单击超时插值节点,在右侧配置面板,参照下表,配置超时插值。

    配置项

    参数

    说明

    示例

    基础配置

    插补时间类型

    可设置为:

    • 相对时间:相对数据解析任务启动时间的间隔,以该固定间隔时长进行补插,需设置相对时间补差周期,可选10s15s30s1min5min15min30min

    • 绝对时间:用Java(Quartz)标准的Crontab表达式表示绝对时间,在该时间点上进行补插,需设置绝对时间补差周期,设置方法,请参见附录:Crontab表达式

    以“应用场景”的示例为例:需要分钟级的数据监控,可选择两种插补时间类型。

    • 相对时间:选择相对时间补差周期1min

    • 绝对时间:配置Crontab表达式为0 */1 * * * ?

    插补数据类型

    可选:

    • 上一条真实数据:使用上一条真实数据进行超时插补。

    • 预设数据:用固定的补插数据来进行超时插补,消息体内容为JSON格式数据。

    以“应用场景”的示例为例:选择上一条真实数据

    高级配置

    消息分区键

    可选,定义超时插值的维度,常用于区分不同设备间的消息。

    不设置时,物联网平台系统会默认将ProductKeyDeviceName作为消息分区键。

    以“应用场景”的示例为例:使用恒温箱的标识ID(boxId)字段作为消息分区键。

    延迟容忍

    单位为秒。等待一段后再插补消息,避免真实消息传送延迟导致的多余插值。

    使用默认值。

    存活时长

    单位为秒。如果一个Topic长期没有上报消息,需要停止插值,避免资源浪费,最小清除时间为1分钟,最大清除时间为7天。默认为1天,当节点每次接收了消息,更新存活时长。

    使用默认值。

    下面为以“应用场景”为例的一个具体配置:

    image
  5. 单击数据解析工作台右上角的保存,完成超时插值节点的配置。

    重要

    该节点的输出字段为上一节点的输出字段。

后续操作

配置完相邻消息计算节点后,您可以继续配置其他处理节点,也可以配置目标节点完成整个解析任务配置。

附录:Crontab表达式

Java(Quartz)标准的Crontab表达式含义如下:

例子:
    # 每月的最后1天
    @Scheduled(cron = "0 0 18 * * ?")
    public void doAtLastDayOfMonth() {
        // do something here...
    }

    说明:
    Java(Quartz)
    *    *    *    *    *    *    *
    -    -    -    -    -    -    -
    |    |    |    |    |    |    |
    |    |    |    |    |    |    + year [optional]
    |    |    |    |    |    +----- day of week (1 - 7) SUN,MON,TUE,WED,THU,FRI,SAT
    |    |    |    |    +---------- month (1 - 12) OR JAN,FEB,MAR,APR ...
    |    |    |    +--------------- day of month (1 - 31)
    |    |    +-------------------- hour (0 - 23)
    |    +------------------------- min (0 - 59)
    +------------------------------ second (0 - 59)

字段

是否必填

取值范围(整型)

允许的特殊字符

second

0~59。

  • 星号(*):通配符,表示匹配条件的所有取值。

    例如在hour字段上使用:

    • 0 0 * * * ?指所有,表示每小时的0分0秒。

    • 0 */5 * * * ?*/5指能被5整除的分钟数,表示每5分钟一次。

  • 英文逗号(,):用于分隔列表。

    例如在min字段上使用0,5,100 0,10 * * * ?表示每个小时的第0分钟、第5分钟和第10分钟。

  • 短划线(-):用于定义范围。

    例如在min字段上使用1-30 1-3 * * * ?表示每小时的第1到3分钟。

  • 正斜线(/):表示以固定频率递增时间。

    例如在min字段上使用:

    • 0/15表示从0开始,每隔15分钟一次。

    • 3/20表示从第3分钟开始,每隔20分钟一次。

    • 0 */1 * * * ?,表示每分钟一次。

min

0~59。

hour

0~23。

day of month

1~31。

  • 星号(*)。

  • 半角问号(?):表示没有指定值。适用于指定一个或者两个字段的值而不需要对其他字段进行设置的场景。

month

1~12或者JAN~DEC(1月至12月的英语单词简写,取前三个英文字母大写)。

对应关系:1(JAN)、2(FEB)、3(MAR)、4(APR)、5(MAY)、6(JUN)、7(JUL)、8(AUG)、9(SEP)、10(OCT)、11(NOV)、12(DEC)。

星号(*)。

day of week

0~7或者SUN~SAT(星期一至星期天的英语单词简写,取前三个英文字母大写)。

对应关系:0(SUN)、1(MON)、2(TUE)、3(WED)、4(THU)、5(FRI)、6(SAT)、7(SUN)。

星号(*)、半角问号(?)。

year

1970~2099。

星号(*)。