如何从Dataflow中的第一个滑动窗口中丢弃数据?

时间:2017-01-03 20:03:10

标签: google-cloud-dataflow

我想在管道执行开始时识别并丢弃不完整的窗口(独立于滑动)。例如:

如果我每小时计算一次事件的数量,并且从一小时55点开始计算,那么我应该期望在第一个窗口中的值为1/12,然后平滑地增加到“正确”的平均值

1 个答案:

答案 0 :(得分:3)

由于数据可能以用户定义的方式任意延迟,因此启动管道的时间和保证丢失数据的窗口可能只是松散连接。

你需要一些带外方式来指示它们是哪个窗口。如果我正在实施这样的事情,我会考虑一些方法,按照这个顺序我想:

  • 根据数据点不足丢弃异常值。如果您的数据集能够容忍它(统计学家可能不同意),那么它似乎对于大量数据问题是健壮的。
  • 根据未在窗口中分发的数据点丢弃异常值(同上)
  • 根据结果的某些特征而不是输入来丢弃异常值(统计学家更可能会说不要这样做,因为你已经是平均值)
  • 使用自定义管道选项指示感兴趣窗口的最小开始/结束时间。

选择比“开始时间”更强大的方法的一个原因是数据生产者或任何中间系统等的停机时间(即使有交付保证,水印可能已经移动并完成所有这些数据可丢弃)。