protasovseya
@protasovseya
Онлайн юридическая консультация

Как выбрать из большого лог-файла?

Здравствуйте, друзья.

Есть компания, которая продаёт просмотры баннеров в Интернете.

За всё время в логе накопилось 300 млн. записей. Лог состоит из следующих записей:
  • id пользователя (хеш-код)
  • дата просмотра


В последнее время за сутки в лог-файл добавляется 10 млн. записей. Каждый пользователь за всё время делает от 10 до 100 просмотров, если смотреть по медиане.

Требуется сделать систему, которая за время меньше 1 сек. выдаёт количество уникальных пользователей, которые просматривали баннеры.

Максимальный промежуток дат — 3 года, минимальный — 1 день, сегодняшнюю дату запрашивать нельзя. На компьютере бесконечный HD, 2 ядра процессора, 4 Гб ОЗУ.

С помощью каких технологий можно это реализовать?
  • Вопрос задан
  • 141 просмотр
Пригласить эксперта
Ответы на вопрос 2
begemot_sun
@begemot_sun
Программист в душе.
sgjurano
@sgjurano
Разработчик
Задача звучит как описание дерева отрезков, поскольку операция объединения множеств ассоциативна.
www.e-maxx-ru.1gb.ru/algo/segment_tree

Думаю вы можете сделать его реализацию с хранением данных на диске, а в памяти держать только оффсеты начала/конца суточных диапазонов. Их будет всего около тысячи за 3 года.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
CTRL+ Москва
от 250 000 до 320 000 ₽
CTRL+ Москва
от 200 000 до 300 000 ₽
CTRL+ Белград
от 250 000 до 320 000 ₽
22 нояб. 2024, в 00:55
500 руб./за проект
21 нояб. 2024, в 23:30
300000 руб./за проект
21 нояб. 2024, в 22:21
3000 руб./в час