not - number in cassandra
Consultar particiones divididas en Cassandra en una sola solicitud (1)
Básicamente esto se reduce a elegir la resolución correcta para sus datos. Yo diría que el primer paso para usted sería determinar cuál es la mejor opción para sus datos. Permite, por ejemplo, tomar 1 hora como algo bueno y la pregunta es cómo recuperar todos los registros para una fecha determinada.
La lógica de su aplicación será un poco más complicada ya que usted está negociando la simplicidad para la capacidad de almacenar grandes cantidades de datos en forma distribuida. Tome la fecha que necesita y emita 24 consultas en un bucle y pegue los datos en el nivel de la aplicación. Sin embargo, cuando lo pega, puede ser enorme (no conozco sus requisitos de presentación o exportación, por lo que puede extraer 1M de memoria).
Otra idea puede ser tener una tabla como simple tabla de búsqueda que tenga una clave de fecha y valores de claves de partición que tengan datos financieros para esa fecha. Que cuando lees, primero ve a la tabla de búsqueda para obtener las claves y luego a las particiones que tienen resultados. También puede almacenar el contador de valores por clave de partición para saber qué cantidad de datos espera.
En general, es mejor descubrir un cubo natural en su conjunto de datos y agregarlo hasta la fecha (organización, código postal, etc.) y puede usar el truco con una tabla de búsqueda adicional. Este enfoque puede usarse para el símbolo que mencionaste. Puede tener símbolos como claves de partición, clústeres por fecha y valores de particiones que tengan resultados para esa fecha como valores. Luego de consultar el símbolo #
el 29-10-2015
y ver que las particiones A
, D
y Z
tienen resultados, vaya a esas particiones y obtenga datos financieros de ellas y agréguelas juntas en el nivel de la aplicación.
Estoy en el proceso de aprender Cassandra como una alternativa a las bases de datos SQL para uno de los proyectos para los que estoy trabajando, que involucra Big Data.
Con el propósito de aprender, he estado viendo los videos ofrecidos por DataStax, más específicamente DS220 que cubre el modelado de datos en Cassandra.
Mientras veía uno de los videos de la serie del curso, me presentaron el concepto de dividir particiones para administrar el tamaño de la partición.
Mi comprensión actual es que Cassandra tiene una capacidad lógica máxima de 2B entradas por partición, pero un máximo sugerido de un par de 100s MB por partición.
Actualmente estoy lidiando con grandes cantidades de datos financieros en tiempo real que debo almacenar (series de tiempo), lo que significa que puedo completar fácilmente los datos de GB en un día.
El curso de video habla sobre la introducción de una clave de partición adicional para dividir una partición con el propósito o reducir el tamaño por requisito de partición. El video señalaba el uso de una clave basada en el tiempo o una clave "cubo" arbitraria que se incrementa cuando se alcanza el número de filas manejables.
Con esto en mente, esto me llevó al siguiente problema: dado que las claves de partición solo se usan como criterios de igualdad (es decir, apuntar a la partición para buscar registros), ¿cómo puedo encontrar todos los registros que terminan repartidos en varias particiones? sin tener que especificar el cubo o la clave de marca de tiempo?
Por ejemplo, puedo recibir registros de 1M en un solo día, lo que probablemente exceda el límite de partición de 100-500Mb, por lo que no podría configurar una partición por fecha, lo que significa que mis datos diarios serían desglosados en particiones horarias, o alternativamente, en particiones "con compartimentos" (para tamaños de partición equilibrados). Esto significa que todos mis datos diarios se distribuirán en múltiples particiones divididas.
Dado este escenario, ¿cómo hago para consultar todos los registros de un día determinado? (las claves de agrupamiento adicionales pueden incluir un símbolo para el cual deseo tener los resultados, o quiero todos los registros para ese día específico)
Cualquier ayuda sería muy apreciada.
Gracias.