要问我的问题,我首先必须向您展示我的数据以及对双关键问题的建议解决方案:
数据具有2个键x和y中的1个。有时x有时是压力的。一种类型的事件都有两个。
- 类型1:键x和y
- 类型2:键x
- 类型3:键y
要在管道结束时进行完整会话,我们需要一个密钥下的所有数据:x y。
为了实现这一目标,我用键和键将消息复制为x,另一个用y复制消息。然后在以下处理器中i富集x和y。
每条消息看起来像这样:[flink键,势X,电位,其余的味精...
管道
这是我的场景:我有一个紧密的会话消息这是类型2。这将传播到密钥X处理器。这里它将被丰富,我们可以关闭适当的其余管道中的处理器。但是关键是从不驱逐,因为它永远不会结束会议消息。
关闭味精流
现在有一个问题:如何关闭Y处理器中的状态?
最初,我想在浓度中复制2型MSG,并为其进行侧视,在钥匙比之前抓取该侧面图,因此将其转到正确的处理器。这是不可能的,因为只能在其创建的处理器之后使用sendOutput。然后我发现了一些关于侧输入的Jira票,但这似乎还不是实际功能。
最后,我认为我可能会为上面提到的侧面输出做一个接收器,而在钥匙比进行了一个源。这似乎有点hack。
我真的希望有人能提供帮助!
编辑:
添加新图,以尝试阐明原始流程。在原始图纸中,我试图通过为富集处理器制作2个框来使数据流更加容易理解。我试图通过此新图纸使流程更正确:
改进的图纸
遵循有点复杂,但是我在尝试通过Web日志中登录的会话来统一登录的会话之前已经看到了此模式。如果我足够了解细节,我认为您可以从X处理器中输入侧输出,然后将其输入Y处理器,例如:
+------------+ +-------+
| +--------------------------> |
+--------+ +-------+ X | X proc | | |
| | | +-----> | sideout +-----------+ | X + Y |
| | | | | +---------> | | |
| source +-----> split | +------------+ | +----> |
| | | | | Y proc | +-------+
| | | +----------------------------> |
+--------+ +-------+ Y +-----------+