我将在几个月内从EC2抓取数百万个URL,我在考虑应将数据存储在何处。我最终的目标是分析它,但是分析可能不是立即进行的(即使我现在出于其他原因现在要对其进行爬网),并且我可能最终希望将数据的副本转移出去以存储在我拥有的本地设备上。我估计数据将在5TB左右。
我的问题:我正在考虑将Glacier用于此目的,我的想法是运行一个多线程爬虫,将爬虫的页面存储在本地(在EB上),然后使用单独的线程将数据组合,压缩并穿梭到Glacier。我知道在Glacier上的传输速度不一定很好,但是由于此过程没有在线元素,因此这似乎是可行的(尤其是因为我总是可以增加本地EBS的大小,以防爬网速度比我快存储到冰川)。
我的方法是否存在缺陷,或者有人可以提出一种更具成本效益,更可靠的方法来做到这一点?
谢谢!
最佳答案
Redshift似乎比Glacier更重要。 Glacier与冻结/解冻有关,您必须在进行任何分析之前先移动数据。
Redshift的目的更多是将数据添加到大型廉价的数据仓库中并在其上运行查询。
另一种选择是将数据存储在EBS中并将其保留在那里。抓取完成后,请拍摄快照以将卷推入S3并停用卷和EC2实例。然后,当您准备好进行分析时,只需从快照中创建一个卷即可。
这种方法的好处是,所有文件访问(没有正式的数据存储)对您来说可能更容易。
就个人而言,我可能会将数据推送到Redshift中。 :-)
-
克里斯