Wir haben eine soziale Netzwerkanwendung für eLearning-Zwecke erstellt. Es ist ein experimentelles Projekt, an dem wir in unserem Labor forschen. Es wird seit einiger Zeit in einigen Fallstudien verwendet und die Daten in unserem relationalen DBMS (SQL Server 2008) werden immer umfangreicher. Es sind jetzt ein paar Gigabyte und die Tabellen sind eng miteinander verbunden. Die Leistung ist noch in Ordnung, aber wann sollten wir andere Optionen in Betracht ziehen? Geht es um Leistung?
nosql
relational-dbms
ePezhman
quelle
quelle
Antworten:
Ein paar Gigabyte sind nicht sehr " groß ". Es entspricht eher der normalen Größe einer Unternehmensdatenbank. Solange Sie PK überschreiten, wenn Sie Tabellen verbinden, sollte es auch in Zukunft sehr gut funktionieren (solange Sie keine TBs an Daten pro Tag erhalten).
Die meisten Fachleute, die in einer Big-Data-Umgebung arbeiten, betrachten > ~ 5 TB als den Beginn des Begriffs Big Data. Aber selbst dann ist es nicht immer der beste Weg, nur die nächstbeste nosql-Datenbank zu installieren. Sie sollten immer über die Aufgabe nachdenken, die Sie mit den Daten archivieren möchten (aggregieren, lesen, suchen, abrufen, ..), um die besten Tools für Ihr Problem zu finden.
Wenn Sie also häufig in Ihrer Datenbank suchen, ist es wahrscheinlich besser, eine solr-Instanz / einen solr-Cluster auszuführen und Ihre Daten von Zeit zu Zeit von einem DBMS wie Postgres oder Ihrem SQL Server zu denormalisieren und in solr zu verschieben, anstatt nur die Daten zu verschieben von SQL bis NOSQL in Bezug auf Ausdauer und Leistung.
quelle
Um diese Frage zu beantworten, müssen Sie entscheiden, welchen Kompromiss Sie sich leisten können. RDBMs implementieren ACID . Dies ist ressourcenintensiv. Es gibt keine NoSQL-Lösungen, die ACID sind. Lesen Sie den CAP-Satz , um sich eingehend mit diesen Ideen zu befassen.
Sie müssen also jeden Kompromiss verstehen, der in jeder Lösung enthalten ist, und den für Ihr Problem am besten geeigneten auswählen.
quelle
Bei Big Data geht es eigentlich nicht darum, wie groß die Daten sind.
Erstens sind wenige Gigabyte überhaupt nicht groß, es ist fast nichts. Machen Sie sich also keine Sorgen, Ihr System wird nach meinem Dafürhalten noch einige Zeit effizient arbeiten.
Dann müssen Sie sich überlegen, wie Sie Ihre Daten verwenden.
Wenn Ihre gespeicherten "funktionalen" Daten von Ihrer Anwendung verwendet werden, empfehle ich Ihnen, auf SQL zu bleiben. Wenn Sie Daten speichern, um sie später zu durchsuchen oder Berichte zu erstellen, und wenn sich diese Datenmenge schnell erhöht, empfehle ich Big Data. Meiner Meinung nach sind Big Data nützlich, wenn es sich um echte Daten handelt, die kontinuierlich gesammelt und analysiert werden müssen.
quelle
Ich habe eine ziemlich ausführliche Antwort zum Stackoverflow veröffentlicht, in der erläutert wird, wann die Verwendung einer relationalen vs document-Datenbank (oder einer NoSQL-Datenbank) angemessen ist.
Motivationen für die Verwendung von relationaler Datenbank / ORM oder Dokumentendatenbank / ODM
Zusammenfassung:
Verwenden Sie für kleine Dinge alle Werkzeuge, die Sie kennen
ein paar Gigabyte sind definitiv kleine Dinge: Es wird nicht groß, bis es zu groß ist, um in einen einzelnen MySQL-Cluster mit einer angemessenen Anzahl von Knoten (16-32) zu passen , was vielleicht 8-16 TB Daten und ein paar Millionen Transaktionen bedeutet pro Sekunde (oder eine konventionellere festplattenbasierte Datenbank mit bis zu 100 TB Daten und einigen tausend Transaktionen pro Sekunde).
Wenn Sie mit einer anderen Datenbank (nicht MySQL Cluster) nicht weiterkommen, können Sie durch den Einsatz von FusionIO-Hardware mehr Meilen sammeln.
Sobald Sie Daten haben, die größer als ein paar TB und schneller als Tausende von Transaktionen pro Sekunde sind, ist es ein guter Zeitpunkt, sich zuerst mit dem logischen Sharding im Anwendungscode und dann mit NoSQL zu befassen.
Cassandra :)
quelle
Ist es die Zeit, auf NoSQL umzusteigen, hängt von zwei Dingen ab:
SQL-Datenbanken zeichnen sich aus, wenn die Daten gut strukturiert sind (z. B. wenn sie als Tabelle, Excel-Tabelle oder eine Reihe von Zeilen mit einer festen Anzahl von Spalten modelliert werden können). Auch gut, wenn Sie eine Menge von Tabellenverknüpfungen ausführen müssen (wie es sich anhört).
NoSQL-Datenbanken zeichnen sich aus, wenn die Daten über Schlüssel-Wert-Paare hinaus unstrukturiert sind.
In Bezug auf die Leistung müssen Sie sich eine Frage stellen: Ist Ihre aktuelle SQL-Lösung langsam ?
Wenn nicht, gehen Sie nach dem " IIABDFI " -Prinzip vor.
quelle