Как лучше реализовать парсинг журнала событий (операции в системе обслуживания клиентов)?

Есть достаточно подробный журнал (лог) событий из некого приложения для обслуживания клиентов организации (грубо говоря, пришел клиент - оператор его обслужил и отразил операцию в приложении). Сам журнал неплохо структурирован - из каждой записи легко извлекается дата/время события, пользователь системы, описание события и т.д. Описание содержит самый различный текст от "пользователь такой-то вошел в систему" до "пользователь произвел такую-то операцию с такими-то параметрами, результат операции такой-то", причем само описание операции не имеет какого-то единого формата, так как фактически есть несколько подсистем с разным функционалом, которые пишут лог в один файл (отметка о подсистеме в логе тоже присутствует). По предварительной оценке в журнале хранится порядка нескольких сотен различных типов записей. Объем самого журнала - сотни тысяч записей.
С точки зрения пользователя одно его действие (к примеру "оплата услуги") в системе порождает в журнале одну или сразу несколько отдельных записей в журнале (к примеру "вход в подсистему", "выбор объекта", "попытка операции", "подтверждение", "результат"). Для какого-то конкретного действия набор операций и их последовательность на 100% не зафиксирована, возможны небольшие вариации. Теперь моя задача - распознать в журнале действия пользователей в системе, определить их длительность, и отнести распознанное действие к одной из групп действий с одинаковой/похожей последовательностью записей в журнале.
Уточнения:
1. Для каждого действия пользователя ( а вариантов действий достаточно много, и у меня сейчас даже нет их исчерпывающего списка) набор записей в журнале имеет некоторую вариативность, например, в процессе совершения операции оператор ошибся, или клиент отказался. Но на первом этапе вариативностью можно пренебречь.
2. Я привел пример набора записей одного действия пользователя просто для понимания структуры журнала, на самом деле у разных действий пользователя могут быть наборы записей, совсем не похожие на мой пример, и мне они заранее неизвестны. Соответственно надо как-то автоматизированным способом определить конечный набор повторяющихся последовательностей записей, встречающихся в журнале.
Прошу дельный совет - с какой стороны подойти к этой задаче, и описать свое видение алгоритма решения.
  • Вопрос задан
  • 433 просмотра
Пригласить эксперта
Ответы на вопрос 1
Epsiloncool
@Epsiloncool
Программер, веб-девелопер, гейм-девелопер
Импорт в MySQL и запросы. Не вариант?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы