为了账号安全,请及时绑定邮箱和手机立即绑定

哪些数据库比较适合实现数据实时入库的需求?

哪些数据库比较适合实现数据实时入库的需求?

慕婉清6462132 2019-04-09 20:23:27
需求大致上是这样的:数据接收端每5-10个毫秒会从分布式计算网络收到1-10M左右的数据,希望在不影响接收线程接收速度,不丢帧的前提下,把这些数据记录下来。这些数据是以任务名+时间戳+数据的形式发送过来的。希望能根据任务名实时保存到数据库中。现在的问题是有哪些数据库比较适合干这件事。数据库新手,曾经尝试过SQLserver2008,每来一条数据就调用API写入数据库,结果常常崩溃。后来先在内存中缓存一些再写入数据库,但是申请内存多了也容易导致程序崩溃。对sqlserver未做什么优化。考虑NOSQL数据库是不是更适合干这种事情,例如mongoDB什么的。我们现在的临时解决方案有两个,一个是先在内存中缓存,然后新开线程向数据库写入,但是在回放使用数据时非常麻烦,要对数据排序,合并等等。另一个是数据先直接写到硬盘的dat文件中,在接收结束后再慢慢写入数据库,写入后删除硬盘上的文件。问题是这些数据有保密性和访问权限的要求,如果在写入数据库过程中程序崩溃或者程序被强行中止,那么硬盘上的数据就暴露了。所以还是希望能实时入库。
查看完整描述

2 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

如果按照每10ms接收10M数据的话,1秒钟就是1G数据,每小时的数据量高达3.6T,这个大的数据量个人觉得使用传统的关系型数据已经不合适了。
如果对查询的灵活性要求不高,建议直接放到日志文件存储。缓存的意义估计不大,一般配置的PCserver,在这样的大数据量下内存是不够用的。
至于权限管理,应该和数据存放方式没有直接关系,毕竟不可能让用户直接查询数据库,权限处理在应用程序中处理就可以了。
                            
查看完整回答
反对 回复 2019-04-09
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

队列+mongodb。
数据先入队列,然后开多线程入库。
----ps:
1秒1G数据,1分钟1x60=60G数据,1小时3.6T,一天86.4T数据,一个月就2.5PB。
您做的是什么东西==
                            
查看完整回答
反对 回复 2019-04-09
  • 2 回答
  • 0 关注
  • 379 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信