2016-06-22 17 views
0

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!

Antwort

0

gsutil sollte der schnellste Weg sein, Artikel aus Google Cloud-Speicher zu holen. GCS sollte im Allgemeinen einen ziemlich hohen Durchsatz erzielen, allerdings mit einer langen Latenzzeit bis zum ersten Byte.

Wenn Sie eine große Anzahl von kleinen Dateien haben (JPEG-Trainingsdaten fallen wahrscheinlich in diese Kategorie), können Sie sie in ein größeres Archiv zappen.

Wenn das für Sie nicht funktioniert und alle Ihre Dateien weniger als 1 MB groß sind, können Sie Google Cloud Datastore verwenden, der teurer ist, aber eine viel geringere Latenzzeit.