0

Ich möchte große Daten in die Cloud Spanner-Tabelle von Google einfügen.Einfügen großer Daten in Cloud Spanner Tabelle

Dies ist, was ich mit der node.js App mache, aber es stoppt, weil die TXT-Datei zu groß ist (fast 2 GB).

1.Laden txt-Datei

2.read Zeile für Zeile

3.split die Linie durch "|"

4.build Datenobjekt

5.Insert Daten Wolke Spanner Tabelle

Mysql Dateneinfügung mit SQL-Datei unterstützt. Unterstützt Cloud Spanner auch verschiedene Möglichkeiten?

Antwort

1

Cloud Spanner stellt derzeit keine Massenimportmethode zur Verfügung. Es klingt, als ob Sie planen, jede Zeile einzeln einzufügen, was nicht die optimale Methode ist. Die Dokumentation hat beste (und schlechten) Praktiken für efficient bulk loading:

optimale Schreibdurchsatz für Großlasten zu erhalten, Ihre Daten durch Primärschlüssel mit diesem Muster partitionieren:

Jede Partition eine Reihe von aufeinander folgenden Zeilen enthält . Jedes Commit enthält Daten für nur eine einzelne Partition. Eine gute Faustregel für Ihre Anzahl von Partitionen ist 10 Mal die Anzahl der Knoten in Ihrer Cloud Spanner-Instanz. Wenn Sie also N Knoten mit insgesamt 10 * N Partitionen haben, können Sie den Partitionen Zeilen zuweisen nach:

Sortieren der Daten nach Primärschlüssel. Aufteilen in 10 * N separate Abschnitte. Erstellen einer Reihe von Worker-Aufgaben, mit denen die Daten hochgeladen werden. Jeder Worker schreibt auf eine einzelne Partition. In der Partition wird empfohlen, dass Ihr Worker die Zeilen sequenziell schreibt. Jedoch Schreiben von Daten nach dem Zufallsprinzip innerhalb einer Partition sollte auch vernünftigen hohen Durchsatz bieten.

Wenn mehr Daten hochgeladen werden, teilt Cloud Spanner automatisch und gleicht Ihre Daten so aus, dass die Auslastung der Knoten in Ihrer Instanz ausgeglichen wird. Während dieses Vorgangs können vorübergehende Stürze in Durchsatz auftreten.

Nach diesem Muster sollten Sie eine maximale Gesamtmenge Durchsatz von 10-20 MiB pro Sekunde pro Knoten zu sehen.

Es sieht auch so aus, als ob Sie versuchen, die gesamte große Datei vor der Verarbeitung in den Speicher zu laden. Bei großen Dateien sollten Sie lieber Chunks laden und verarbeiten als das Ganze. Ich bemerke einen Knoten-Experten, aber Sie sollten es wahrscheinlich versuchen, es als Stream zu lesen und nicht alles im Speicher zu behalten.

Verwandte Themen