Dynamodb -Scan -Betrieb

Dynamodb -Scan -Betrieb
Scan -Operationen sind wohl die unverzichtsten Instrumente in einer DynamoDB -Toolliste. Ein Scan -Betrieb in AWS DynamoDB liest jedes Element in der Tabelle oder im Sekundärindex, auf dem es verwendet wird. Es kann alles in seinem Weg greifen. Somit gibt ein Scan -Vorgang standardmäßig alle Datenattribute für jedes Element in Ihrer Tabelle oder in Ihrem Index zurück.

Sie können die Standardmerkmale von Scan -Operationen anhand des ProjectionExpressionsparameters ändern, da dies nur die angegebenen Attribute und nicht alles im Index oder in der Tabelle zurückgibt. Insbesondere kann jede Scananforderung nur bis zu 1 MB Elementdaten zurückgeben und nichts weiter. Außerdem kann DynamoDB einen Filterausdruck auf einen beliebigen Datensatz anwenden und die Ergebnisse eingrenzen, bevor er die Ergebnisse an den Benutzer liefert.

Diese Anleitung erläutert, wie Sie den Scan -Betrieb auf DynamoDB verwenden können. Es wird erläutert, wann der DynamoDB -Scan -Betrieb verwendet werden soll, wie Filterausdrücke funktionieren, die Lesekonsistenz von Scans und parallele Scans.

Bevor wir es jedoch erreichen, ist es wichtig, den Scan -Vorgang nur dann zu verwenden, wenn Sie sicher sind, dass Sie sie benötigen. Es arbeitet auf der gesamten Tabelle und kann Ihre gesamte Lesekapazität aufbauen, wenn sie in den Tabellen der realen Größe verwendet werden. Darüber hinaus kann es bei der Verwendung auf dem kritischen Pfad einer Anwendung langsam die Ergebnisse zurückgeben.

Situationen, in denen Sie einen Scan in DynamoDB -Tabellen und -Indexen verwenden sollten

Die Verwendung des Scan -Betriebs auf DynamoDB ist in den folgenden Szenarien sinnvoll:

  • Wenn Ihr Tisch sehr klein ist
  • Bei Verwendung globaler Sekundärindizes zum Einrichten der Arbeitswarteschlangen
  • Beim exportieren alle Daten aus einer bestimmten Tabelle in ein anderes Speichersystem

Durchführen eines einfachen Scans in einer DynamoDB -Tabelle

Scanvorgänge sind einfach zu handhaben. Alles, was Sie tun müssen. Ein einfaches Scan -Dienstprogramm sollte so aussehen:

$ AWS DynamoDB Scan \
--Tischname Emplyeedata \
$ Lokal

Das Ergebnis ist im Folgenden dargestellt. Beachten Sie, dass es kurz genug für die Illustration abgeschnitten wird, da alle 35 Elemente in diesem Artikel umständlich sein können.

Der Scan -Betrieb auf DynamoDB unter Verwendung der Filterausdrücke

Die vorherige Antwort gibt alle 35 Elemente zurück, die in der Tabelle enthalten sind. Sie können jedoch den Parameter -Projektionsausdruck verwenden, um die Attribute anzugeben, an denen Sie interessiert sind. Diese Funktion, die auch als Filterausdrücke bezeichnet wird, können Sie Ihre Ergebnisse verfeinern und die spezifischen Elemente in der Tabelle ermitteln, die Sie in der Antwort finden. Die Ergebnisse, die Sie nicht benötigen.

Sie sollten den Parameter des Filterausdrucks nur nach Abschluss Ihres vollständigen Scans anwenden und die Ergebnisse bei sich haben. Sowohl Projektionsausdrücke als auch vollständige Dynamodb -Scans konsumieren jedoch die gleichen Mengen Ihrer Lesekapazität. Während die Scan -Grenzen häufig maximal 1 MB Daten aufweisen, erfolgt diese Berechnung, bevor die Filterexpressionsergebnisse bewertet werden.

