我是数据流的新手。我在谷歌文档中看到了这个例子。
PCollection<String> items = ...;
PCollection<String> session_windowed_items = items.apply(
Window.<String>into(Sessions.withGapDuration(Duration.standardMinutes(10))));
1)在上面的例子中,dataflow用来创建窗口的关键是什么?
2)如果我的输入源是pubsub,我应该设置任何消息属性,以及如何指定在使用基于会话的窗口时应使用的关键数据流。
答案 0 :(得分:2)
在Window.into
之后的第一个分组操作中将元素分配给会话。无论哪个键影响GroupByKey
,Combine.perKey
,Sum.perKey
,CoGroupByKey
等,操作都将成为分组键。
您无需设置消息属性即可指定密钥。相反,您可以编写ParDo
来将现有元素转换为KV<K, V>
值,并从中派生出密钥。
您可能需要阅读about group-by-key for了解详情。