我有一个与此处问题类似的独特问题:
https://news.ycombinator.com/item?id=8368509
我有一个高速流量分析盒,它以大约5 Gbps的速度捕获,并从中挑选出特定的数据包,以便在C ++程序中保存为某种格式。每天可能会有1-3 TB写入磁盘。由于它是网络数据,因此它的所有时间序列都低至纳秒级别,但将其保存在秒或毫秒级别并且让另一个应用程序对嵌入的更高分辨率时间戳进行排序会很好。我的问题是决定使用哪种格式。我的两个要求是:
另一个不是硬性要求的好处是:
第二个是由于遗留应用程序而无法改变的东西,但我认为第一个更重要。我可能想要导出到matlab中的查询类型类似于“在时间Y和Z之间拉取度量X”,因此最终必须采用HDF5格式。如果需要,我可以使用一个名为MatIO的外部库来编写matlab文件,但如果没有翻译步骤会更好。我已经阅读了上面提到的整个主题,并且有许多选项似乎脱颖而出:kdb +,Cassandra,PyTables和OpenTSDB。所有这些似乎都是我想要的,但我无法弄清楚将它变成MATLAB HDF5格式是多么容易,如果其中任何一种都比其他格式更难。
如果有人有类似的经历,那将是一个很大的帮助。谢谢!
答案 0 :(得分:1)
KDB + tickerplant当然能够以该速率捕获数据,但是您需要确定很多事情(无论您选择何种解决方案)
taskset
一个自动售货机,例如,一个没有其他任何东西可以与之竞争的核心基本上有很多方法可以减少这个。我可以说,虽然适当的硬件KDB +可以完成这项工作。但是,如果您想要HDF5,那么可以通过简单的过程捕获数据并在运行中写入/转换为磁盘。