Necesito analizar 1 TB + de registros de acceso web y, en particular, necesito analizar las estadísticas relacionadas con las URL solicitadas y los subconjuntos de las URL (ramas secundarias). Si es posible, quiero que las consultas sean rápidas en pequeños subconjuntos de datos (por ejemplo, 10 millones de solicitudes). se solicitó¿Cuál es la forma más eficiente de almacenar y consultar árboles?
Por ejemplo, dado un registro de acceso con las siguientes URL:
/ocp/about_us.html
/ocp/security/ed-209/patches/urgent.html
/ocp/security/rc/
/ocp/food/
/weyland-yutani/products/
quiero hacer consultas tales como:
- contar el número de solicitudes de todo 'abajo'/ocp.
- Igual que el anterior, pero solo cuenta las solicitudes de nodos secundarios en/ocp/security
- Devuelve las 5 URL principales más solicitadas.
- Igual que el anterior, excepto el grupo por una profundidad arbitraria,
por ejemplo Para la última consulta anterior, la profundidad de 2 para los datos volvería:
2: /ocp/security/
1: /ocp/
1: /ocp/food/
1: /weyland-yutani/products/
creo que el enfoque ideal sería probablemente utilizar una columna DB y tokenize las direcciones URL de tal manera que hay una columna para cada elemento de la URL . Sin embargo, me gustaría encontrar una forma de hacer esto con las aplicaciones de código abierto si es posible. HBase es una posibilidad, pero el rendimiento de la consulta parece demasiado lento para ser útil para las consultas en tiempo real (también, realmente no quiero estar en el negocio de volver a implementar SQL)
Soy consciente de que hay comerciales aplicaciones para hacer este tipo de análisis, pero por diversas razones quiero implementar esto por mi cuenta.
¡Buena presentación, gracias! – Rob