2016-07-24 12 views
0

Ich hoffe, ein Serverless-Backend mit AWS zu entwerfen. Ich verwende RDS als meinen primären Datenspeicher, aber ich möchte aufgrund der Beschränkungen der Anzahl der gleichzeitigen Verbindungen zu meiner RDS-Instanz stark beanspruchte Daten in DynamoDB oder SimpleDB verschieben (wir nennen diese Einträge "Posts").AWS DynamoDB oder SimpleDB: "SELECT * FROM Beiträge ORDER BY Datum LIMIT 10"

Zuerst sah DynamoDB wie eine gute Option aus (viel Hype), aber dann begann ich zu sehen, wie ich die letzten 20 Beiträge aus meiner DynamoDB-Tabelle, begrenzt auf 10 mit einem optionalen Offset für die Paginierung auswählen würde.

Es sieht nicht so aus, als gäbe es einen einfachen Weg, dies zu tun. Ich habe einige vorgeschlagen, eine GSI mit dem gleichen Partitionsschlüssel und einem Sortierschlüssel für "post_date" zu verwenden, aber es scheint, dass dies als ein Hack betrachtet wird.

SimpleDB scheint flexibler zu sein und besser für meinen Anwendungsfall ausgelegt zu sein, aber es ist davon abhängig, wie wenig AWS es zu unterstützen scheint.

Welcher AWS-Dienst eignet sich am besten für meinen Anwendungsfall? mit einem GSI mit dem gleichen Partition Schlüssel und ein Art-Schlüssel für „post_date“, aber es scheint, dies als ein Hack

Antwort

0

Ich habe einige vorschlagen gesehen.

Wie wird das als ein Hack betrachtet? Es klingt, als würden Sie Global Secondary Indexes genau so verwenden, wie sie entwickelt wurden.

SimpleDB erscheint flexibler und für meinen Einsatz besser entwickelt, um Fall, aber es ist in Bezug auf, wie wenig AWS zu unterstützen scheint.

Ich würde SimpleDB zu diesem Zeitpunkt für keine neue Entwicklung verwenden. Amazon hat es im Grunde durch DynamoDB ersetzt und hält einfach SimpleDB für Leute, die es bereits benutzen.

+0

Betreffend die "Hack" -Lösung, siehe Kommentare zu dieser Antwort: http://StackOverflow.com/Questions/21794945/Dynamodb-Scan-in-Sortierte-Ordnung/28463257#28463257. Allerdings glaube ich nicht, dass ich Maßstab erreichen müsste, wo dies zum Nachteil wird. – Rob

+0

Dieser Kommentar bezieht sich auf die Empfehlung, immer einen einzelnen Wert im indizierten Feld zu speichern. Grundsätzlich einen Index auf eine "Flagge" setzen. Sie würden unterschiedliche Werte (Daten) in Ihrem indizierten Feld speichern, so dass dies kein Problem für Sie wäre. Mit anderen Worten, Sie würden GSI korrekt verwenden. –

+0

Ok, du sagst also, dass ich GSI korrekt verwenden würde, wenn ich 500.000 Elemente mit dem gleichen Partitionsschlüssel "1" und unterschiedlichen Datumswerten (aber nicht unbedingt unterschiedlich) für den Sortierschlüssel hätte? – Rob