Wie wird DynamoDB nach Datum (Bereichsschlüssel) ohne offensichtlichen Hash-Schlüssel abgefragt?

Ich muss die lokalen Daten in einer iOS-App mit den Daten in einer DynamoDB-Tabelle synchronisieren. Die DynamoDB-Tabelle enthält ~ 2 KByte Zeilen mit nur einem Hash-Schlüssel id) und die folgenden Attribute:

id (uuid)lastModifiedAt (Zeitstempel)namelatitudelongitude

Ich scanne und filtere derzeit nachlastModifiedAt, wolastModifiedAt ist größer als das Datum der letzten Aktualisierung der App, aber ich kann mir vorstellen, dass das teuer wird.

Das besteAntworte Ich kann finden, ist, einen globalen Sekundärindex mit @ hinzuzufüglastModifiedAt als Bereich, aber es gibt keinen offensichtlichen Hash-Schlüssel für die GSI.

Was ist die beste Vorgehensweise, wenn eine Abfrage nach Bereich mithilfe einer GSI erforderlich ist, es jedoch keinen offensichtlichen Hash-Schlüssel gibt? Wenn alternativ ein vollständiger Scan die einzige Option ist, gibt es bewährte Methoden, um die Kosten niedrig zu halten?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage