para un sistema de contabilidad de tráfico Necesito almacenar grandes cantidades de conjuntos de datos sobre paquetes de internet enviados a través de nuestro enrutador de puerta de enlace (que contiene marca de tiempo, ID de usuario, IP de destino o de origen, cantidad de bytes, etc.).¿Cómo debo almacenar cantidades extremadamente grandes de datos de tráfico para una fácil recuperación?
Estos datos tienen que almacenarse durante un tiempo, al menos unos días. La recuperación fácil también debería ser posible.
¿Cuál es una buena manera de hacer esto? Ya tengo algunas ideas:
Cree un archivo para cada usuario y día y anexe a él cada conjunto de datos.
- Ventaja: Probablemente sea muy rápido, y los datos son fáciles de encontrar dado un diseño de archivo consistente.
- Desventaja: no es fácil ver, p. todo el tráfico UDP de todos los usuarios.
utiliza una base
- Ventaja: Es muy fácil encontrar datos específicos con la consulta SQL derecha.
- Desventaja: no estoy seguro de si hay un motor de base de datos que pueda manejar de manera eficiente una tabla con posiblemente cientos de millones de conjuntos de datos.
Quizás sea posible combinar los dos enfoques: Usar un archivo de base de datos SQLite para cada usuario.
- Ventaja: Sería fácil obtener información para un usuario que utiliza consultas SQL en su archivo.
- Desventaja: Obtener información global aún sería difícil.
Pero tal vez alguien más tiene una muy buena idea?
Muchas gracias de antemano.
Tiene razón, los usuarios deben poder verificar el tráfico que causaron. Lamentablemente, no puedo usar SQL Server, ya que todos nuestros servidores ejecutan Debian Linux. Hace algún tiempo, escribí una consulta en nuestra base de datos PostgreSQL para encontrar usuarios sin contrato. Parecía una simple cuestión de encontrar todas las entradas en una tabla que no tienen entradas coincidentes en otra tabla, ambas tablas tienen menos de 5000 filas. Sin embargo, la consulta resultante tardó cinco segundos en ejecutarse. Es por eso que me preocupan las consultas en cientos de millones de conjuntos de datos. –
¡Me parece que alguien olvidó indexar su base de datos de Postgre! Una consulta simple como la de un conjunto de datos tan pequeño debería demorar milisegundos en una base de datos diseñada adecuadamente. – HLGEM