5

我正在收集大量数据,这些数据很可能是以下格式:

用户 1: (a,o,x,y,z,t,h,u)

所有变量都随时间动态变化,除了 u - 它用于存储用户名。由于我在“大数据”方面的背景不是很丰富,我想了解的是,当我最终得到我的数组时,它会非常大,比如 108000 x 3500,因为我将在每个时间步上进行分析,并绘制它,什么是合适的数据库来管理它是我试图确定的。因为这是为了科学研究,所以我正在研究 CDF 和 HDF5,根据我在这里读到的NASA,我想我会想要使用 CDF。但这是管理此类数据以提高速度和效率的正确方法吗?

最终的数据集将所有用户作为列,并且行将被加上时间戳,因此我的分析程序将逐行读取以解释数据。并输入数据集。也许我应该看看 CouchDB 和 RDBMS 之类的东西,我只是不知道从哪里开始。建议将不胜感激。

4

2 回答 2

6

这是一个扩展评论,而不是一个全面的答案......

相对而言,如今,大小数据集108000*3500并不能真正称为大数据,除非您省略了诸如GB. 如果只是108000*3500字节,那就只有 3GB 加上零钱。您提到的任何技术都可以轻松应对。我认为您应该根据哪种方法可以加快您的开发而不是加快您的执行来做出选择。

但是,如果您想考虑进一步的建议,我建议:

  1. 科学数据库
  2. 拉斯达曼
  3. 莫奈数据库

所有这些都在学术大数据社区中具有一定的吸引力,并且也开始在该社区之外使用。

于 2013-01-04T10:04:58.950 回答
3

我一直在使用 CDF 处理一些类似大小的数据,我认为它应该可以很好地工作。不过,您需要记住一些事情。考虑到我真的不知道你的项目的细节,这可能会也可能不会有帮助......

3GB 的数据正好在旧版 CDF 的文件大小限制附近,因此请确保您使用的是最新的库。

虽然 3GB 的数据量并不多,但取决于您读取和写入它的方式,事情可能进展缓慢。确保尽可能使用超读/写功能。

CDF 支持可以保存用户名和数据描述等信息的元数据(称为全局/变量属性)。

将数据分解为多个文件很容易。我建议每个用户使用一个文件。这意味着您可以将整个文件的用户名作为属性写入一次,而不是在每条记录中。

您将需要创建一个名为 epoch 的额外变量。这是为每条记录明确定义的时间戳。我不确定您现在拥有的时间戳是否合适,或者您是否需要对其进行一些处理,但这是您需要考虑的事情。此外,epoch 变量需要分配一个特定的类型(epoch、epoch16 或 TT2000)。TT2000 是提供纳秒精度并处理闰秒的最新版本,但我遇到的大多数 CDF 阅读器还不能很好地处理它。如果您不需要那种精度,我推荐 epoch16,因为这已经是一段时间的标准了。

希望这会有所帮助,如果您使用 CDF,请随时向我提出您遇到的任何问题。

于 2013-01-23T15:32:14.867 回答