2

Wenn ich nicht falsch bin, um eine Anzahl von Elementen in DynamoDB durchzuführen, müssen wir die query Aktion verwenden und Select: 'COUNT' als Parameter angeben. Nehmen wir an, ich möchte die Anzahl der Elemente zählen, die einen bestimmten Partitionsschlüssel haben. Da wir die query Aktion verwenden, bedeutet, dass die folgende ?:DynamoDB Zählung Betrieb Kapazität Einheiten Verbrauch

  1. Auch wenn wir nur die Zählung zurückkehrt, wird entsprechen die verbrauchte lesen Kapazitätseinheiten auf die Größe aller Elemente mit dieser Partitionsschlüssel.
  2. Wenn die Größe der Elemente, die den angegebenen Partitionsschlüssel haben, 1MB überschreitet, wird die Anzahl partiell sein, berücksichtigt nur die Elemente bis 1MB und die Operation wird paginiert.

Antwort

2

Die Antwort ist ja, auf beide Ihre Fragen.

, die von diesen zwei Punkten aus der Dokumentation hervorgeht:

  • Unterscheidung zwischen Graf und ScannedCount:

Wenn Sie einen Queryfilter in der Anforderung verwendet wird, dann Graf ist die Anzahl der Elemente, die zurückgegeben wurden, nachdem der Filter angewendet wurde, und ScannedCount ist die Anzahl der übereinstimmenden Elemente, bevor der Filter angewendet wurde.

Wenn Sie in der Anfrage keinen Filter verwendet haben, sind Count und ScannedCount identisch.

  • Die Tatsache, dass DynamoDB schaut Count als nur ein weiteres Attribut, das zurückgegeben werden können:

Sie abrufen können alle Objektattribute, spezifische Objektattribute, die Anzahl der passenden Artikel oder im Falle eines Indexes einige oder alle der in den Index projizierten Attribute.

+1

Also, was ist die gängigste/leistungsfähigste Möglichkeit, einen Zähler von Datensätzen nach Partition Key zu halten? Mit DynamoDB Streams + Lambda den Stand irgendwo anders cachen? Dies ist eine große Einschränkung, wenn man bedenkt, dass es eine sehr häufige Aufgabe ist. Ich würde verstehen, dass AWS-Jungs für mehr RCUs berechnen, wenn die Zählung irgendein anderes Attribut beinhaltet, das nicht der Partitionsschlüssel ist, aber da wir nur ein indiziertes Attribut abfragen ... – davids

+0

könnte das helfen: http://stackoverflow.com/ a/21958587/1517410 –