【问题标题】:Dataflow - State persistence database数据流 - 状态持久性数据库
【发布时间】:2021-12-23 01:01:55
【问题描述】:

我们正在考虑使用 Beam/Dataflow 进行状态处理:

  • 在全局窗口上实时聚合指标(每 1 分钟)
  • 大量并行会话 (> 1 mio) 的实时聚合

示例:自在门户网站上注册后,每 1 个 mio 客户可获得最高价格文章

此外,我们还希望在不干扰实时作业的情况下访问这些计算出的聚合。

设计问题:它是否可以被当前状态后端覆盖 - Windmill/Persistent Disks [1] - 还是使用数据库(如 BigTable)更合适?

谢谢!

[1]Dataflow - State persistence?

【问题讨论】:

  • 如果您需要对存储层进行此类控制,那么数据流现在可能是合适的产品。在 stackex 中询问时,我建议还解释上下文(为什么您需要在管道上满足饱和度?为什么需要在存储层上进行控制?)。这将避免XY problem。您已经问了 4 个关于在标准 Beam 之外做事的问题,所以也许您应该解释一下您面临的限制,以便获得更好的答案。
  • 已重构问题以阐明要求。
  • 对于设计和架构方面的疑问,由于没有相关的代码疑问(检查Help Centre "What's on Topic"),StackOverflow 不是最好的提问地方。请尝试在 Software Engineering Stack Exchange 上提问。

标签: google-cloud-platform cloud persistence google-cloud-dataflow google-cloud-bigtable


【解决方案1】:

其实可以在Dataflow中定义Big Table connectors来进行读写操作。 此外,Dialogflow API 的project.jobs.get method 会返回一个instance of a job,它是一个包含“currentState”字段的json 响应。 因此,我认为您可以构建一种自动化脚本来获取此字段值,然后使用 Big Table 连接器将其存储在 Big Table 数据库中,但这是一个非常复杂的解决方案,我不确定它是否方便。

【讨论】:

  • 仍然需要手工制作,但到目前为止唯一(可行的)答案!如果您有使用这种方法的具体示例,很高兴听到更多信息。
猜你喜欢
  • 2021-12-18
  • 2021-12-18
  • 2016-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多