Google cloud dataflow 将数据转换为子事件

Google cloud dataflow 将数据转换为子事件,google-cloud-dataflow,google-cloud-pubsub,Google Cloud Dataflow,Google Cloud Pubsub,我有一个数据流管道,收集用户数据,如导航、购买、crud操作等。我需要能够实时识别模式,然后发送其他服务可以收听的pubsub事件,以便向用户提供实时提示、优惠或促销 我正在考虑开始按用户id对事件进行分组,然后如果匹配模式,则创建一个包含需要通过pubsub触发的事件名称的PCollection 这是正确的方法吗?有更好的方法吗?对于某些用例,这个肯定能起作用 如果您与一起使用(在每个元素到达时触发)。每次新元素到达时,您都可以获得标识模式所需的所有数据 但是,根据推送用户数据的速率和会话的大

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

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


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

对于某些用例,这个肯定能起作用

如果您与一起使用(在每个元素到达时触发)。每次新元素到达时,您都可以获得标识模式所需的所有数据

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

有时,您最好为每个用户保留一个状态(无需为此会话对用户的所有数据重新进行模式匹配)。使用状态实际上可以消除使用窗口的需要。 新流程现在看起来如下所示:

对于到达的每个元素:

  • 获取当前状态

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

  • 如果需要,向PubSub发送消息


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

    是的,会话窗口将保存大量数据,反复运行相同的模式可能非常昂贵。。。对于从BigTable或数据存储获取状态,我担心速度,但我认为值得检查。BigTable可以扩展。当所有操作都在同一云区内完成时,一位数毫秒的响应时间是正常的。也有批量操作来提高吞吐量。我们可以在您有空的时候讨论所有这些。您还没有玩过Bigtable。我要试一试。我想与您讨论一下。请随时访问google cloud bigtable讨论google group,如中所述: