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)name
latitude
longitude
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?