2017-10-12 1 views
0

Ich habe 800 Millionen Dateien unter gs: /// Pfad/zu /directory/2017-{01..07}* zu löschen, verwenden sie das Multi-ThreadingCloud Storage: Entfernen Sie alle Dateien unter einem Ordner aus einem Bucket gs: // <bucket> /path/to/directory/2017-{01..07}*

$ gsutil -m rm -r gs://<bucket>/path/to/directory/2017-{01..07}* 

laufen sie gsutil -m rm -r gs://<bucket>/path/to/directory/2017-01* gs://<bucket>/path/to/directory/2017-02* gs://<bucket>/path/to/directory/2017-03* ... gs://<bucket>/path/to/directory/2017-07*

erweitern würde unter bash rekursiv löschen, aber es zeigt bei 550/s Löschgeschwindigkeit ; Also, um alle 800 Millionen Dateien zu löschen würde 16 Tage brauchen, ist zu langsam, Wunder gibt es einen schnelleren Weg?

Antwort

1

Sie können die Verarbeitung auf mehrere Maschinen verteilen. Zum Beispiel haben Skripte so

  • machine1 hat gsutil -m rm -r gs://<bucket>/path/to/directory/2017-01*
  • machine2 tut gsutil -m rm -r gs://<bucket>/path/to/directory/2017-02*
  • usw.

Das würde Ihnen ~ 12x Speedup. Sie könnten es noch schneller machen, wenn Sie die zu löschenden Daten auf mehrere Arten zerlegen.

Verwandte Themen