1 GB带有键和值的数据,存储它们的数据结构是什么样的? 1TB? 1 PB?

时间:2013-08-19 22:08:34

标签: data-structures bigdata

有1 GB的数据有关键和值,存储它们的数据结构是什么?如果数据增加到1TB? 1 PB?您需要每天经常访问它们。你需要多长时间才能访问它们?那么真实的时间呢?等一下?一个小时?

我回答说在1GB和1TB中使用hashtable。几秒钟拿?我不确定如何计算真实时间。当达到1 PB时,我们可以对数据进行排序并将它们分成几个部分并将它们存储在hashtables中。

似乎面试官对答案不满意。似乎我完全错了:(

2 个答案:

答案 0 :(得分:1)

恕我直言,结构的选择在很大程度上取决于你拥有多少内存。但是当你说1TB或1PB时,RAM是完全不可能的。当面试官提出这样的问题时,他们实际上是在试图看到你在逻辑思维方面有多好,而不是期待一些现场的,准确的解决方案(至少我觉得这样)。

回到你的实际问题,你可以像Sreejith所说的那样使用像Hadoop这样的分布式平台。在像Hadoop这样的系统中,您将多个系统一起用作单个系统,以便利用它们的组合功率来获得更好的性能。使用这样的方法,与单台机器相比,您可以显着缩短读/写时间,即使它非常强大,具有非常好的RAM和处理器。除此之外,Hadoop还提供了SequenceFile等数据结构,这使得存储和处理大型数据集变得非常容易。

但无论您选择何种方法,基于磁盘的访问(在处理~TB或~PB的数据时都无法避免)总是比基于内存的访问慢。因此,您需要选择一些允许您尽可能减少磁盘访问的数据结构。有关我想说的内容的详细信息,请参阅此paper

HTH

答案 1 :(得分:0)

对于TB和PB中的数据,最佳解决方案是Hadoop。和Hbase和hadoop一起去吧。 Hbase与Google表格相同,它基于hadoop构建的键值对。希望它可以帮到你。