hmilyTY 2019-03-01 16:36 采纳率: 0%
浏览 1809
已结题

java串口通信及处理大量数据

当我接手到这样一个项目的时候,我内心是崩溃的,第一次去处理串口通信,第一次那么短的时间去读取那么多的数据,第一次去存那么大量的数据,每一个问题都能让我在生死边缘徘徊,我先简单的表述一下这个程序的主要功能吧。
这个程序主要是对500个电流表头进行实时数据的监控,每100个电流表头为一组,通过一根串口线进行通讯,软件要实现的功能是循环的去读取这100个设备的电流数据。读取的时间是10s。意思是100ms读取完一个电流表头的数据,这条数据里存了这100ms内的100条电流数据。500个电流表头存一天的数据就是4亿3200万条数据,要求存一个月。
上述就是整个项目要完成的功能,在这个项目中遇到了两个难以解决的问题。
1.java串口通讯的延时,10s内去读取100个设备的数据,至少丢50条数据。后来发现,java从发送指令到监听到数据返回的时间大概在150ms到300ms之间,尝试了多种方法也无法解决。
2.大量的数据存储,根据计算,1天的数据量在4亿3200万条左右,这个数据怎么存到数据库中才能保证查询不会太过卡顿。并且,要存30天的数据。数据库的选择,数据结构的设计等。

  • 写回答

3条回答 默认 最新

  • 再写三行 2019-03-01 17:22
    关注

    1.这么大的数据量你去数据库查询的话肯定速度很慢啊 所以得进行分表设计也就是横向的拆分,你一天要存储4亿3200万条数据,
    那么一个月就是129亿6千万条 我们暂且为130亿条数据一般数据库拿mysql来说吧只能存储1000万条数据那你就要分1300张表,1300张表肯定不能放到一个数据库里面你最起码得分库吧分库你就要加机器啊,最起码5台服务器吧。然后再加上redis fluster 就差不多了吧

    2.或者你可以考虑一下使用mongodb 这是链接http://forum.foxera.com/mongodb/topic/444/对比mysql-什么场景更适用mongodb?un=Jesse 当然如果你要使用的话得去自己研究一下

    评论

报告相同问题?

悬赏问题

  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面
  • ¥50 NT4.0系统 STOP:0X0000007B