首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何存储多维数据

如何存储多维数据
EN

Stack Overflow用户
提问于 2017-09-13 07:53:38
回答 1查看 1.5K关注 0票数 1

请考虑以下情况:

  • 我每小时测量一次值(time) (运动从几个月到10年)
  • 几种 (1 ~10种)
  • 使用多个仪器 (1到5)
  • 关于几个测量位点的 (~70)
  • 每个站点都有几个采样级别 (1到5)。
  • 并且每个值都有一个标志,指示它是否有效。

我正在寻找最快和最简单的存储这些数据的方法,考虑到数据库/文件/任何东西都应该可以用R来读和写。

请注意:

  • 有些实验包括很长一段时间,很少的物种,一个单一的仪器和取样水平,
  • 一些实验包括比较许多站点相同的几个月的时间框架(~70)。
  • 有些站点有许多采样级别和/或仪器(将进行比较)
  • 存储系统必须是可读的(如果可能的话)是并行的。

到目前为止我尝试过的是:

  • MySQL数据库,每个站点/物种有一个表,每个表都包含了折叠栏:时间、取样级别、仪器、值和标志。当然,随着站点数量的增加,表的数量也在增加。比较站点是痛苦的,因为它需要大量的请求。而且,采样水平和仪器在表中重复时间很长,这就没有效率地占用空间。
  • NetCDF文件:有趣的是它们存储多维数据的能力,它们很好地存储一组数据,但不实用于日常的修改,也不是很“可伸缩”。
  • Druid是一个多维数据库管理系统,最初是“商业智能”-oriented。这个原理很好,但是对于我的应用来说,它太重了,太慢了。

因此,我正在寻找一种制度,即:

  1. 大致相同的时间来检索
    • 1个地点、1个物种、1个仪器、1个取样级别的100小时数据,或
    • 10个地点、1个物种、1个仪器、1个取样级别的10小时数据,或
    • 1个地点、2个物种、1个仪器、5个取样级别的10小时数据,或
    • 等。

  1. 允许并行R/W
  2. 尽量减少从数据库中写入和读取的时间。
  3. 尽量减少使用过的磁盘空间
  4. 允许轻松添加一个新的地点,或乐器,或物种等。
  5. 与R一起工作

一个好的系统将是一种超立方体,它允许所有维度上的复杂请求.

EN

回答 1

Stack Overflow用户

发布于 2017-09-13 15:14:47

具有多列主键(或候选键)的关系数据库非常适合存储这种多维数据。从您的描述来看,合适的主键似乎是timespeciesinstrumentsitesampling_levelflag似乎是值的属性,而不是键。此表应具有用于选择要检索的数据的所有列的索引。您可能需要其他表来存储物种、仪器和站点的描述或其他属性。主数据表中的每一个都会有外键。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46191897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档