Stellen Sie sicher, dass Sie alle Attribute angeben, die Sie im Filterausdruck benötigen. Die Attribute können Partitionschlüssel und Sortieren von Schlüssel enthalten. Filterausdrücke teilen die gleiche Syntax wie Bedingungsausdrücke.

Zum Beispiel scannt das folgende AWS -Befehlszeilenschnittstellen -Dienstprogramm die Tabelle pectorEedata und gibt die Details der Elemente zurück.

AWS DynamoDB Scan \
--TABLE-NAME EMPERETEDATA \
--Filter-Expression "Last Employed =: Name" \
--Expression-Attribute-Values ​​'": name": "S": "Benutzer ab"'

Ausführung eines Scanvorgangs, der 1 MB -Datengrenze überschreitet

Wir haben immer wieder gesagt. Aber was passiert, wenn Scans die 1 -MB -Datengrenze erreichen? Wenn Sie während eines Scans auf das 1 -MB -Grenzwert treffen, enthält die Antwort eine "NextToken" -Taste.

Verwenden Sie den Wert in der Schlüssel "NextToken" mit der Taste - -beginnend Option, Ihre Scanfunktion zu fortzusetzen, wo sie angehalten wurde. Sie können diese Funktionalität mit dem testen - - Max Limitoption. In diesem Beispiel scannen wir anstatt einen vollständigen Scan zu versuchen, aber wir scannen unsere peg -Tabelle, aber unsere Artikelgrenze auf maximal 1, wie im Folgenden dargestellt:

$ AWS DynamoDB Scan \
--Tabellenname Benutzerstable \
--max-items 1 \
$ Lokal

Die Antwort enthält nur einen Element. In den Ergebnissen finden Sie jedoch auch einen „NextToken“ -Stast. Siehe folgende Screenshot:

Die vorherige Antwort erzeugt nur einen Element aus einer Tabelle, die 35 Elemente enthält. Sie können den Scan mit der vorgesehenen NextToken -Taste beenden.

Verwendung paralleler Scans

Die Hauptgründe, warum DynamoDB eine beliebte Datenbank bleibt, sind Geschwindigkeit, Flexibilität und Skalierbarkeit. Interessanterweise ermöglicht es Ihnen auch, den Inhalt für die Datenanalyse oder den Kaltspeicher zu exportieren.

DynamoDB -Funktionen Segmente Dadurch können die parallelen Scans große Datenmengen scannen, ohne sich auf einen einzelnen Scanprozess in jeder Tabelle zu verlassen. Mit dieser Funktion können Sie die Anzahl der Anzahl angeben Segmente dass Sie möchten, dass eine Tabelle in und die Anfragen für jedes Segment aufgeteilt wird. Dadurch können die Datenmanager die Daten aus einer bestimmten Tabelle parallel scannen.

Während unsere in diesem Tutorial verwendete Personaledata -Tabelle keine große Datenmenge enthält, können wir sie in vier Segmente unterteilen und für diese Illustration verwenden. Sie können Ihren Scan -Befehl strukturieren, indem Sie die Anzahl der Segmente und die Segmentnummer definieren, die Sie scannen möchten. Während die Segmente mit Null-Indexed sind, kann die Verwendung von 0 in Ihrer Segmentspezifikation eine Aufgabe sein.

$ AWS DynamoDB Scan \
--TABLE-NAME EMPERETEDATA \
--Gesamtsegmente 4 \
--Segment 1 \
$ Lokal

Die Ergebnisse enthalten nur die Elemente, die innerhalb des ersten Segments fallen. Die Antwort sieht so aus. Beachten Sie, dass die Ergebnisse für die Kürze verkürzt werden und nur die ersten und letzten Elemente im ersten Segment enthalten.

Abschluss

Das dreht sich um den DynamoDB -Scan -Betrieb. Während es wohl eine der mühelossten Operationen in AWS DynamoDB ist, sollten Sie es sparsam verwenden, da es Ihre gesamte Konsumkapazitätszuweisung konsumieren kann. Stellen Sie erneut sicher, dass Sie wissen, wann Sie die verschiedenen Anwendungen des Scan -Vorgangs verwenden können.