2016-05-28 3 views
1

Si nous pouvons extraire l'heure de TimeUUID, cela a-t-il un sens d'utiliser timestamp comme une autre colonne dans Cassandra?TimeUUID vs horodatage en Cassandra?

De même, comment pouvons-nous extraire Time de TimeUUID et faire des requêtes de plage (par exemple, de janvier 2016 à mai 2016) dessus?

Répondre

0

Vous n'avez pas besoin de stocker l'horodatage dans une colonne différente, si vous avez choisi d'utiliser timeuuid. Vous recherchez this.

Veuillez prendre connaissance des codes min et max. Les bits LSB déterminent l'unicité. les 8 derniers bits peuvent aller de 00000000 à ffffffff.

Alors, veuillez préparer votre requête de distance en conséquence.

Espérons que cela aide!

0

fonctions Timeuuid

maintenant

La fonction maintenant ne prend aucun argument et génère, sur le noeud coordinateur, une nouvelle timeuuid unique, (au moment où l'instruction à l'aide de son exécution). Notez que cette méthode est utile pour l'insertion mais qu'elle est largement non-sensuelle dans les clauses WHERE. Par exemple, une requête du formulaire

SELECT * FROM myTable WHERE t = now() ne renverra jamais aucun résultat de conception, car la valeur retournée par now() est garantie d'être unique.

minTimeuuid et maxTimeuuid

Le minTimeuuid (resp. MaxTimeuuid) fonction prend une valeur d'horodatage t (qui peut être un horodatage ou une chaîne de date) et retourner un timeuuid faux correspondant au plus petit (resp. Le plus grand) timeuuid possible ayant pour timestamp t. Ainsi, par exemple:

SELECT * FROM myTable WHERE t > maxTimeuuid('2013-01-01 00:05+0000') AND t < minTimeuuid('2013-02-02 10:00+0000') sélectionnera toutes les lignes où la colonne timeuuid t est strictement plus que 2013-01-01 00:05+0000 mais strictement plus jeune que 2013-02-02 10:00+0000. S'il vous plaît noter que t >= maxTimeuuid('2013-01-01 00:05+0000') ne sélectionnerait toujours pas un timeuuid généré exactement à 2013-01-01 00:05+0000 et est essentiellement équivalent à t > maxTimeuuid('2013-01-01 00:05+0000').

Functions table

Attention: Nous avons appelé les valeurs générées par minTimeuuid et maxTimeuuid UUID faux parce qu'ils ne ne respectent pas le processus de génération UUID temps spécifié par la RFC 4122. En particulier, la valeur retournée par ces 2 méthodes ne sera pas unique. Cela signifie que vous ne devez utiliser ces méthodes que pour l'interrogation (comme dans l'exemple ci-dessus). Insérer le résultat de ces méthodes est presque certainement une mauvaise idée.

fonctions de conversion temps

Un certain nombre de fonctions sont fournies à « convertir » un timeuuid, un horodatage ou une date dans un autre type natif.

0

J'ai eu ce problème et j'ai été converti lors de la requête.

SELECT toTimestamp(uuid_timestamp) FROM table 

Ce n'était pas un problème car j'insérais dans une base de données panda pour l'analyse.