问候开发者,
我知道数据流(DF)可以从I / O(如Pubsub)获取事件时间,我也可以分配"事件时间"数据。但是,我可以从数据中获取此属性值吗?
根据我的理解,我可以从数据中获取输入时间戳(处理时间),但不是事件时间。
感谢您的帮助:D
答案 0 :(得分:1)
要获取DoFn中元素的时间戳,可以调用ProcessContext.timestamp()。要根据您自己的应用程序逻辑设置元素的时间戳,可以使用Context.outputWithTimestamp()。
像这样:
@Override
public void processElement(ProcessContext c) {
// Generate a timestamp that falls somewhere in two hours after the event time.
long randMillis = (long) (Math.random() * Duration.standardHours(2).getMillis());
Instant randomTimestamp = c.timestamp().plus(randMillis);
c.outputWithTimestamp(c.element(), new Instant(randomTimestamp));
}