数据连接与集成管道构建器Pipeline outputs重大更改

注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。

重大更改

当有状态的函数在流式或增量管道中被修改时,会发生重大更改。变换分为行级或有状态。

  • 行级变换: 仅需单行数据即可产生结果,例如 Multiply numbers筛选
  • 有状态函数: 需要跨多行数据产生结果的变换。

主要有四种有状态函数:

  • 聚合(流式中的窗口聚合)
  • 外部缓存合并(仅在流式中)
  • 心跳检测(仅在流式中)
  • 时间界定的去重(仅在流式中)
  • 时间界定的事件时间排序(仅在流式中)

当有状态函数被修改时,之前的输出可能不再准确。例如,假设您正在筛选偶数并对该集合求和。如果您将筛选更改为所有奇数,现有状态将是偶数的和,但所有新筛选的值将是奇数。因此,和所代表的内容现在变得模糊不清,是一组偶数的和加上一组奇数的和。要刷新状态,您可以运行一个 重放

重放有两种类型:

  • 从输入数据起始重放: 从数据起始重放您的管道,无论是流的起始还是输入数据集上的第一次事务,由输入是流还是增量数据集决定。

部署面板显示从输入数据起始重放的策略。

  • 从之前的时间量重放(仅适用于流式): 使用从指定时间量之前开始的上游数据重放管道。细粒度重放将包括从指定时间之前提交的第一次事务开始的所有数据,之前的所有数据都不会被处理。这意味着您可能会获得指定时间之前一次事务的数据量。

部署面板显示从之前的时间量重放的策略。

重放可以是非必填或必需的;在重大更改的情况下,Pipeline Builder会自动检测到此更改,并在部署时要求重放。下图显示了在增量管道中强制重放的情况。

由于重大更改而强制重放的部署面板。

重放您的管道可能导致较长的停机时间,可能长达数天。当您重放管道时,您的流历史将丢失,所有下游管道使用者将被要求重放。