2017-09-01 1 views
0

abgerufen werden Ich arbeite an dem Importieren einer Dynamo-Tabelle zu S3 mit Nodejs. Ich habe alles funktioniert gut, aber die gesamte Kopie ist ziemlich langsam, da ich Millionen von Datensätzen habe und der sequenzielle Scan auf 1 MB beschränkt ist, so schaue ich in einem parallelen Scan für Dynamo dB mit Knoten.wie Daten mit Dynamodb parallelen Scans mit Nodejs

Aber um das zu tun, muss ich mehrere Threads erstellen und den Threads im Knoten die parallele Arbeit zuweisen. Ich würde gerne wissen, ob es eine empfohlene Vorgehensweise gibt, oder schlagen Sie vor, Data Pipeline für den Datenimport zu verwenden? Wie denkst du, sollte ich darüber nachdenken?

Antwort

0

Sie können die eingebaute Parallelabtastung Funktion verwenden, die in der Scan API verfügbar ist. Das Ganze wird in mehrere Segmente unterteilt und die einzelnen Segmente werden gescannt.

Parallel scan

Segment: 0, 
TotalSegments: 5 

Segment: Für eine parallele Scan Anfrage identifiziert Segment ein individuelles Segment durch einen Anwendungs ​​Arbeiter gescannt werden.

Segment-IDs sind Null-Basis, so dass das erste Segment ist immer 0. Für Wenn beispielsweise vier Anwendungsthreads verwenden möchten eine Tabelle oder einen Index zu scannen, wird der erste Faden legt ein Segmentwert von 0 , der zweite Thread gibt 1 an und so weiter.

Der Wert für Segment muss größer oder gleich 0 und kleiner als der für TotalSegments angegebene Wert sein.

Wenn Sie Segment bereitstellen, müssen Sie auch TotalSegments angeben.

TotalSegments: - Für eine parallele Scan-Anfrage repräsentiert TotalSegments die Gesamtanzahl der Segmente, in die der Scan-Vorgang unterteilt wird . Der Wert von TotalSegments entspricht der Anzahl der Anwendungsarbeiter, die den parallelen Scan durchführen. Um zum Beispiel eine Tabelle zu scannen oder einen Index , wenn Sie vier Anwendungs-Threads verwenden möchten, geben Sie einen TotalSegments Wert von 4.

Verwandte Themen