Как получить запрос SELECT в журнале MySQL с помощью регулярных выражений - PullRequest
0 голосов
/ 25 апреля 2019

Я хочу проанализировать журнал MySQL, используя регулярные выражения в Python. Но результат не выходит, и там нет ошибки. Я хочу получить отметку времени и только запрос SELECT. Вот пример журнала:

190410  7:55:29 32168488 Connect    cis_production@172.21.7.4 on cis_production
    32168488 Query  SET NAMES 'utf8'
    32168488 Query  SHOW FULL COLUMNS FROM `sysx_user`
    32168488 Query  SELECT *
FROM information_schema.referential_constraints AS rc
JOIN information_schema.key_column_usage AS kcu ON
kcu.constraint_schema = rc.constraint_schema AND
kcu.constraint_name = rc.constraint_name
WHERE rc.constraint_schema = database() AND kcu.table_schema = database()
AND rc.table_name = 'sysx_user' AND kcu.table_name = 'sysx_user'
    32168488 Query  SELECT * FROM `dimx_dim` WHERE user_id = 3060

Вот регулярное выражение, которое я уже пробовал:

regex = re.compile(r'(\d{6}) (\d{2}:\d{2}:\d{2} [0-9]{8}) (.*?)(?=\d{8} \d{2}:\d{2}:\d{2} [0-9]{8} |$)', re.MULTILINE|re.DOTALL)

Я ожидаю получить только журнал SELECT. Не весь журнал. Это ожидаемый результат:

[("190410  7:55:29 32168488 Connect cis_production@172.21.7.4 on",
  "SELECT *FROM information_schema.referential_constraints AS rc JOIN 
   information_schema.key_column_usage AS kcu ON kcu.constraint_schema = 
   rc.constraint_schema AND kcu.constraint_name = rc.constraint_name WHERE 
   rc.constraint_schema = database() AND kcu.table_schema = database() AND 
   rc.table_name = 'sysx_user' AND kcu.table_name = 'sysx_user'",
   " SELECT * FROM `dimx_dim` WHERE user_id = 3060")]

Пожалуйста, помогите мне. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...