/ / Ha senso usare GoogleDataFlow / Apache Beam per parallelizzare l'elaborazione delle immagini o le attività di scansione? - google-cloud-platform, google-cloud-dataflow, azure-data-factory, amazon-data-pipeline, apache-beam

Ha senso usare Google DataFlow / ApacheBeam per parallelizzare l'elaborazione delle immagini o le attività di scansione? - google-cloud-platform, google-cloud-dataflow, azure-data-factory, amazon-data-pipeline, apache-beam

Sto considerando Google DataFlow come opzione per l'esecuzione di una pipeline che prevede passaggi come:

  1. Download di immagini dal web;
  2. Elaborazione di immagini.

Mi piace che DataFlow gestisca la durata delle VMrichiesto per completare il lavoro, quindi non ho bisogno di avviarlo o fermarlo da solo, ma tutti gli esempi che ho trovato lo usano per il tipo di attività di data mining. Mi chiedo se sia una valida opzione per altre attività batch come l'elaborazione delle immagini e strisciando.

risposte:

3 per risposta № 1

Questo caso d'uso è una possibile applicazione per Dataflow / Beam.

Se vuoi farlo in streaming, potresti avere un crawler che genera URL e li aggiunge a una coda PubSub o Kafka; e codificare una pipeline di Beam per eseguire quanto segue:

  1. Leggi da PubSub
  2. Scarica il contenuto del sito web in un ParDo
  3. Analizzare gli URL di immagini dal sito Web in un altro ParDo *
  4. Scarica ogni immagine ed elaborala, sempre con un ParDo
  5. Memorizza il risultato in GCS, BigQuery o altri, a seconda di quali informazioni desideri dall'immagine.

Puoi fare lo stesso con un lavoro batch, cambiando semplicemente la fonte di cui stai leggendo gli URL.

* Dopo aver analizzato questi URL immagine, potresti anche voler rimescolare i tuoi dati, per ottenere un certo parallelismo.