learn google big cassandra finance hbase bigtable time-series

cassandra - google - almacenar datos masivos de series de tiempo ordenadas en derivados bigtable



google nosql (6)

''Estoy de pie frente a la misma montaña. Mi problema principal con Casandra es que no puedo obtener una secuencia en el conjunto de resultados, por ejemplo en forma de un iterador.

Estoy mirando hacia arriba y hacia abajo los documentos y la red, pero nada.

No puedo recuperar todas las claves y luego obtener las filas, ya que miles de millones de filas lo hacen imposible.

Estoy tratando de averiguar exactamente qué son realmente estas nuevas tiendas de datos como bigtable, hbase y cassandra.

Trabajo con cantidades masivas de datos bursátiles, miles de millones de filas de datos de precios / cotizaciones que pueden sumar hasta 100s de gigabytes por día (aunque estos archivos de texto a menudo se comprimen por lo menos en un orden de magnitud). Esta información es básicamente un puñado de números, dos o tres cadenas cortas y una marca de tiempo (generalmente, un nivel de milisegundos). Si tuviera que elegir un identificador único para cada fila, tendría que elegir toda la fila (ya que un intercambio puede generar múltiples valores para el mismo símbolo en el mismo milisegundo).

Supongo que la forma más simple de asignar estos datos a bigtable (incluyo sus derivados) es por nombre de símbolo y fecha (que puede devolver una serie de tiempo muy grande, más de un millón de puntos de datos no es desconocido). Después de leer sus descripciones, parece que se pueden usar múltiples claves con estos sistemas. También estoy asumiendo que los números decimales no son buenos candidatos para las claves.

Algunos de estos sistemas (Cassandra, por ejemplo) dicen ser capaces de hacer consultas de rango. ¿Sería capaz de consultar de manera eficiente, por ejemplo, todos los valores de MSFT, para un día determinado, entre las 11:00 a.m. y la 1:30 p.m.?

¿Qué ocurre si deseo buscar en TODOS los símbolos para un día determinado y solicitar todos los símbolos que tienen un precio de entre $ 10 y $ 10.25 (por lo que estoy buscando los valores y quiero que se devuelvan las claves como resultado)?

¿Qué pasa si quiero obtener dos series, restar una de la otra, y devolver las dos series y su resultado, tendré que hacer su lógica en mi propio programa?

La lectura de documentos relevantes parece mostrar que estos sistemas no son muy adecuados para los sistemas masivos de series de tiempo. Sin embargo, si los sistemas como google maps se basan en ellos, creo que las series de tiempo también deberían funcionar. Por ejemplo, piense en el tiempo como el eje x, los precios como eje y y los símbolos como ubicaciones con nombre: de repente parece que bigtable debería ser el almacén ideal para series temporales (si se puede almacenar toda la tierra, recuperada) , ampliada y anotada, los datos bursátiles deberían ser triviales).

¿Puede algún experto señalarme en la dirección correcta o aclarar cualquier malentendido?

Gracias





Todavía no soy un experto , pero he estado jugando con Cassandra por unos días y tengo algunas respuestas para ti:

  1. No se preocupe por la cantidad de datos, es irrelevante con sistemas como Cassandra, si tiene $$$ para un gran grupo de hardware.

Algunos de estos sistemas (Cassandra, por ejemplo) dicen ser capaces de hacer consultas de rango. ¿Sería capaz de consultar de manera eficiente, por ejemplo, todos los valores de MSFT, para un día determinado, entre las 11:00 a.m. y la 1:30 p.m.?

Cassandra es muy útil cuando sabes cómo trabajar con las teclas. Puede pasar rápidamente por las teclas. Entonces, para buscar MSFT entre las 11:00 y las 1:30 p.m., debe marcar sus filas de la siguiente manera:

MSFT-timestamp, GOOG-timestamp, ..etc Luego puede decirle a Cassandra que encuentre todas las claves que comienzan con MSFT-ahora y terminan con MSFT-ahora + 1 hora.

¿Qué ocurre si deseo buscar en TODOS los símbolos para un día determinado y solicitar todos los símbolos que tienen un precio de entre $ 10 y $ 10.25 (por lo que estoy buscando los valores y quiero que se devuelvan las claves como resultado)?

No soy un experto, pero hasta ahora me di cuenta de que Cassandra no ''busca por valores en absoluto. Entonces, si quiere hacer lo anterior, tendrá que hacer otra tabla dedicada solo a este problema y diseñar su esquema para que se ajuste al caso. Pero no será muy diferente de lo que describí anteriormente. Se trata de nombrar tus llaves y columnas. ¡Casandra puede encontrarlos muy rápido!

¿Qué pasa si quiero obtener dos series, restar una de la otra, y devolver las dos series y su resultado, tendré que hacer su lógica en mi propio programa?

Correcto, toda la lógica se hace dentro de tu programa. Esto no es MySQL. Esto es solo un motor de almacenamiento. (Pero estoy seguro de que las próximas versiones ofrecerán este tipo de cosas)

Por favor, recuerde, que soy un novato en esto, si me equivoco, siéntase libre de corregirme.


Alguien a quien respeto recomendó la Open Time Series Database. En particular, que el esquema era el mejor que había visto en su vida.

http://opentsdb.net/