Tengo aproximadamente 4 millones de registros por día y tengo que mantener 7 años en línea, por lo que estamos buscando 10,2 mil millones de registros que necesito para poder buscarlos. Los usuarios esperan que la búsqueda sea lo suficientemente rápida para una interfaz de usuario, resultados en 3-5s
Debido a políticas fuera de mi control, no puedo usar una solución de base de datos lista para usar porque significa que tendré que entregar la base de datos a otro equipo para que la administre (no pregunte), lo que significa que pierdo la capacidad de optimizar el hardware y software ya que tienen un servicio único para bases de datos y cobran (internamente) por el GB. Estoy seguro de que recibiré comentarios que sugieran que hago el punto, ya tengo y la gerencia entiende que lo que me piden que haga es ridículo.
He estado buscando usar Lucene como el quid de mi solución. Almacenar los datos reales particionados por tipo y por día en archivos planos. Luego, usando un documento de Lucene para indexar algunos de los campos que se buscan, con el único campo "Almacenado" que es la identificación del registro (para que pueda leerlo desde el archivo plano)
No estoy exactamente informado sobre Lucene o los discos duros, pero según tengo entendido, habrá un tiempo inicial de E / S para buscar en el índice, luego, cuando tenga todas las ID de documentos de Lucene, leo los documentos que generarán más IO / buscando tiempo, luego leí el registro real desde el piso plano ... No puedo imaginar, dado el tamaño del conjunto de datos, que esto será muy rápido, ¿por qué estoy un poco preocupado?
Lucene tiene un tamaño máximo de documento de 2.1 billones por índice, por lo que requeriré varias indicaciones aquí.
¿Parece que este enfoque, a primera vista, podría funcionar?
Los datos que estoy almacenando son datos de acción de eventos. La mayoría de las consultas se agruparán por ID de evento y obtendrán los últimos detalles de acción de evento para un evento en particular. Algunas de las consultas analizarán eventos de conjuntos grandes y sus acciones de eventos individuales.