NoSQL-Datenbanken - gute Kandidaten für die Protokollverarbeitung / Aggregation und Rollup? [geschlossen]

StackOverflow https://stackoverflow.com/questions/4746606

  •  13-10-2019
  •  | 
  •  

Frage

Ich habe eine MS SQL-Datenbank, die zur Erfassung Bandbreite Statistiken verwendet wird. Wir haben eine Rohdatentabelle und Berichtsgeschwindigkeit bei verschiedenen Drill-Down-Ebenen zu verbessern, die wir sammeln und Rollup Daten auf einer stündlichen, täglichen und wöchentlichen Basis zu separaten Tabellen.

wäre eine NoSQL-Datenbank wie Mongo oder Raven ein guter Kandidat für diese Art der Anwendung sein?

War es hilfreich?

Lösung

Verschiedene NoSQL-Lösungen lösen verschiedene Probleme für verschiedene Zwecke - so zunächst einmal das Beste, was zu tun ist Blick auf Ihr Problem und brechen sie

  • Sie schreiben stark Lagerung, also Schreibgeschwindigkeit für Sie wichtig ist
  • Sie möchten, dass Datenaggregation Operationen auszuführen und haben die Ergebnisse dieser leicht abfragbar
  • Lesegeschwindigkeit ist nicht so wichtig, aus dem Klang der Dinge, zumindest nicht in einer Art und Weise „Web-Anwendung hat für Millionen von Menschen wirklich ansprechbar zu sein“
  • Ich weiß nicht, ob Sie dynamische Abfragen benötigen oder nicht

Schauen wir uns Couch, Mongo und Raven in einem sehr hohen Niveau, generali Weg

Raven

  • Fast schreibt
  • Fast Abfragen (schließlich konsistente, vorausberechnet, Aggregation über Karte / verkleinern)
  • dynamische Abfragen möglich, aber nicht wirklich auf Ihren Anwendungsfall angemessen, da Sie höchstwahrscheinlich nach dem Datum gehen zu Abfragen usw.

Mongo

  • Blindingly Fast Writes (meiner Meinung nach gefährlich, weil Datenbox abgehend Mittel zu verlieren; -))
  • Langsam liest (relativ), Aggregation über Karte / reduzieren, nicht im Voraus berechnete
  • Dynamische Abfragen werden nur what_you_do, aber Sie wahrscheinlich Indizes auf Spalten definieren müssen, wenn Sie jede Art von Leistung wollen auf diese Art von Daten

Couch

  • Fast schreibt
  • Fast-ish liest (Pre-berechnet, sondern nur aktualisiert, wenn Sie lesen (IIRC)
  • dynamische Abfragen nicht möglich, alle vordefinierten über Karte oder Karte / reduzieren Funktionen

Also, im Grunde - tun Sie dynamische Abfragen über diese Art von Daten benötigen? Ist die Lesegeschwindigkeit unglaublich wichtig für Sie? Wenn Sie dynamische Abfragen benötigen dann sollten Sie Raven oder Mongo (Für diese Art der Sache Couch ist wahrscheinlich nicht das, was Sie sowieso suchen).

FWIW, Mongo einziger Anwendungsfall ist meiner Meinung nach für die Protokollierung, so dass man dort eine anwer haben könnte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top