Ich möchte einige Einblicke in das beste Design meiner DynamoDB-Tabellen für den folgenden Anwendungsfall und warum. Ich habe the best practices gelesen, aber ich bin mir nicht sicher, ob ich noch genug verstehe.DynamoDB-Tabellenformat
Die primäre Verwendung ist ein wöchentlicher Eintrag für jede Gruppe von Benutzern. Ich muss diese Einträge sortiert nach den letzten Einträgen für jede Benutzergruppe auflisten. Ich muss auch in der Lage sein, den neuesten Eintrag für jede Gruppe einfach (oder schnell) zu bekommen.
Meine erste naive Idee vor dem Lesen des Artikels war, separate Tabellen für jede Gruppe zu verwenden, und dann hatte jeder Eintrag nur einen eindeutigen Partitionsschlüssel und einen Sortierschlüssel an einem Datum in Sekunden aus der Epoche konvertiert. Aber nach dem Lesen dieses Artikels scheint dieser Ansatz das Design von Partitionen zu verletzen, denn wird es nicht jedes Element zu einer neuen Partition machen?
Ich weiß, dass der neueste Eintrag ziemlich einfach in meinen Webservern zwischengespeichert werden kann, aber ich bin gespannt, ob das das Design irgendwie beeinflusst.
Irgendeine Anleitung?
Ehrfürchtig. Nachdem ich letzte Nacht darauf geschlafen hatte, kam mir diese Idee in den Sinn. Danke für die Ratschläge zum Durchsatz. Ich hatte nicht viel darüber nachgedacht. – ProdigousRanger
Dies deckt nicht effizient ab (d. H. Keine Abfrage oder Mehrfachabfragen) "Ich muss auch in der Lage sein, den neuesten Eintrag für jede Gruppe leicht (oder schnell) zu erhalten." –
Ja, tut es. Eine Abfrage mit 'ScanIndexForward = false' (absteigend) und' Limit = 1' gibt den neuesten Eintrag einer Benutzergruppe zurück. Ich glaube nicht, dass es einen performanteren Weg gibt. – birnbaum