我有Apache光束模型来实时处理多个时间序列。部署在GCP DataFlow上,它将多个时间序列组合到窗口中,并计算聚合等。我现在需要对历史数据(相同(多个)时间序列数据)执行相同的操作,直到2017年。如何使用Apache beam来实现这一点?
我知道我需要使用Apache光束的窗口属性来计算聚合等,但它应该接受2年前的数据
实际上,我需要数据,如果我部署了相同的管道两年就会有数据。这是测试/模型训练目的所必需的
发布于 2019-06-21 16:13:58
这听起来像是Beam专注于事件时间处理的一个完美用例。只要事件有时间戳,您就可以针对任何遗留数据运行管道,并获得正确的结果。如果没有额外的上下文,我认为你需要在你的管道中有一个明确的步骤来分配你需要从数据中提取的自定义时间戳(从2017年开始)。要做到这一点,您可能可以使用以下任一方法:
DoFn
;
WithTimestamps
PTransform
;中的
context.outputWithTimestamp()
如果存在时间戳排序问题,则可能需要配置允许的时间戳偏差。
请参见:
outputWithTimestamp
问题:https://beam.apache.org/releases/javadoc/2.13.0/org/apache/beam/sdk/transforms/WithTimestamps.html#of-org.apache.beam.sdk.transforms.SerializableFunction- WithTimestamps
https://stackoverflow.com/questions/56702878
复制