-1

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

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

看来面试官对这个答案并不满意。看来我完全错了:(

4

2 回答 2

1

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

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

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

高温高压

于 2013-08-20T20:18:30.670 回答
0

对于 TB 和 PB 中的数据,最佳解决方案是 Hadoop。使用 Hbase 和 hadoop。Hbase 类似于 Google 表,它执行基于 hadoop 的键值对。希望它可以帮助你。

于 2013-08-20T09:51:44.217 回答