2010-02-06 5 views
17

Nous envisageons d'utiliser Cassandra pour stocker un flux d'informations provenant de diverses sources.Données de la série temporelle Cassandra

Un problème auquel nous sommes confrontés est la meilleure façon d'interroger entre deux dates.

Par exemple, nous aurons besoin de récupérer un objet entre datetime dt1 et datetime dt2.

Nous considérons actuellement l'horodatage unix créé comme la clé pointant vers l'objet réel, puis l'utilisation de get_key_range pour interroger pour récupérer?

De toute évidence, cela ne fonctionnerait pas si deux éléments avaient le même horodatage.

Est-ce la meilleure façon de faire du datetime dans les magasins noSQL en général?

+2

Vous êtes curieux de savoir comment vous avez finalement modélisé vos données? Nous regardons quelque chose de similaire et j'essaie de rassembler les meilleures pratiques, etc. – AlexGad

Répondre

15

Les rangées de Cassandra peuvent être très volumineuses, donc envisagez de la modéliser comme des colonnes dans une rangée plutôt que comme des lignes dans une CF; Vous pouvez ensuite utiliser les opérations de découpage de la colonne, qui sont plus rapides que les découpes de ligne. S'il n'y a pas de touches "naturelles" associées, vous pouvez utiliser des clés quotidiennes ou horaires comme "2010/02/08 13:00".

Sinon, oui, en utilisant des requêtes de plage (get_key_range est obsolète en 0.5, utilisez get_range_slice) est votre meilleure option.

+1

Quelle est la taille est très grande? Sur la diapositive 41 de la présentation à http://www.slideshare.net/jbellis/cassandra-open-source-bigtable-dynamo vous dites "Millions de colonnes par ligne" pour 0.5. Est-ce que les colonnes d'affilée sont toujours la bonne solution pour les grandes séries chronologiques? –

+0

Oui, les colonnes sont la voie à suivre. – z8000

+0

La raison d'utiliser des colonnes à la place des lignes sont les partitions? Depuis le RandomPartitioner ne conserve pas l'ordre, tandis que ByteOrderedPartitioner crée des hotspots. Mais le partitionnement n'est-il pas basé sur les clés de ligne? Signifie que si nous stockons un grand nombre de colonnes dans une seule ligne, il subira également le problème de point chaud? –

Questions connexes