Im Moment speichern ich ~ 300 GB Bilder in Google Cloud-Speicher (GCS). Ich habe eine Software, die auf einer virtuellen Maschine (VM) von Google Compute Engine (GCE) läuft und alle diese Bilder einlesen und sequentiell verarbeiten muss. Diese Bilder müssen nicht in den Speicher geladen werden und können als Eingabe für das Programm gestreamt werden. Ich habe große Schwierigkeiten, einen effizienten Weg zu finden, dies zu tun.Was ist der schnellste Weg, um Daten aus Google Cloud-Speicher zugreifen und es in Software in einer Google Cloud streamen VM
Ich habe versucht:
1) GCSfuse. Mit GCSfuse kann ich den gcs-bucket auf meiner VM mounten und direkt auf die Daten zugreifen. Dies erschien zunächst ideal, aber die I/O ist prohibitiv langsam.
2) GSutil. Dadurch kann ich Daten mit "gsutil cp gs: //my-gcs-bucket/training_data/*.jpg - |" in mein Programm streamen. Dies funktioniert viel besser als GCSfuse, ist aber immer noch ziemlich langsam.
Ich denke, ich habe zwei Hauptfragen. 1) Wie kann ich am schnellsten auf Daten zugreifen, die in einem GCS-Bucket gespeichert sind, und sie als Eingabe für ein Skript auf einer GCE-VM streamen? Ich werde das einmal am Tag machen müssen, aber die Nachfrage könnte sich mit der Zeit erhöhen. 2) Wenn es keinen schnellen und cleveren Weg dafür gibt, welche Alternativen habe ich in Sachen Storage? Sollte ich ein anderes Google Cloud-Produkt verwenden? Ich möchte vermeiden, dass alle Daten direkt auf die VM geladen werden müssen.
Danke!