我有很强的用例将科学数据(即双矩阵和向量以及关系数据)混合在一起,并将其作为分布式计算(如MapReduce、hadoop等)的数据源。到目前为止,我一直在用自定义的HDF模式和Postgres中的关系数据将我的科学数据存储在HDF5文件中,但由于这种设置不能很好地扩展,我想知道是否有更多的NoSQL混合方法来支持这些数据的异构性?
例如,我的用例是分发一个涉及以下内容的复杂过程:
这些步骤需要一个能够同时处理关系数据和科学数据的分布式数据库。一种可能是将科学数据存储在HDF5中,然后将其作为BLOB列放在关系数据库中,但这是一种误用。另一种方法是将HDF5结果存储在磁盘中,并有一个连接到它的关系数据库,但是我们失去了自我包容。然而,这两种方法中没有一种能够分配数据,以便在HPC节点中直接访问,因为需要从中心节点中提取数据,这并不理想。
发布于 2014-02-04 09:24:56
我不确定我是否能给出一个正确的解决方案,但我们有一个类似的设置。
我们将元信息存储在RBDMS (postgresql)中,并将实际的科学数据存储在HDF5文件中。
我们有几个分析是在我们的高性能计算机上进行的。这样做的方式如下:
REST
从RDBMS数据库检索元信息,并对HPC上的文件进行分级,然后在集群上创建一个PBS
作业。PBS
作业,带有作业id的消息将被发送回message,以存储在RBDS数据库中。我建议不要将二进制文件作为BLOB存储在RDBMS中。
我会用HDF5格式保存它们。您可以为数据库和文件系统制定不同的备份策略。
有几个额外的指针:
REST
接口后面。这可能会解决你的遏制问题NoSQL
DB中,我建议您查看一下Elasticsearch
。它可以很好地与时间序列数据一起工作,它是按盒分发的,而且它还有一个Hadoop插件。https://stackoverflow.com/questions/21524512
复制相似问题