
# 超时插补
**算子简介**
- 名称： 超时插补
- 功能说明： 提供基于时间的数据插补功能。时间支持延迟等待时长，以及指定固定时间点。插补数据为上一条实际数据，但是事件时间为插补计算出的时间。
- 约束： 下游不允许对接数据源及产品过滤算子。
**算子配置**
**基础配置项**
**算子名称：**
- 配置项英文名：name

- 说明： 算子名称，对算子进行个性化的命名，以辅助增加可读性。支持中文、英文、数字、中划线、下划线，长度小于等于64个字符。
- 类型： STRING
- 必选： 否
- 约束： 需要符合正则表达式： \^\[\\u4E00-\\u9FA5A-Za-z0-9_-\]{1,64}$
**分区键：**
- 配置项英文名：keys
- 说明： 分区键，用于作为消息分区/分组的标识，具体填入的内容为消息中获取的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}$
**插补时间类型：**
- 配置项英文名：timeType
- 说明： 插补时间类型，目前支持两种：
  - RELATIVE：相对时间，表示按相对前一条数据偏移时长插补。
  
  - ABSOLUTELY：绝对时间，表示按照固定时间插补。
   
- 类型： STRING
- 必选： 是
- 约束： 仅可填写RELATIVE 或 ABSOLUTELY。
**相对时间插补周期：**
- 配置项英文名：relativePeriod
- 说明： 相对时间插补周期，在插补时间类型为"相对时间"时有效，单位为S。
- 类型： INTEGER
- 必选： 否
- 约束： 最小值0，最大值为2147483647。
**绝对时间插补周期：**
- 配置项英文名：absolutelyPeriod
- 说明： 绝对时间插补周期，参考java或crontab定时器时间表达式，在插补时间类型为"绝对时间"时有效。
- 类型： INTEGER
- 必选： 否
- 约束： 需要符合正则表达式： \^.{1,100}$
**绝对周期的等待时长：**
- 配置项英文名：delay
- 说明： 绝对周期的等待时长，单位秒。即在绝对时间等待一段后再插补消息，避免由于真实消息传送延迟，在插补时间类型为"绝对时间"时有效。
- 类型： INTEGER
- 必选： 否
- 约束： 最小值0，最大值为2147483647。
**存活时长：**
- 配置项英文名：ttlTime
- 说明： 如果一个设备长期没有报消息，pipline要停止上一个上报消息的插补定时器。存活时长的单位为秒，最小清除时间为1s，最大清除时间为30天，如果不设置此参数表示永远不清除。当算子每次接收了消息，更新延长存活时长。
- 类型： INTEGER
- 必选： 否
- 约束： 最小值1，最大值为2592000。
**高级配置项**
**并行数**：
- 配置项英文名：parallelism

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