Re: Log files

From
Andrey Belyakov ()
To
All
Date
2000-03-02T17:15:34Z
Area
RU.ALGORITHMS
From: "Andrey Belyakov" <andrejb@care.lv>

Hi, Boris Rudakov !

>  RV> Есть лог файл, задача - найти самые встречающиеся
>  RV> ip адреса, т.е. получить отчет типа:
>  RV>  ip                                 count
>  RV> -+---------------------------
>  RV> 195.12.12.12                20
>  RV> 203.12.32.23.               15
>  RV> 195.64.23.105               8
> Что можеть проще...
>
>  RV> В чем собственно проблема - формируешь обыкновенный
>  RV>  список, а затем просто сортируешь и выводишь результат.
> Неправильно. Сортировать надо в момент вставки. А данные
> держать например в дереве. Можно в сбалансированном.
Задача - типичная для базы. Прилеплять сюда что-то еще это...
хм-м-ммм... себе дороже.

>  RV> Проблема в том, что этот список может быть очень
>  RV> большым - несколько миллионов, это:
> Тогда в B-Дереве. На диске. Страничками этак по 4k.

>  RV> Как быть? У кого какие идеи?
> B-Дерево. Что это и как это реализовать смотри в литературе:
> у Вирта, Кнута и т.п. Можешь взять готовую реализацию -
> поищи в ИНете, их полно.

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

Импортировать все записи в базу. Любую - ACCESS вполне
подойдет.

Выполнить один запрос с группировкой и получить результат.
Несколько миллионов - минут на 30-40.

Часа на три работы. И то если встраивать проверку в базу.

2BR Возможно работа со страничками 4к и B-деревьями
позволит получить более быструю программу, но суммарное
время на разработку + разовый (в месяц) расчет будет
значительно больше.

Андрей.


--- ifmail v.2.15dev4
 * Origin: Demos online service (2:5020/400)