我有一个强大的用例,用于混合科学数据,即双矩阵和向量以及关系数据,并将其用作分布式计算的数据源,例如: MapReduce,hadoop等到目前为止,我一直在使用自定义HDF模式和Postgres中的关系数据将我的科学数据存储在HDF5文件中,但由于这种设置不能很好地扩展,我想知道是否有更多的NoSQL混合方法来支持这个数据的异质性?
e.g。我的用例是分发一个涉及以下内容的复杂过程:
这些步骤需要一个可以处理关系数据和科学数据的分布式数据库。可能的做法是将科学数据存储在HDF5中,然后将其作为BLOB列放在关系数据库中,但这是一种误用。另一个是将HDF5结果存储在磁盘中,并且有一个关联数据库链接到它,但我们失去了自我控制。但是,这两种方法都没有考虑分配数据以便在HPC节点中直接访问,因为需要从中心节点提取数据,这并不理想。
答案 0 :(得分:2)
我不确定我是否可以提供适当的解决方案,但我们有类似的设置。
我们有存储在RBDMS(postgresql)中的元信息和HDF5文件中的实际科学数据。
我们在HPC上运行了一些分析。它的完成方式如下:
REST
从RDBMS数据库中检索元信息,并在HPC上分级文件,然后在群集上创建PBS
作业。 PBS
作业后,将具有job-id的消息发送回消息代理,以存储在RBDS数据库中。 我建议不要将二进制文件作为BLOB存储在RDBMS中 我会把它们保持为HDF5格式。您可以为数据库和文件系统提供不同的备份策略。
其他一些指示:
REST
界面后面的所有内容(RBMS和HDF5存储)。这可能会解决您的遏制问题NoSQL
数据库中,我建议您查看Elasticsearch
。它适用于time-series data,它开箱即用,并且还有一个Hadoop plugin