暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

每日一答:存储实时采集数据的数据库如何选择和设计?

读字节 2021-04-12
957

 戳蓝字“读字节”关注我们哦


问题:

数据采集24小时连续不断,更新或插入数据库操作的频率大概在每秒1000+。


回答:

  1. 采集数据主要是看应用场景,如果是采集数据按周期整存整取,批量读取分析的话,用分布式文件系统,数据量够大,写入非常快,直接上Hadoop hdfs

  2. 但是若数据采集到,不仅要做离线分析,还需要实时的回放查找,那么对于这种情况最好的方法就是使用时序数据库,例如opentsdb,它是基于HBASE,因此底层还是依赖Hadoop hdfs。influxdb也不错,自己实现原生数据库,只不过你要为集群模式付费,其实它们都是通过lsm-tree的nosql,对最近存储的数据,查找性能很强,但是对于历史数据的查找速度就差点。当然你也可以考虑国产清华造的IoTDB,现在也是Apache顶级开源项目了,而且也是需要通过Hadoop hdfs来保证数据可靠性!

  3. 再加一条,若应用场景不仅仅是高速写入,还可能涉及到大量的范围查找,那么就要从MongoDB这样的分布式数据库的选择基础之上进行优化,因其采用B-tree索引,范围查询的综合效果肯定是要好于基于lsm-tree的nosql(近期数据查找快),例如时序数据库基本上都是lsm-tree。但Mongo的写入一定要根据实际数据结构优化,因为你的业务基本上是1毫秒级的写入,这对于Mongo是一个不小的挑战,所以MongoDB的批量顺序写,以及加大内存资源等设置就很重要。


如果觉得写得不错,那就点个赞或者“在看”吧,多谢阅读。

文章均为“读字节”原创,转载务必注明来源。


点这里👇关注我

文章转载自读字节,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论