【问题标题】:GCP - Creating a Dataflow (Pub/Sub -> prediction(ML model) -> BigQuery/Firebase)GCP - 创建数据流(Pub/Sub -> 预测(ML 模型)-> BigQuery/Firebase)
【发布时间】:2020-03-21 01:28:07
【问题描述】:

我是 GCP 的新手,我想为我的项目创建一个数据流。长话短说,我的设备将数据发送到 Pub/Sub,然后,我想使用 ML 模型进行预测,然后将所有这些输出到 BigQuery 和实时 firebase 数据库。我找到了这个article from google(我查看了Stream + Micro-batching,但没有实现它)和这个github repository,但我真的不知道如何运行它,如果有人可以帮我一把,我将非常感激.

使用云功能实现所有这些会更容易吗?

【问题讨论】:

  • 您的问题似乎很笼统,要获得有意义的帮助,您必须更加具体。你说你“未能实现[原文如此]”。什么失败了?您收到任何错误消息吗?你说“你不知道如何运行它”。您尝试过什么但没有成功?
  • 有几种方法可以解决您的用例。你的预测需要多长时间?快吗?微批处理是必需的吗?流量是多少(每秒查询次数)?
  • @KamalAboul-Hosn 据我了解,这个脚本 [github.com/GoogleCloudPlatform/training-data-analyst/blob/… 创建了一个数据流,但我不知道如何使用它。你能告诉我如何使用这个脚本吗?
  • @guillaumeblaquiere 预测不需要那么多时间。微批处理不是必需的,但从我读到的内容来看,考虑到我每 2 秒会收到 1 个查询之类的东西,它会更好。
  • 我看到你们对 GCP 有很多经验。我正在尝试从 Qwiklabs 学习 gcp,如果您听说过,您会推荐吗?或者有什么好的学习方法?

标签: machine-learning google-cloud-platform google-bigquery google-cloud-pubsub dataflow


【解决方案1】:

有几种方法可以解决您的用例。

首先,我不确定是否需要 Dataflow。如文章中所述,数据流非常适合数据转换或数据比较,但我不确定这是您的用例。如果是这样,这里有几个建议(如果你愿意,我们可以挖掘一个)

  • 较便宜的是不可扩展的:在您的 PubSub 主题上设置请求订阅。然后,设置每 2 分钟调用一次 HTTP 服务(如 Cloud Function 或 Cloud Run)的 Cloud Scheduler。 HTTP 服务将拉取订阅。对于每条消息,它执行一个预测并将结果存储在内存中(在一个数组中)。处理完所有消息后,您可以在 BigQuery 中执行加载作业(或在 Datastore 中批量插入)。

此解决方案更便宜,因为您通过微批量处理消息(处理时间更高效),并且您在 BigQuery 中执行加载作业(与流式传输相比是免费的)。但是,它不可扩展,因为您在触发加载作业之前将数据保存在内存中。如果数据越来越多,可以达到 Cloud Run 或 Cloud Function 的 2Gb 内存限制。增加调度程序频率不是一种选择,因为您每天有 1000 个加载作业的配额(1 天 = 1440 分钟 -> 因此,每分钟都是不可能的)。

  • 更简单的是最昂贵的:在您的 pubSub 上插入 HTTP 服务(Cloud Run 或 Cloud Function -> Cloud Run 仅适用于推送订阅,Cloud Function 适用于拉取和推送订阅)。在每条消息上,都会调用 HTTP 服务并执行预测,然后将流式写入 BigQuery

此解决方案具有高度可扩展性,也是最昂贵的解决方案。我推荐你 Cloud Run 允许同时处理多个消息,从而减少计费实例处理时间。 (我写了an article on this

最终,如果您不必尽快处理消息,最好的选择是同时执行这两种操作:调度微批处理来拉取 pubsub 拉取订阅。对每条消息执行预测并将流写入 BigQuery(以防止内存溢出)。

如果您确实需要在流程中使用 Dataflow,请详细描述您想要达到的目标以获得更好的建议。

无论如何,我同意@JohnHanley 的评论,执行 Qwiklabs 以了解您可以使用该平台做什么!

【讨论】:

  • 哦,谢谢。我将尝试使用 Cloud Run 的方法,我将返回结果。
猜你喜欢
  • 2019-07-03
  • 2019-10-03
  • 2021-04-26
  • 1970-01-01
  • 2018-02-15
  • 2017-07-21
  • 2022-01-13
  • 2020-12-16
  • 2017-05-10
相关资源
最近更新 更多