用于物理测量的良好(noSQL?)数据库[??关闭]
我们正在建立一个最终由数千个测量站组成的测量系统.每个站点将在其生命周期内节省大约5亿个测量值,包括30个标量值.这些将是浮动值.我们现在想知道如何在每个站点上保存这些数据,考虑到我们将在每个站点上构建一个Web应用程序
>我们希望在多个时间尺度上可视化数据(例如,一周,一个月,一年的测量) 此外,我们还想要一台能够显示1000个测量站数据的服务器.这将是500亿次测量中约50TB的数据.为了将数据从测量站传输到服务器,我认为某种类型的数据库级复制将是一种干净而有效的方式. 现在我想知道noSQL解决方案是否可能比mySQL更好用于这些目的.特别是couchDB,Cassandra以及像Redis这样的键值商店看起来很吸引我.您认为哪一种最适合“测量时间序列”数据模型?那么其他优势如崩溃安全和从测量站到主服务器的复制呢?
我认为CouchDB是一个很棒的数据库 – 但它处理大数据的能力值得怀疑. CouchDB的主要关注点是开发和离线复制的简单性,而不一定是性能或可伸缩性. CouchDB本身不支持分区,因此除非您使用BigCouch或发明自己的分区方案,否则您将受到最大节点大小的限制.
没有傻瓜,Redis是一个内存数据库.它可以非常快速有效地将数据输入和输出RAM.它确实能够使用磁盘进行存储,但它并不是非常好用.对于经常变化的大量数据非常有用. Redis确实有复制,但没有任何内置的分区支持,所以再次,你将独自在这里. 您还提到了Cassandra,我认为它更适用于您的用例. Cassandra非常适合无限增长的数据库,基本上它是原始用例.分区和可用性已经完成,因此您不必非常担心它.数据模型也比平均键/值存储更灵活,添加了第二维列,并且实际上可以容纳每行数百万列.例如,这允许时间序列数据被“划分”成覆盖时间范围的行.跨集群(分区)的数据分布是在行级别完成的,因此只需要一个节点来执行一行内的操作. Hadoop直接插入Cassandra,具有MapReduce,Pig和Hive的“本机驱动程序”,因此它可能用于聚合收集的数据并实现运行平均值.最佳实践是围绕查询对数据进行整形,因此可能希望以“非规范化”形式存储数据的多个副本,每种类型的查询一个. 看看这篇关于在Cassandra做时间序列的帖子: http://rubyscale.com/2011/basic-time-series-with-cassandra/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |