Ich bin ziemlich neu in AWS DynamoDB und habe die Dokumentation gelesen Ich bin nicht 100% sicher, was mit Kostenberechnungen passiert, wenn 'Limit' Parameter in einem SCAN Betrieb.DynamoDB SCAN Betriebskosten mit "Limit" -Parameter
Ich verstehe, dass man sollte die Tabellen so auszugestalten, dass QUERY Operationen überwiegend verwendet werden und dass ein SCAN wird die gesamte Tabelle scannen, so viel Lesekapazität verbrauchen. Ich verstehe auch, dass ein FilterExpression die Kosten für das Scannen der gesamten Tabelle nicht beeinflusst, aber filtert, was nach der gesamte Scan zurückgegeben wird, und wenn die Gesamtzahl der gescannten Elemente die maximale Datensatzgröße von 1 MB überschreitet, die Scan stoppt und Ergebnisse werden zurückgegeben.
Was ich nicht sicher bin, ist, ob der 'Limit' Parameter eine Art von FilterExpression ist, oder ob es einen kompletten Scan stoppt, wodurch die Lesekosten reduziert werden.
Zum Beispiel, wenn ich eine Aktivitätstabelle mit einem Sortierschlüssel hatte, der ein Datumsfeld (updatedAt) ist und es eine Million Zeilen hatte. Wenn ich einen SCAN mit einem Limit = 10 durchgeführt habe (um die 10 neuesten Aktivitäten zu erhalten), würde ich natürlich 10 Zeilen zurückbekommen, aber würde ich dafür bezahlen, dass ich eine Million Zeilen gelesen habe? Die Kosten sind meine Hauptsorge.
Danke für die Antwort. Dies beantwortet die Frage, obwohl ich kürzlich festgestellt habe, dass die Reihenfolge eines Scans momentan zufällig ist, anstatt die Reihenfolge des Sortierschlüssels beizubehalten. Das bedeutet, dass ich die letzten 10 Aktivitäten nicht über ein updatedAt-Feld abrufen konnte. Danke für die Bestätigung der Kostenfrage. – elprl
@elprl, aber wenn das 'updatedAt'-Feld Ihr Sortierschlüssel ist, warum verwenden Sie' scan' Operation und nicht 'query'? –
In meinem speziellen Fall war der Hash-Schlüssel der Tabelle eine HashTag-Zeichenfolge und der Sortierschlüssel war eine updatedAt epoc-Nummer. ["#cat": 1462812033, "#dog": 1462812073, ...]. Daher brauchte ich den '' Scan '', um alle Hashtags seit der Zeit X zu erhalten. – elprl