使用 Google DataFlow/Apache Beam 并行化图像处理或爬行任务是否有意义?

kpa*_*pax 5 amazon-data-pipeline google-cloud-platform google-cloud-dataflow azure-data-factory apache-beam

我正在考虑将 Google DataFlow 作为运行管道的选项,该管道涉及以下步骤:

  1. 从网络下载图像;
  2. 处理图像。

我喜欢 DataFlow 管理完成工作所需的虚拟机的生命周期,因此我不需要自己启动或停止它们,但我遇到的所有示例都使用它来执行数据挖掘类型的任务。我想知道对于图像处理和爬行等其他批处理任务来说,这是否是一个可行的选择。

Pab*_*blo 3

此用例是 Dataflow/Beam 的可能应用程序。

如果您想以流式传输方式执行此操作,您可以让爬虫生成 URL 并将它们添加到 PubSub 或 Kafka 队列中;并编写一个 Beam 管道来执行以下操作:

  1. 从 PubSub 读取
  2. 在 ParDo 中下载网站内容
  3. 在另一个 ParDo* 中解析网站中的图像 URL
  4. 下载每个图像并再次使用 ParDo 对其进行处理
  5. 根据您想要从图像中获取哪些信息,将结果存储在 GCS、BigQuery 或其他中。

您可以对批处理作业执行相同的操作,只需更改从中读取 URL 的源即可。

*解析这些图像 URL 后,您可能还需要重新整理数据,以获得一些并行性。