收集和收集过滤大量数据

时间:2012-02-20 14:48:11

标签: java database

我有很少的JAVA编码经验(在大学的某些课程)但在数据收集方面没有。

我想监控CAN总线上发送的所有消息&暂时存储这些以过滤它们,以便我可以隔离一些特定的消息。

这意味着我必须每秒存储最多17543条1字节的消息。我想存储 - 至少 - 几十秒钟。

最好的方法是什么?

我可以将所有这些存储在一个数组中吗? 使用数据库(例如Hibernate)会更好吗?

我知道这是开放式的,但我想知道什么是可能的,以及处理这个问题的最佳方向是什么。

3 个答案:

答案 0 :(得分:1)

所以,你得到(最多)每秒17,543条消息,每条消息只有1个字节,你需要存储几十秒?

这不是很多数据,您可以轻松地将其存储在内存中的数组中。假设您要存储1分钟的消息,即17,543 x 60秒=小于1 MB的数据。这是现代计算机上的花生。数据库太过分了。

答案 1 :(得分:1)

Hibernate不是数据库。这是一个ORM。

20 seconds = 20 * 17543 bytes 
           = 350860 bytes
           = 350 KB 
           = nothing. 

将所有内容存储在内存中对于如此少量的数据不会有问题。

答案 2 :(得分:0)

  

我必须每秒存储最多17543条1字节的消息。我想存储 - 至少 - 几十秒钟。

将消息存储在circular buffer中可能有意义。这可以使用数组轻松实现。

30秒的数据需要大约500KB的存储空间。