Estoy usando una máquina en la nube con 512 RAM para almacenar los datos de las velas en mysql, pero estoy teniendo problemas para consultar los datos de las velas. Mi solución actual es seleccionar todos los datos dentro de un intervalo de tiempo y hacer la conversión tick -> vela en el navegador, pero ese cálculo es demasiado pesado para rangos de tiempo largos.
He buscado preguntas similares, he investigado sobre bases de datos de series temporales, incluso he considerado soluciones de bases de datos como servicio. (Todavía estoy contactando con una de ellas para ver si me proporcionan los datos que faltan para las velas)
La cuestión es la siguiente:
Dados unos datos de 5 ticks por segundo (estos pertenecen a diferentes activos), Y un hardware de bajo presupuesto (512 RAM, 1 Core, 15 GB de disco vacío), Cuando necesito agregar los datos en velas de períodos arbitrarios, ¿Qué solución de base de datos existente sería más apropiada?
Mi solución actual es almacenar una columna indexada adicional con tiempo redondeado a 5 minutos, 10 minutos, 30 minutos, 1 hora, 5 horas, 1 día y escribí consultas mysql que pueden producir asset/open/high/low/close/start_time/end_time
filas según estas columnas en un intento de acelerar las consultas. Sin embargo, independientemente del índice que utilice y de la forma en que optimice las consultas, éstas acaban tardando segundos (y no milisegundos), lo cual es inaceptable.
¿Existen bases de datos que resuelvan mi problema?
Edición: los chicos de tempodb han dicho que acaban de añadir first
y last
funciones agregadas a su api :-) Min, max, first y last es todo lo que necesitaba para crear datos de barra