Ich habe Mysql-Slowlogs in Logstash und ich frage mich, ob jemand Glück gehabt hat Parsing der Abfrage-Abschnitt zu versuchen und kategorisieren Aussagen. Ich bin gerade dabei, die Frage nach Wörtern in Großbuchstaben aufzuteilen. Ich denke, dass ich die erste Aussage zumindest trennen kann. Die spezifische Frage ist folgende: Wie kann ich eine Nachricht wie diese filtern, damit ich zumindest jeden Abschnitt der Anfrage mit Wörtern in Großbuchstaben aufteilen kann?Logstash grok Muster zu mysql Abfragen zu analysieren
So folgt aus:
SELECT column_one, column_two, COUNT(DISTINCT IF(column_three > 0, CONCAT('m_', column_three), CONCAT('r_', column_one))) AS tally FROM column_four WHERE ...
würde in diese analysieren:
field1: SELECT column_one, column_two,
field2: COUNT(DISTINCT IF(column_three > 0,
field3: CONCAT('m_', column_three),
field4: AS tally
... etc
oder etwas ähnliches, die mich weiter erlauben würde, die Abfrage zu reinigen und Wende zu machen.
könnten Sie die Lexer verwenden, die mySQL verwendet [sql_lex.cc] (https://github.com/twitter/mysql/blob/master/sql/sql_lex.cc) –
Wenn Sie beliebige sQL haben, nicht Verlasse dich auf Regex, benutze wirklich einen Parser. –