簡體   English   中英

在Cassandra中將“時間”用作行鍵來存儲網絡數據包

[英]Usage of “time” as a rowkey in Cassandra for storing network packets

我正在嘗試將從Netflow探針接收到的Netflow數據包存儲到Cassandra中。 我想將每個數據包存儲在單獨的行中,以提高效率。 有人可以建議我使用一個行精度足夠高的行鍵來存儲netflow數據包嗎? 我當時在考慮使用一些時間功能。 是否足夠精確,以免數據包之間發生沖突? 我正在使用libQtCassandra庫訪問Cassandra。 謝謝....

您可能會使用Cassandra以外的任何精度的時間函數,只需插入值即可。 大多數平台都提供了以毫秒精度獲取時間的功能。

在基於Linux的系統上,您可以為行鍵使用毫秒級精度的Unix時間戳。 那么您的行鍵可能就是我假設的LongType。

換句話說,您的模型將具有“瘦行”或“寬行”。 您不希望將數據分布在太多行中,因為您無法掃描范圍內的行。 也許您可以考慮一個模型,其中以秒為單位的時間是您的行鍵,並且以毫秒為單位的特定毫秒作為列名,然后它將指向實際值。

就像是:

unix_timestamp_in_seconds => [ { millisecond_count: value}, { millisecond_count: value}, ...]

當然,這里我假設毫秒精度就足夠了。 如果您需要微秒級的精度,那么它實際上取決於您的平台。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM