Ich habe eine große SQL-Tabelle, die im Wesentlichen ein Protokoll ist. Die Daten sind ziemlich komplex und ich versuche einen Weg zu finden, um Anomalien zu identifizieren, ohne dass ich alle Daten verstehe. Ich habe viele Tools für die Erkennung von Anomalien gefunden, aber die meisten erfordern eine Art "Mittelsmann", z. B. Elastic Search, Splunk usw.
Kennt jemand ein Tool, das für eine SQL-Tabelle ausgeführt werden kann, die automatisch eine Basislinie und Warnungen vor Anomalien erstellt?
Das mag faul klingen, aber ich habe Dutzende von Stunden damit verbracht, einzelne Berichtsskripte zu schreiben, um zu erfahren, was jeder Ereignistyp bedeutet und welche anderen Felder zu jedem Ereignis gehören, und ich fühle mich nicht näher dran, auf echte Probleme in einem Ereignis aufmerksam zu machen sinnvoll. Die Tabelle hat 41 Spalten und hat gerade 500 Millionen Zeilen (3 Jahre Daten) getroffen.
quelle
Antworten:
Wenn Sie dies aus einer SQL-Perspektive betrachten möchten, würde ich im Großen und Ganzen alle Klassifizierungsvariablen identifizieren, die ein anderes Verhalten verursachen. Führen Sie dann für eine Reihe von Analysevariablen Folgendes aus.
Ich würde dies als einmalige Übung für Daten im Wert des letzten Jahres durchführen und diese dann aus Geschwindigkeitssicht so regelmäßig wie nötig ausführen, um außergewöhnliche Daten zu kennzeichnen.
Ein besserer Ansatz, der das Erlernen neuer Technologien bedeutet, ist möglicherweise eine HDFS / Spark-Lösung als PIG / Python / R. HDFS / Spark bietet jedoch einige sofort einsatzbereite Lösungen für die Protokollanalyse. 500 Millionen Datensätze sind wahrscheinlich in die Reichweite von Leistungsproblemen mit SQL geraten, selbst bei der Tabellenpartitionierung und Spaltenindizierung.
quelle
Wenn Sie SQL-Code benötigen, der verschiedene Ausreißererkennungsmethoden für eine beliebige Tabelle ausführt , lesen Sie meine Artikelserie und Codebeispieleauf SQL Server ausgerichtet. Ich biete einen vorläufigen Code für Grubbs Tests, Z-Scores und modifizierte Z-Scores, Interquartilbereich, Dixons Q-Test, GESD, den Tietjen-Moore-Test, das Pierce-Kriterium, das Chauvenet-Kriterium, den modifizierten Thompson-Tau-Test, die Cook-Distanz, Mahalanobis Entfernung, Benfords Gesetz und verschiedene visuelle Handlungen. Bitte beachten Sie, dass ich ein Amateur bin und dass dies ein Teil meines älteren Codes ist, daher bin ich sicher, dass Korrekturen erforderlich sind. Dies bietet zumindest einen Ausgangspunkt, damit Sie diese Tests für jede Datenbanktabelle ausführen können, für die Sie Berechtigungen haben. Es ist auch in T-SQL enthalten, daher müssen Sie den Code für PL / SQL oder eine andere SQL-Marke anpassen, wenn Sie sich auf einer anderen Plattform wie Oracle oder MySql befinden. Dies sollte Ihnen jedoch den Einstieg erleichtern. Berechnet einfach die Knicke und stellt die gespeicherten Prozeduren so ein, dass sie regelmäßig nach einem Zeitplan ausgeführt werden, und schon kann es losgehen. Lassen Sie mich wissen, wenn Sie Feedback zu den Routinen haben. Ich bin immer bemüht, mein SQL-Schreiben zu verbessern.
quelle