Sal*_*ali 4 hadoop hdf5 mongodb pytables
我正在寻找一种方便的方式来存储和查询大量的气象数据(几TB).有关问题中间数据类型的更多信息.
以前我一直在寻找MongoDB的方向(我在之前的许多项目中使用它并且觉得很舒服),但最近我发现了HDF5数据格式.读到它,我发现与Mongo有一些相似之处:
HDF5简化了文件结构,只包括两种主要类型的对象:数据集,它是同类型组的多维数组,它们是容器结构,可以容纳数据集和其他组.这导致真正的分层,类文件系统数据格式.元数据以附加到组和数据集的用户定义的命名属性的形式存储.
它看起来像Mongo中的数组和嵌入对象,并且它还支持用于查询数据的索引.
因为它使用B树来索引表对象,所以HDF5适用于时间序列数据,例如股票价格序列,网络监控数据和3D气象数据.
数据:
特定区域分为较小的方块.在每个传感器的交叉点上(一个点).

该传感器每隔X分钟收集以下信息:
它还收集不同高度(0米,10米,25米).并不总是高度相同.此外,每个传感器都有某种元信息:
给出这个,我不希望一个元素的大小大于1Mb.此外,我在一个地方有足够的存储空间来保存所有数据(据我所知,不需要分片)
对数据的操作. 我将通过以下几种方式与数据进行交互:
转换为商店大量的数据:在netcdf格式的某些时间点,我会给我很少的TB数据,我需要存储它们(并且将它转换为相对容易的HDF5).然后,将提供周期性较小的数据部分(每周1 Gb),我必须将它们添加到存储中.只是为了强调:我有足够的存储空间来将所有这些数据保存在一台机器上.
查询数据.通常需要实时查询数据.通常的查询大多数是:告诉我特定时间内特定区域的传感器温度,向我显示特定时间内特定传感器的数据,并显示给定时间范围内某些区域的风.汇总查询(过去两个月的平均温度)是不太可能的.在这里我认为Mongo非常合适,但hdf5 + pytables是另一种选择.
进行一些统计分析.目前我不知道究竟是什么,但我知道这不应该是实时的.因此我认为使用带有mongo的hadoop可能是一个不错的主意但是带有R的 hdf5 是一个合理的选择.
我知道不鼓励有关更好方法的问题,但我正在寻找有经验的用户的建议.如果您有任何问题,我很乐意回答他们,并感谢您的帮助.
Ümi*_*mit 11
这是一个困难的问题,我不确定我是否可以给出明确的答案,但我有HDF5/pyTables和一些NoSQL数据库的经验.
这是一些想法.
我认为您的数据通常非常适合存储在HDF5中.您也可以在R或通过进行统计分析Numpy/Scipy.
但你也可以考虑一个hybdrid aproach.将原始批量数据存储在HDF5中,并将MongoDB用于元数据或缓存常用的特定值.
| 归档时间: |
|
| 查看次数: |
6030 次 |
| 最近记录: |