Мне нужно проанализировать 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)
Я знаю, что есть коммерческие приложения для этого типа аналитики, но по разным причинам я хочу реализовать это самостоятельно.
Хорошая презентация, спасибо! – Rob