Was sind gute NoSQL- und nicht relationale Datenbanklösungen für Audit- / Protokollierungsdatenbanken?
Welche Datenbank ist für Folgendes geeignet? Mich interessieren vor allem deine Erfahrungen mit non-relational NoSQL systems. Sind sie für diese Art der Nutzung geeignet, welches System haben Sie verwendet und würden es empfehlen, oder sollte ich mit einer normalen relationalen Datenbank (DB2) arbeiten?
Ich muss Informationen zum Audit-Trail / Protokollierungstyp von einer Reihe von Quellen auf einem zentralen Server sammeln, auf dem ich Berichte effizient erstellen und untersuchen kann, was im System geschieht.
Typischerweise besteht ein Prüfungs- / Protokollierungsereignis immer aus einigen Pflichtfeldern, z. B.
globally unique id (einige davon werden von dem Programm generiert, das dieses Ereignis generiert hat) timestampEreignistyp (d. h. Benutzer angemeldet, Fehler aufgetreten usw.)Einige Informationen zur Quelle (Server1, Server2)Zusätzlich kann das Ereignis 0-N Schlüssel-Wert-Paare enthalten, wobei der Wert bis zu einigen Kilobyte Text betragen kann.
s muss auf einem Linux-Server lauf Es sollte mit einer großen Datenmenge (z. B. 100 GB) funktionieren.it sollte eine effiziente Volltextsuche unterstützens sollte gleichzeitiges Lesen und Schreiben ermögliche Es sollte flexibel sein, neue Ereignistypen hinzuzufügen und Schlüssel-Wert-Paare zu neuen Ereignissen hinzuzufügen / zu entfernen. Flexibel = Es sollten keine Änderungen am Datenbankschema erforderlich sein. Die Anwendung, die die Ereignisse generiert, kann bei Bedarf einfach neue Ereignistypen / neue Felder hinzufügen.it sollte effizient sein, um Abfragen für die Datenbank durchzuführen. Zum Berichten und Erkunden des Geschehens. BeispielsweiseWie viele Ereignisse mit Typ = X sind in einem bestimmten Zeitraum aufgetreten.Alle Ereignisse abrufen, bei denen Feld A den Wert Y hat.Hol alle Ereignisse vom Typ X und Feld A haben den Wert 1 und Feld B ist nicht 2 und Ereignis ist in den letzten 24 Stunden aufgetreten