私は、ログファイルにデータを頻繁に書き込む割合のセンサーを持っています。これらのログをCassandraに保存し、Sparkと一緒に処理したいと思います。Cassandra - TimeUUIDでタイムスタンプを複製しますか?
私はTimeUUIDカラムを使って、注文を自動的に保存するためにタイムスタンプを保存することを考えました。私のクエリでは範囲クエリが頻繁に使用されるため、これが理想的かもしれないと考えました。しかし、私のログには、ログの頻度のために、に重複タイムスタンプが含まれている可能性があります。ログはcassandraにストリーミングされません。私は過去のデータだけで作業しています。タイムスタンプは私の複合主キーの一部になります。私は行キーを列挙して、重複したタイムスタンプを持つ行を一意にすることができる実行可能な列を考えることはできません。
documentationは、次のように述べています。「minTimeuuid関数とmaxTimeuuid関数によって返される値は、値がRFC 4122で指定された時間ベースのUUID生成プロセスに適合しないという点で、真のUUIDではありません。今の機能とは異なります。
now
を使用する代わりにTimeUUIDの日付を強制すると、これによって以前のデータが上書きされることがあります。
Java/Scalaを使用して、履歴データを.jsonからCassandraに一括挿入します。 (カサンドラ3.0.8 | CQLの仕様3.4.0 |ネイティブプロトコルV4)
どのように私は私のデータ内の重複したタイムスタンプを持つことができますか?
- プライマリキーにTimeUUID(現在)を使用し、実際の日付/時刻を別の列に保存しますか?これにより、実際の日付/時刻を既に注文しているというメリットが失われてしまいます。
- Java/Scalaアプリケーションが有効でユニークなTimeUUIDを生成することを確認する必要がありますか?もしそうなら、共通のライブラリがありますか?
他の(より良い)オプションがありますか?
おかげ