Viele TV-Angebote gibt es seit langer Zeit am selben Sendeplatz. Die Tagesschau der ARD beginnt um …
Amazon Scan
Der Amazonas-ScanEin einzelner Scanauftrag kann bis zu 1 MB auslesen. Die DynamoDB kann wahlweise einen Filter-Ausdruck auf diese Dateien setzen, um die Resultate einzuschränken, bevor sie an den Anwender zurückgesendet werden. Falls Sie die Scanergebnisse weiter einschränken möchten, können Sie wahlweise einen Filter-Ausdruck vorgeben. Über einen Filter-Ausdruck wird festgelegt, welche Objekte in den Scan-Ergebnissen an Sie zurückgesendet werden.
Nach Abschluss eines Scans wird ein Filter-Ausdruck angewandt, bevor die Resultate zurückgesendet werden. Ein Scan benötigt also die gleiche Menge an Leseleistung, egal ob ein Filter-Ausdruck vorliegt oder nicht. Ein Scan-Vorgang kann bis zu 1 MB auslesen. Die Größeneinschränkung wird vor der Auswertung des Filterausdrucks wirksam. Scan ermöglicht es Ihnen, Eigenschaften in einem Filter-Ausdruck anzugeben - einschließlich Partitionsschlüssel und Sortierschlüsselattribute.
Der Aufbau eines Filterausdrucks ist syntaktisch mit dem eines Bedingungsausdrucks gleich. Filter-Ausdrücke können dieselben relationalen Verknüpfungsoperatoren, Funktion alitäten und logische Verknüpfungen als Bedingungsausdrücke ausnutzen. Dabei werden nur die letzten von einem Nutzer übertragenen Daten wiedergegeben. Ausdruck-Attribut-Werte'{":name":{"S": "User A"}}}}' Der Scanvorgang erlaubt es Ihnen, die Zahl der in den Suchergebnissen zurückgegebenen Objekte zu begrenzen.
Setzen Sie dazu den Grenzwert auf die maximal zurückzugebende Elementanzahl. Beispiel: Sie scannen nach einer tabellarischen Darstellung mit einem Grenzwert von 6 und ohne Filter-Ausdruck. Im Scan-Ergebnis sind die ersten sechs Tabellenelemente enthalten, die dem Schlüsselbedingungs-Ausdruck der Bedingung entsprechen. Nehmen wir an, Sie haben nun einen Filter-Ausdruck zum Scan hinzugefügt.
DynamoDB verwendet in diesem Falle den korrespondierenden Filtermodus auf die sechs zurückgesendeten Objekte und verwirft diejenigen, die nicht übereinstimmen. Im letzten Scanergebnis sind sechs oder weniger Objekte enthalten, je nachdem, wie viele Objekte durchsucht wurden. Mit DynamoDB werden die Resultate von Scanvorgängen geändert. Beim Paginieren werden die Scanergebnisse in "Seiten" mit bis zu 1 MB (oder weniger) großen Dateien aufgeteilt.
Ein einzelner Scanvorgang liefert nur eine Ergebnismenge innerhalb der Grenze von 1 MB. Ist kein Schlüssel für die letzte Bewertung im Resultat enthalten, stehen keine weiteren Daten zur Verfügung. Legen Sie einen neuen Scanauftrag mit den selben Parameter wie der vorherige Auftrag an, aber dieses Mal übernehmen Sie den Parameter für den letzten bewerteten Schlüssel aus Punkt 1 und benutzen Sie ihn als Parameter ExclusiveStartKey in dem neuen Scanauftrag.
Das CLI schickt mehrfach Scan-Low-Level-Anfragen an DynamoDB, bis das Ergebnis nicht mehr den Wert des letztenEvaluatedKey enthält. Im Beispiel beschränkt der Paramter --page-size der CLI die Zahl der Elemente pro Bildschirm. Bei der Ausführung des Beispiels wird die erste Reaktion von DynamoDB etwa so aussehen: 2017-07-07-07 12:19:14,389 - HauptThread - der Botokern.
"Alter der Dinosaurier"}}}},{"Titel":{"S": "Bewölkt mit einer Chance auf Fleischbällchen 2"}}], " " ":{"Jahr":{"N": "2013"}, "Titel":{"S": "Fluch von Chucky"}}, "ScannedCount":100}}' Der letzteEvaluatedKey in der Antwortsprache zeigt, dass nicht alle Bestandteile gefunden wurden. Der AWS CLI sendet dann einen weiteren Scanauftrag an DynamoDB.
Beispiele für Code in unterschiedlichen Sprachen sind im " Getting Started " Manual für Amazon DynamoDB und in der AWS SDK Dokumentation für Ihre Programmiersprache zu sehen. Die Scan-Antwort beinhaltet neben den Objekten, die Ihren Suchkriterien entsprechen, auch die folgende Elemente: ScanCount - die Zahl der Objekte, die vor der Anwendung von ScanningFilter ausgewertet werden sollen. Eine hohe ScannedCount-Zahl mit wenig oder keinem Zählergebnis deutet auf einen ineffizienten Scanvorgang hin.
Falls Sie in der Anfrage keinen eigenen Film benutzen, haben ScanCount und Count den selben Parameter. Zählen - die Zahl der verbleibenden Einträge, nachdem ein eventuell vorhandener Suchbegriff angewandt wurde. Werden keine Filterausdrücke verwendet, haben ScanCount und Count den selben Inhalt. Ist die Ergebnismenge des Scans grösser als 1 MB, repräsentieren ScanCount und Count nur eine Untermenge der gesamten Element.
In jeder Scan-Antwort sind die ScanCount- und Zählwerte für die von diesem Scanauftrag verarbeiteten Objekte enthalten. Wenn Sie eine Summe für alle Scanaufträge ermitteln möchten, können Sie eine fortlaufende Anzahl der gescannten und gezählten Daten ermitteln. Für jede einzelne Tabellen oder jeden Sekundärindex können Sie einen Scan durchlaufen. Möglicher Scan von ...DynamoDB benötigt Lesekapazität Einheiten von.....
TabelleDie zur Verfügung gestellte Leseleistung der Tisch. Globaler SekundärindexDie zur Verfügung gestellte Lesefähigkeit des Sekundärindex. Local SekundärindexDie zur Verfügung gestellte Leseleistung der Basis Tabelle. In der Standardeinstellung liefert ein Scan-Vorgang keine Angaben über seinen Verbrauch an Leseleistung. Die folgenden Werte gelten für ReturnConsumedCapacity: TOTAL - die Response beinhaltet die Gesamtzahl der verwendeten Lesekapazitäten. INDEXE - die Response stellt die Gesamtzahl der konsumierten Lesekapazitäten zusammen mit der konsumierten Leistung pro aufgerufener Table und Indizes dar.
Die DynamoDB ermittelt die Zahl der verwendeten Lesekapazitäten auf Basis der Element-Größe und nicht der an eine Applikation zurückgegebenen Datenmenge. Daher bleiben die Verbräuche der einzelnen Einheiten gleich, egal ob Sie alle Eigenschaften (Standardverhalten) oder nur einige davon (über einen Projektions-Ausdruck) anstreben. Auch die Zahl ist gleich, egal ob Sie einen Filter-Ausdruck oder nicht.
In der Standardeinstellung wird ein Scanvorgang eventuell konsistent durchgeführt. Falls Sie stark konsequente Lesezugriffe brauchen, stellen Sie den Parameter KonsistentRead in der Scananforderung auf Wahr (Truetrue), wenn der Scan gestartet wird. Beim Sichern von Datenbanken oder in Replikationsszenarien mit DynamoDB-Streams kann das Einstellen von KonsistentRead auf wahr sinnvoll sein: Sie benutzen zunächst Scan mit der Einstellung KonsistentRead auf wahr, um eine einheitliche Datenkopie der Datenbank zu erzielen.
DynamoDB-Streams protokolliert während des Scanvorgangs alle weiteren Schreibvorgänge, die in der Datenbanktabelle durchgeführt werden. Wenn der Scan-Vorgang abgeschlossen ist, können Sie die Schreib-Aktivität aus dem Datenstrom auf die Tabellen übertragen. Es ist zu bemerken, dass ein Scanvorgang, bei dem ConsistentRead auf wahr eingestellt ist, die doppelte Menge an Lesekapazität einnimmt, die mit dem Standardwert ConsistentRead falsch ist.
Der Scanvorgang arbeitet in der Voreinstellung sequentiell ab. Die DynamoDB schickt die Dateien in 1 -MB-Schritten an die Applikation zurück und eine Applikation scannt zusätzlich, um die nächste 1 MB an Dateien wiederherzustellen. Der Scan-Vorgang dauert umso länger, je grösser die eingescannte Datei oder der eingescannte Inhalt ist. Darüber hinaus ist ein sequentieller Scanvorgang nicht immer in der Lage, die zur Verfügung gestellte Lesekapazität voll auszunutzen:
Selbst wenn DynamoDB die gesammelten Informationen einer großen Datenbank auf mehrere physikalische Volumes aufteilt, kann ein Scanvorgang nur eine Volume auf einmal auslesen. Deshalb ist der Datendurchsatz eines Scanvorgangs durch den Maximaldurchsatz einer einzigen Partition begrenzt. Zur Lösung dieser Problematik kann der Scanvorgang eine einzelne Datei oder einen Sekundärindex in mehrere Teilbereiche aufteilen.
Für jeden Mitarbeiter sollte ein anderer Segmentwert angegeben werden. GesamtSegmente - Die Gesamtzahl der Abschnitte für den Parallel-Scan. Diese Zahl muss mit der Zahl der von Ihrer Applikation verwendeten Mitarbeiter übereinstimmen. Die folgende Abbildung veranschaulicht, wie eine Multithreading-Anwendung einen Parallel-Scan-Vorgang mit drei Parallelitätsgraden durchführt: Jedes Thema durchsucht ein zugeordnetes Thema, indem es 1 MB große Datenmengen abruft und die entsprechenden Informationen an den Hauptthread der Applikation zurückgibt.
Es können zu jeder Zeit andere Daten verwendet werden. Möglicherweise müssen Sie mit diesen Daten und der Zahl der eingesetzten Mitarbeiter so lange arbeiten, bis Ihre Applikation eine maximale Performance erreicht. Eine parallele Abtastung mit einer großen Zahl von Mitarbeitern kann den Gesamtdurchsatz für die zu scannende Tafel oder den zu scannenden Inhalt problemlos konsumieren.
Am besten ist es, solche Überprüfungen zu vermeiden, wenn die Tabellen oder Indizes auch viel Lese- und Schreibaktivität von anderen Applikationen haben. Um die Menge der pro Request zurückgegebenen Daten zu steuern, benutzen Sie den Limit-Parameter.