2016-08-29 1 views
-1

Ich arbeite an einem Projekt mit der Anforderung, eine riesige Menge an Daten zu erstellen.Hochperformante und zuverlässige Datenbank

Dafür suchen wir nach einem Datenspeicher zum Speichern und Abrufen einer großen Datenmenge. Die Datenbank ist einfach, es gibt ein Objekt für Gutscheine und eine Eins-zu-Viele-Beziehung zu Transaktionen. Ein Gutschein hat ~ 10 - 100 Transaktion. Manchmal ist es möglich, dass das System mehrere tausend Gutscheine in kurzer Zeit generieren muss, und es ist auch möglich, dass das System mehrere tausend Transaktionen schreibt oder löscht. Und es ist sehr wichtig, dass die Anwendungen schnell zurückkehrt, wenn ein Gutschein gültig ist oder nicht (einfache Suchanforderung).

Ich habe mehrere Blogs suchen ist die beste Datenbank für diese und in die engere Wahl zu finden

  • MongoDB
  • Elasticsearch
  • Cassandra

Meine Lieblings Elasticsearch ist, aber ich habe mehrere Blogs gefunden, in denen steht, dass ES nicht zuverlässig genug sei, um es als primären Datenspeicher zu verwenden. Ich lese auch einige Blogs, die sagen, dass mongodb Probleme im Cluster hat. Hast du Erfahrung mit Cassandra für einen Job wie diesen? Oder bevorzugen Sie eine andere Datenbank?

+0

Definieren Sie eine große Menge an Daten? – HLGEM

Antwort

2

Ich habe etwas Erfahrung mit MongoDB, aber ich werde Agnostic auf diese gehen.

Es gibt viele Faktoren, die ins Spiel gehen, wenn Sie sagen, dass Sie eine schnelle Datenbank wollen. Sie müssen über Indizierung, vertikale oder horizontale Skalierung, relationale oder nosql, Schreibleistung vs Leseleistung nachdenken, und wenn Sie eine von ihnen wählen, sollten Sie darüber nachlesen Präferenzen, Balancing, Networking ... Die Themen geht von der DB auf die Hardware .

Ich würde vorschlagen, gehen Sie für eine Datenbank, die Sie kennen, und dass Sie gut skalieren, verwalten und optimieren können.

In meiner persönlichen Erfahrung hatte ich keine Probleme mit MongoDB auf Cluster (sharding), möglicherweise Probleme aufgrund einer schlechten Verwaltung oder Planung kommt, und deshalb empfehle ich für eine Datenbank, die Sie gut kennen.

+0

Ich werde hinzufügen, bewerten Sie auch gute relationale Datenbanken. Sie können schnell mit großen (Think Terrabyte) Datensätze gehen, wenn sie richtig entworfen sind. – HLGEM

1

Die Auswahl der Datenbank ist die geringste Sorge beim Entwerfen einer riesigen Datenbank, die hohe Leistung benötigt. Die meisten Nosql- und relationalen Datenbanken können so erstellt werden, dass diese Art von Anwendung effektiv ausgeführt wird. Die Hardware ist entscheidend, das tatsächliche Design Ihrer Datenbank und Ihre Indizierung sind von entscheidender Bedeutung. Die Art der Abfragen, die Sie ausführen, muss performant sein.

Wenn ich ein Projekt übernehmen würde, das eine sehr große Datenbank mit hoher Leistung erfordert, ist die erste und wichtigste Aufgabe, einen Datenbankexperten einzustellen, der seit einigen Jahren mit diesen Systemen arbeitet. Das sollte ein Anwendungsentwickler niemals tun. Dies ist nicht die Aufgabe für einen Anfänger oder sogar jemanden wie mich, der mit nur mittelgroßen Datenbanken gearbeitet hat, wenn auch seit über 20 Jahren. Sie bekommen, wofür Sie bezahlen. In diesem Fall müssen Sie im Entwurfsstadium für echtes Fachwissen aufkommen, da Datenbankentwurfsfehler schwer zu beheben sind, sobald sie Daten haben. Stellen Sie einen Unternehmer ein, wenn Sie keinen festen Mitarbeiter haben wollen, sondern Fachkräfte einstellen.

Verwandte Themen