Was sind gute NoSQL-und nicht-relationalen Datenbank-Lösungen für den audit - /logging-Datenbank
Was geeignet wäre, die Datenbank für die folgende? Ich bin vor allem daran interessiert, über Ihre Erfahrungen mit nicht-relationalen NoSQL Systeme.
Sind Sie gut für diese Art von Nutzung, das system, das Sie verwendet haben, und würde empfehlen, oder sollte ich gehen mit normalen relationalen Datenbank (DB2)?
Brauche ich zum sammeln von audit-trail - /logging-information in der Art von Reihe von Quellen, um eine
zentralen server, wo ich konnte, Berichte generieren, effizient und untersuchen, was geschieht, in das system.
In der Regel eine audit - /logging-Veranstaltung würde darin bestehen, immer einige Pflichtfelder, zum Beispiel
- Global eindeutige id (wie einige generiert durch das Programm, der dieses Ereignis generiert)
- timestamp
- - event-Typ (D. H. Benutzer angemeldet, der Fehler passierte, usw.)
- einige Informationen über die Quelle (server1, server2)
Zusätzlich könnte das Ereignis enthält 0-N Schlüssel-Wert-Paaren, wobei der Wert könnte bis zu wenigen Kilobyte text.
- Muss es auf Linux-server
- Sollte es mit der hohen Menge an Daten (100 GB zum Beispiel)
- sollte es irgendeine Art von effiziente Volltextsuche
- Sollte es ermöglichen gleichzeitige Lesen und schreiben
- Es sollte flexibel sein, um neue event-Typen und hinzufügen/entfernen von Schlüssel-Wert-Paare zu den neuen Ereignissen. Flexibel=keine änderungen erforderlich sein sollten, um Datenbank-schema, Anwendung, Erzeugung der Ereignisse kann nur hinzufügen, neue event-Typen/neue Felder wie erforderlich.
- es sollte effizient sein, um Abfragen gegen die Datenbank. Für reporting und erforschen, was passiert ist. Zum Beispiel:
- Wie viele Ereignisse mit Typ=X kam in einiger Zeit.
- Erhalten Sie alle Veranstaltungen, bei denen Feld A hat den Wert Y.
- Bekommen alle Ereignisse mit Typ X und Feld A den Wert 1 und im Feld B ist nicht 2 und das Ereignis trat in der letzten 24h
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die beiden, die ich gesehen habe, erfolgreich eingesetzt werden MongoDB und Cassandra.
Ja, Sie sollten! Wenn Sie nur wollen, um store-Inhalte und Scannen Sie es, Sie könnte genauso gut eine Datei schreiben. Sehr schnell, kein Aufwand! Aber die minute, die Sie zusammenfassen möchten, Daten über die Zeit (letzten 24h, oder zwischen der Zeit t und t+1), je mehr Sie kümmern sich um die Daten als etwas anderes als Zeilen text, keine Frage, ein richtiges RDBMS ist dein Freund.
Verwendeten wir Redis unsere zentrale Anmeldung für alle unsere app-Server an mflow.com. Es ist sehr schnell, die basierend auf diese benchmarks über 110000 Legt pro Sekunde rund 81000 Bekommt pro Sekunde. Es hat eine VM-Implementierung (wenn Ihr dataset verfügbaren Speicher überschreitet) der vertauscht un-frequentiert wird, die Werte auf die Festplatte.
Es ist eine erweiterte Daten-Strukturen-server speichern können binary-safe-Daten mit nativer Unterstützung für Zeichenketten, Listen, sets, sorted sets und hashes. Basierend auf den Diskussionen auf der mailing-Liste ist es stark verwendet wird, indem eine Menge von Menschen zu speichern analytics.