在 Cassandra 中使用 "time" 作为行键来存储网络数据包
Usage of "time" as a rowkey in Cassandra for storing network packets
我正在尝试将从netflow探测器接收的netflow数据包存储到Cassandra中。为了提高效率,我想将每个数据包存储在单独的行中。有人可以建议我可以使用的具有足够精度来存储 netflow 数据包的行键吗?我正在考虑使用一些时间函数。它是否足够精确,不会在数据包之间发生冲突?我正在使用libQtCassandra库来访问Cassandra。谢谢。。。。
您可以使用 Cassandra 之外可用的任何精度的时间函数,只需插入值即可。大多数平台都提供以毫秒精度获取时间的功能。
在基于 Linux 的系统上,您可以对行键使用毫秒级精度的 Unix 时间戳。那么你的rowkey可能是我假设的LongType。
换个说法,你的模型是有"瘦行"还是"宽行"。您不希望将数据分布在太多行中,因为无法扫描范围内的行。也许您可以考虑一个模型,其中最多几秒钟的时间是您的行键,而该秒内的特定毫秒作为列名,然后指向实际值。
像这样:
unix_timestamp_in_seconds => [ { millisecond_count: value}, { millisecond_count: value}, ...]
当然,这里我假设毫秒精度就足够了。如果您需要微秒级精度,那么它实际上取决于您的平台。
相关文章:
- boost::asio UDP 广播客户端仅接收"fast"数据包
- 如何使用发送数据包所花费的时间计算两个节点之间的距离?
- 发送固定大小的 UDP 数据包
- 使用 char* 存储数据和产生的错误
- pcap_handler回调仅在使用 NPCAP v0.9991 时包含空数据包
- 我可以存储数据的地方/C++,Linux,QtCreator
- 在 c++ 中解析数据包数据的最佳方法是什么?
- 接受函数在发送数据包时等待
- 如何在 omnet++ 中发送自定义数据包?
- 如何在共享库的整个生命周期内存储数据
- 数据包访问实践
- 在字符串数组中动态创建和存储数据
- 在C++中创建一个简单的数据包路由器,如何跟踪"客户端"?
- 德拉吉诺 LG01-S 收到异常数据包并停止工作
- 将数据包从C++服务器发送到NodeJs服务器时出现MessagePack解码错误
- 使用C++将UDP数据包存储在Structure中
- 是否可以将多个结构作为一个数据包存储在一个函数中,然后传递给其他函数并在那里提取?
- C++ - 如何在向量中使用pcap_next_ex存储脱机读取数据包
- 在 Cassandra 中使用 "time" 作为行键来存储网络数据包
- 如何在OMNeT++中存储不同时间戳的数据包