Me gustaría preguntarle a mis compañeros opiniones acerca de las mejores estructuras de datos para ser utilizadas para indexar series de tiempo (también conocido como datos de columna, aka plano lineal).Lo mejor de las estructuras de datos de indexación para series de tiempo extremadamente grandes
Dos tipos básicos de series de tiempo existir basadas en la característica de muestreo/discretización:
discretización regulares (cada muestra se toma con una frecuencia común)
discretización irregular (se toman las muestras en los puntos de tiempo arbitrarios)
consultas que serán necesarios:
Todos los valores en el intervalo de tiempo [t0, t1]
Todos los valores en el intervalo de tiempo [t0, t1] que son mayores/menores de v0
Todos los valores en el momento rango [t0, t1] que están en el rango de valores [v0, v1]
los conjuntos de datos constan de series de tiempo se resume (que tipo de consigue sobre la discretización irregular), y de series de tiempo multivariante. Los conjuntos de datos en cuestión tienen un tamaño de aproximadamente 15-20TB, por lo que el procesamiento se realiza de forma distribuida, ya que algunas de las consultas descritas anteriormente darán lugar a conjuntos de datos más grandes que la cantidad física de memoria disponible en cualquier sistema. El procesamiento distribuido en este contexto también significa enviar el cómputo específico de datos requerido junto con la consulta de series de tiempo, para que el cálculo pueda ocurrir tan cerca de los datos como sea posible, a fin de reducir las comunicaciones de nodo a nodo (un tanto similar al paradigma map/reduce) - en la proximidad corta de computación y datos es muy crítico.
Otro problema que el índice debería ser capaz de hacer frente, es que la abrumadora mayoría de los datos son estáticos/históricos (99.999 ...%), sin embargo, a diario se agregan nuevos datos, piense en "en el Sensores de campo "o" datos de mercado ". La idea/requisito es poder actualizar cualquier cálculo en ejecución (promedios, garch, etc.) con una latencia tan baja como sea posible, algunos de estos cálculos en ejecución requieren datos históricos, algunos de los cuales serán más de lo que razonablemente se pueden almacenar en caché.
Ya he considerado HDF5, funciona bien/eficientemente para conjuntos de datos más pequeños, pero comienza a arrastrarse a medida que los conjuntos de datos se hacen más grandes, también no hay capacidades nativas de procesamiento en paralelo desde el front-end.
en busca de sugerencias, enlaces, además de leer, etc (soluciones de C o C++, bibliotecas)
Las consultas de los tipos 1-3 a menudo se denominan "informes de rango ortogonal". – oldboy
http://dba.stackexchange.com/questions/16583/using-an-rdbms-for-querying-tenth-of-terabytes-of-time-series-data –
@Martin: Gracias por eso, pero el problema con solo tener un martillo es que todo parece un clavo; plantear una pregunta de este tipo en un sitio de Q/A altamente orientado hacia db/dba dará como resultado respuestas con un ligero sesgo. –