将数据转换为pubsub事件

时间:2016-08-25 08:47:04

标签: google-cloud-dataflow google-cloud-pubsub

我有一个数据流管道,用于收集用户数据,如导航,购买,crud操作等。我有这个要求,能够实时识别模式,然后调度其他服务可以监听的pubsub事件,以便为用户提供实时提示,优惠或促销。

我正在考虑按用户ID开始对事件进行分组,然后匹配模式以创建包含需要通过pubsub触发的事件名称的PCollection。

这是正确的做法吗?还有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

对于某些用例,肯定可以正常工作

如果您将session based windowingearly firings结合使用(在每个元素到达时触发)。每次新元素到达时,您都可以拥有识别模式所需的所有数据。

但是,根据推送的用户数据的速率和会话的大小,这可能会导致在PCollection中保留大量数据并重复此模式匹配很多(在相同的数据),因为您必须重用会话中的所有数据。此外,您不能使用在此会话之前到达的元素

有时候,您可能会通过为每个用户保持状态来做得更好(无需为此会话重做用户所有数据上的模式匹配)。事实上,使用状态会消除使用窗口的需要。 新流程现在看起来像这样:

对于到达的每个元素:

  1. 获取当前状态

  2. 计算新状态(基于旧状态和新元素)

  3. 如果需要,请向PubSub发送消息。

  4. 要保持您的状态,您可以使用 BigTable 数据存储区