【发布时间】:2017-09-13 23:14:47
【问题描述】:
请考虑以下情况:
- 我每小时测量一次价值(时间)(从几个月到大约 10 年的广告系列)
- 关闭几个物种(1到10)
- 有几个仪器(1到5)
- 在多个测量网站 (~70)
- 每个站点都有多个采样级别(1 到 5)
- 每个值都有一个标志,表明它是否有效
考虑到数据库/文件/任何东西都应该可以用 R 读写。
注意:
- 一些实验包括在很长一段时间内测量少数物种,使用单一仪器和采样水平,
- 一些实验包括比较许多网站 (~70) 的相同几个月时间范围
- 一些站点有许多采样级别和/或仪器(将进行比较)
- 存储系统必须是可并行读取(如果可能的话可写入)
到目前为止我尝试了什么:
- MySQL 数据库,每个站点/物种 1 个表,每个表包含以下列:时间、采样级别、仪器、值和标志。当然,随着站点数量的增长,表的数量也在增长。比较网站很痛苦,因为它需要很多请求。此外,采样级别和仪器在表内重复很多时间,这样占用空间效率低。
- NetCDF 文件:有趣的是它们能够存储多维数据,它们很适合存储一组数据,但不适合用于日常修改并且不是很“可扩展”。
- Druid,一个多维数据库管理系统,原本是面向“商业智能”的。原理不错,但是对我的应用来说太重太慢了。
因此,我正在寻找一个系统:
- 花费或多或少相同的时间来检索
- 1 个站点、1 个物种、1 台仪器、1 个采样级别的 100 小时数据,或
- 10 个站点、1 个物种、1 个仪器、1 个采样级别的 10 小时数据,或
- 10 小时的 1 个站点、2 个物种、1 台仪器、5 个采样级别的数据,或
- 等
- 允许并行读/写
- 尽量减少写入和读取数据库的时间
- 尽量减少使用的磁盘空间
- 允许轻松添加新站点、仪器或物种等。
- 适用于 R
一个好的系统应该是一种超立方体,它允许所有维度上的复杂请求......
【问题讨论】:
-
您预计有多少样品/单位?
-
不用于理解样品/单位的含义。我在帖子的第一个列表中写了每个“维度”的大致长度。例如,目前我每个站点有 1 到 5 台仪器(取决于站点),一些站点有 1 台仪器测量 2 个物种 10 年(每个物种 10*365*24=87600 小时值),在其他站点我有 5 台仪器测量同一物种 3 个月等。变化很大。