0

Ich habe eine ganze Reihe auf diesen Datenbanken gelesen, bin aber immer noch nicht sicher, was ich verwenden soll.Aurora vs Redshift vs DynamoDB für Indie-Spiel Backend?

Ich brauche ein Backend für ein Spiel, das ich entwickle. Dieses Backend muss Benutzerkonten, die Elemente, die der Benutzer hat, und die Punktzahl des Benutzers speichern.

Zu Beginn des Spiels wird der Benutzer die Datenbank nach ihren Artikeln abfragen. Wenn sie ein neues Element erhalten, wird es zu ihrem Konto in der Datenbank hinzugefügt. Elemente werden als großes JSON-Blob gespeichert.

So wird diese Datenbank nicht häufig zugegriffen. Es muss nicht eine große Menge an Daten speichern, da es wirklich nur 1 Eintrag pro Benutzer benötigt. Aber es sollte in die Millionen gehen können.

Ich muss die Datenbank abfragen, um festzustellen, welche Benutzer zu welchen bestimmten Kategorien oder Teams gehören.

So günstig, wie ich diese Daten auf eine zuverlässige und ausreichend schnelle Weise speichern kann, ist ideal.

Was ist die beste Option dafür?

Antwort

3

Redshift ist ein Data Warehouse und wird im Allgemeinen für OLAP (analytische) Prozesse verwendet. Analytische DBs sind für transaktionale Prozesse zu langsam und befolgen im Allgemeinen keine Primärschlüssel-Fremdschlüsselbeschränkungen. Während Aurora und DynamoDB sind OLTP (transaktionale) Datenbank. In Ihrem Fall, wenn Sie alle Daten in einem einzigen JSON-Eintrag behalten möchten, wäre es besser, DynamoDB zu verwenden, aber ich würde Aurora empfehlen, da es ein RDBMS mit einem Fixschema ist, aber Sie müssen mehrere Einträge pro Benutzer beibehalten Eine andere Tabelle, obwohl sie abgerufen wird, ist nur eine einzige Join-Abfrage.

0

Redshift wird Ihren Anforderungen nicht gerecht. Es ist eine OLAP-Datenbank, die entwickelt wurde, um große Datenmengen parallel zu scannen. Als sehr einfaches Beispiel könntest du deine Live-Datenbank nach Redshift exportieren und abfragen, um zu sehen, ob Spieler extrem viel Geld oder viele doppelte Gegenstände haben, und auf diese Weise nach Betrügern suchen. Es ist schrecklich, einzelne Datensätze abzufragen und zu aktualisieren.

Aurora und DynamoDB sind beide OLTP-Datenbanken, die entwickelt wurden, um Aufgaben genau so zu erledigen, wie Sie es sich vorstellen. Aus persönlicher Erfahrung kann ich sagen, dass Aurora keine Probleme haben würde, zu skalieren: Ich arbeite mit einer Aurora-Instanz der mittleren Kategorie, die konstant über 2500 Milliarden QPS über mehrere Milliarden-Datensätze hinweg liefert. Wenn überhaupt, ist DynamoDB zu einem ähnlichen Preis höher skalierbar als Aurora, so dass ich mich nicht um die Skalierung kümmern muss. :)

Für das einfache Schema, das Sie beschreiben, gibt es keinen äußerst zwingenden Grund, einen von Aurora oder DynamoDB über den anderen zu wählen. AWS hat serverless Aurora in der Vorschau, was die kostengünstigste Wahl für die Lichtnutzung wäre, wenn sie jetzt verfügbar wäre. Vielleicht t2.small mit Aurora für jetzt und migrieren zu Serverless wenn du kannst? DynamoDB ist aber auch am unteren Ende recht günstig.

Verwandte Themen