netflow プローブから受信した netflow パケットを Cassandra に保存しようとしています。効率化のために、各パケットを別々の行に格納したいと考えています。netflow パケットを格納するのに十分な精度を持つ、使用できる行キーを誰かが提案できますか? 私はいくつかの時間関数を使用することを考えていました。パケット間の衝突が起こらないほど正確ですか? CassandraにアクセスするためにlibQtCassandraライブラリを使用しています。ありがとう....
質問する
167 次
1 に答える
0
Cassandra の外部で利用可能な任意の精度の時間関数を潜在的に使用し、単純に値を挿入することができます。ほとんどのプラットフォームでは、ミリ秒の精度で時間を取得する関数が提供されています。
Linux ベースのシステムでは、行キーにミリ秒の精度で Unix タイムスタンプを使用できます。行キーはおそらく LongType になると思います。
別の注意として、モデルには「スキニー行」または「ワイド行」がありますか。範囲内の行をスキャンできないため、データをあまりにも多くの行に分散させたくありません。おそらく、秒までの時間が行キーであり、その秒内の特定のミリ秒が実際の値を指す列名であるモデルを考えることができます。
何かのようなもの:
unix_timestamp_in_seconds => [ { millisecond_count: value}, { millisecond_count: value}, ...]
もちろん、ここではミリ秒の精度で十分であると想定しています。マイクロ秒の精度が必要な場合は、実際にはプラットフォームに依存します。
于 2013-09-30T17:22:59.010 に答える