我将在几个月内从EC2抓取几百万个网址,我正在考虑应该在哪里存储这些数据。我最终的目标是分析它,但分析可能不会立即(即使我现在想因其他原因抓取它),我可能希望最终将数据的副本传输出来存储在我拥有的本地设备上。我估计数据将在5TB左右。
我的问题:我正在考虑使用Glacier,因为我将运行一个多线程爬虫程序,在本地存储已爬网页面(在EB上),然后使用一个单独的线程来组合,压缩和传送数据到冰川。我知道Glacier上的传输速度不一定好,但由于这个过程没有在线元素,这似乎是可行的(特别是因为我总是可以增加我本地EBS卷的大小,以防我爬得比我能快存放到Glacier)。
我的方法是否存在缺陷,或者是否有人建议采用更具成本效益,更可靠的方式来实现这一目标?
谢谢!
答案 0 :(得分:3)
Redshift似乎比Glacier更有意义。冰川就是冻结/解冻,你必须在进行任何分析之前移动数据。
Redshift更多的是将数据添加到大型廉价的数据仓库中并在其上运行查询。
另一个选择是将数据存储在EBS中并保留在那里。完成爬网后,使用快照将卷推入S3并取消卷和EC2实例。然后,当您准备好进行分析时,只需从快照创建一个卷。
这种方法的优点是它可以更方便地访问所有文件(没有正式的数据存储)。
就个人而言,我可能会将数据推送到Redshift。 :-)
- 克里斯
答案 1 :(得分:0)
如果您的分析不会立竿见影,那么您可以采用以下两种方法之一
方法1)Amazon EC2抓取工具 - >存储在EBS磁盘中 - 经常将它们移动到Amazon S3->定期归档到冰川。您可以将最近的X天数据存储在Amazon S3中,并将其用于adhoc处理。
方法2)Amazon EC2抓取工具 - >存储在EBS磁盘中 - 将它们频繁移动到Amazon Glacier。在需要时检索并在EMR或其他处理工具上进行处理
如果您需要经常分析:
方法3)Amazon EC2抓取工具 - >存储在EBS磁盘中 - 经常将它们移动到Amazon S3->通过EMR或其他工具进行分析并将处理结果存储在S3 / DB / MPP中并将原始文件移动到冰川
方法4)如果您的数据是结构化的,那么Amazon EC2爬虫 - >存储在EBS磁盘中并将它们移动到Amazon RedShift并将原始文件移动到冰川
其他提示: 如果您可以再次(从源)检索数据,那么您可以使用临时磁盘代替EBS
亚马逊推出了数据管道服务,检查它是否符合您对数据移动的需求。