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

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

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

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

2 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

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

添加回答

举报

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