Мне нужно проанализировать 1 ТБ + журналов веб-доступа и, в частности, мне нужно проанализировать статистику, относящуюся к запрошенным URL-адресам и подмножествам URL-адресов (дочерние ветки). Если возможно, я хочу, чтобы запросы были быстрыми по малым подмножествам данных (например, 10 миллионов запросов).
Например, если задан журнал доступа со следующими запрошенными URL-адресами:
/ocp/about_us.html
/ocp/security/ed-209/patches/urgent.html
/ocp/security/rc/
/ocp/food/
/weyland-yutani/products/
Я хочу делать запросы, такие как:
- Подсчитайте количество запросов на все "ниже" /ocp.
- То же, что и выше, но только запросы подсчета для дочерних узлов в /ocp/security
- Верните 5 наиболее часто запрашиваемых URL-адресов.
- То же, что и выше, кроме группы на произвольной глубине,
например. Для последнего запроса выше будет возвращена глубина 2 для данных:
2: /ocp/security/
1: /ocp/
1: /ocp/food/
1: /weyland-yutani/products/
Я думаю, что идеальным подходом, вероятно, было бы использование столбца DB и токенизация URL-адресов, чтобы для каждого элемента URL был столбец. Тем не менее, мне бы очень хотелось найти способ сделать это с помощью приложений с открытым исходным кодом, если это возможно. HBase - это возможность, но производительность запросов кажется слишком медленной, чтобы быть полезной для запросов в реальном времени (также, я действительно не хочу заниматься реинтеграцией SQL)
Я знаю, что есть коммерческие приложения для этого типа аналитики, но по разным причинам я хочу реализовать это самостоятельно.