TimeUUIDから時間を抽出できるのであれば、Cassandraの別の列としてタイムスタンプを使用するのは意味がありますか?TimeUUIDとCassandraのタイムスタンプ?
また、TimeUUIDからTimeを抽出して範囲クエリ(2016年1月〜2016年5月など)を行うにはどうすればよいですか?
TimeUUIDから時間を抽出できるのであれば、Cassandraの別の列としてタイムスタンプを使用するのは意味がありますか?TimeUUIDとCassandraのタイムスタンプ?
また、TimeUUIDからTimeを抽出して範囲クエリ(2016年1月〜2016年5月など)を行うにはどうすればよいですか?
timeuuidの使用を選択した場合、タイムスタンプを別の列に保存する必要はありません。
あなたはthisを探しています。
min
とmax
に注意してください。 LSBビットは一意性を決定します。すなわち、最後の8ビットは、00000000
からffffffff
までの範囲とすることができる。
したがって、それに応じて範囲クエリを準備してください。
希望すると便利です。
Timeuuidは今
今関数は(それを使用して文を実行した時点で)新しいユニークtimeuuid、コーディネータノード上で、引数を取らず、生成
を機能します。このメソッドは挿入には便利ですが、WHERE句ではほとんど意味がありません。たとえば、now()によって返された値が一意であることが保証されているため、
という形式のクエリは決して返されません。
minTimeuuid
とmaxTimeuuid
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')
に相当することに注意してください。
警告:我々は、彼らが何点に特にRFC 4122で指定された時間ベースのUUIDの生成プロセスを行わないので、値はこれらの2つの方法で返さminTimeuuidによって生成された値と呼ばれ、偽のUUIDをmaxTimeuuidユニークではありません。つまり、これらのメソッドをクエリに使用するだけです(上記の例のように)。これらのメソッドの結果を挿入することは、ほぼ確実に悪い考えです。
時間変換関数
機能の数は、他の天然型にtimeuuid、タイムスタンプまたは日付を「変換」するために設けられています。
この問題が発生し、クエリ中に変換されました。
SELECT toTimestamp(uuid_timestamp) FROM table
私は分析のためにパンダのデータフレームに挿入していたので問題はありませんでした。