2016-05-28 8 views
1

TimeUUIDから時間を抽出できるのであれば、Cassandraの別の列としてタイムスタンプを使用するのは意味がありますか?TimeUUIDとCassandraのタイムスタンプ?

また、TimeUUIDからTimeを抽出して範囲クエリ(2016年1月〜2016年5月など)を行うにはどうすればよいですか?

答えて

0

timeuuidの使用を選択した場合、タイムスタンプを別の列に保存する必要はありません。

あなたはthisを探しています。

minmaxに注意してください。 LSBビットは一意性を決定します。すなわち、最後の8ビットは、00000000からffffffffまでの範囲とすることができる。

したがって、それに応じて範囲クエリを準備してください。

希望すると便利です。

0

Timeuuidは今

今関数は(それを使用して文を実行した時点で)新しいユニークtimeuuid、コーディネータノード上で、引数を取らず、生成

を機能します。このメソッドは挿入には便利ですが、WHERE句ではほとんど意味がありません。たとえば、now()によって返された値が一意であることが保証されているため、

という形式のクエリは決して返されません。

minTimeuuidmaxTimeuuid

minTimeuuid(RESP。maxTimeuuid)関数は、(タイムスタンプまたは日付文字列のいずれかであり得る)タイムスタンプ値tをとり、最小に対応する偽timeuuidを返す(それぞれ最大)タイムスタンプtを有する可能性のあるタイムアウト値。例えばだから:

SELECT * FROM myTable WHERE t > maxTimeuuid('2013-01-01 00:05+0000') AND t < minTimeuuid('2013-02-02 10:00+0000') はtimeuuid列tが厳密に2013-01-01 00:05+0000よりも古いが、2013-02-02 10:00+0000より厳密に年下であるすべての行を選択します。 t >= maxTimeuuid('2013-01-01 00:05+0000')は、正確に2013-01-01 00:05+0000に生成されたtimeuuidを選択せず​​、本質的にt > maxTimeuuid('2013-01-01 00:05+0000')に相当することに注意してください。

Functions table

警告:我々は、彼らが何点に特にRFC 4122で指定された時間ベースのUUIDの生成プロセスを行わないので、値はこれらの2つの方法で返さminTimeuuidによって生成された値と呼ばれ、偽のUUIDをmaxTimeuuidユニークではありません。つまり、これらのメソッドをクエリに使用するだけです(上記の例のように)。これらのメソッドの結果を挿入することは、ほぼ確実に悪い考えです。

時間変換関数

機能の数は、他の天然型にtimeuuid、タイムスタンプまたは日付を「変換」するために設けられています。

0

この問題が発生し、クエリ中に変換されました。

SELECT toTimestamp(uuid_timestamp) FROM table 

私は分析のためにパンダのデータフレームに挿入していたので問題はありませんでした。

関連する問題