我是GCP的新手,我想为我的项目创建数据流。长话短说,我的设备将数据发送到Pub / Sub,然后,我想使用ML模型进行预测,然后将所有这些都输出到BigQuery和实时Firebase数据库。我发现了这个article from google(我看过Stream + Micro-batching,但是没有实现)和这个github repository,但是我真的不知道如何运行它,如果有人可以帮我会非常感激的。
使用云功能实现所有这些功能会更容易吗?
答案 0 :(得分:2)
有几种方法可以解决您的用例。
首先,我不确定是否需要数据流。数据流非常适合本文所述的数据转换或数据比较,但是我不确定这是您的用例。如果是这样,这里有几个建议(如果您愿意的话,我们可以深入探讨一个建议)
此解决方案比较便宜,因为您可以按批处理消息(处理时间效率更高),并且可以将加载作业执行到BigQuery中(与流传输相比是免费的)。但是,它不可扩展,因为您在触发加载作业之前将数据保留在内存中。如果数据越来越多,则可以达到Cloud Run或Cloud Function 2Gb的内存限制。不能选择增加调度程序的频率,因为您每天有1000个负载作业的配额(1天= 1440分钟->因此,不可能每分钟)。
此解决方案具有高度的可扩展性,并且是最昂贵的解决方案。我建议您使用Cloud Run,它可以同时处理多个消息,从而减少可计费实例的处理时间。 (我写了an article on this)
最终,如果您不必尽快处理消息,则最好的选择是同时执行这两种操作:调度微批处理以拉出pubsub pull订阅。为每条消息执行预测,并将流写入BigQuery(以防止内存溢出)。
如果您确实需要在流程中使用Dataflow,请描述更多您想要实现的目标以获得更好的建议。
无论如何,我都同意@JohnHanley的评论,请执行Qwiklabs以了解如何使用该平台!