Skip to content

skushnarev/parser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Тестовое задание

Дисклеймер

Подходя к решению этого задания я не имел опыта в postgreSQL, работал с MySQL. Что касательно фреймворка ExtJS, с ним вообще столкнулся впервые, с учётом общих знаний JS.

Конфиги и создание таблиц

Так как не было чёткого формата логов и уникальности значений в том или ином файле (как правило в логах данные повторяются), а также размерности входных и выходных данных, таблицы решил делать аналогичные без нормализации.

Парсер

Как сказано выше, раз манипулировать с данными не стал, то и загрузку из реализовал быстрым нативным методом. Первоначально идея была парсить логи регулярным выражением. Даля большей защиты и стандартизации. Но опять же в виду не явных данных по формату, отказался от этой идеи. Решение реализовано для первого лога и оставлено в коде.

Плюс ручного метода парсинга, если в логах встречается неформатная запись, отбраковывается только она, нативная загрузка бракует весь файл.

Запрос в БД

Как я понял из задания, получить все данные в уже готовом формате надо на уровне одного запроса в базу. Так и реализовал. Запрос можно посмотреть через GUI.

Оформление

GUI реализовано как указано в задании по средством ExtJS за версией 6.0.2. Как оказалось, информации по этому фреймворку в интернете не много. И по обзорам он не в почёте из-за сложного вхождения. Вы видите результат после изучения его двух дней.

Так же на его основе реализована задача фильтрации по IP в одноимённой колонке.

Сам движок ExtJS добавлен в исключения в виду размера. На него есть ссылки только в файле index.php, из нужно будет поправить в соответствии с вашей версией.

Releases

No releases published

Packages

No packages published

Languages