3

我将在几个月内从 EC2 抓取数百万个 URL,我正在考虑应该将这些数据存储在哪里。我的最终目标是分析它,但分析可能不会立即进行(即使我现在出于其他原因想抓取它),我可能希望最终将数据副本传输出去以存储在我拥有的本地设备上. 我估计数据将在 5TB 左右。

我的问题:我正在考虑为此使用 Glacier,我的想法是我将运行一个多线程爬虫,将爬取的页面存储在本地(在 EB 上),然后使用一个单独的线程来组合、压缩并将数据传送到 Glacier。我知道 Glacier 上的传输速度不一定很好,但由于这个过程没有在线元素,这似乎是可行的(尤其是因为我总是可以增加本地 EBS 卷的大小,以防我爬得比我更快存储到冰川)。

我的方法是否存在缺陷,或者任何人都可以提出一种更具成本效益、更可靠的方法来做到这一点?

谢谢!

4

2 回答 2

3

Redshift 似乎比 Glacier 更相关。Glacier 是关于冻结/解冻的,您必须在进行任何分析之前移动数据。

Redshift 更多的是关于将数据添加到大型、廉价的数据仓库并在其上运行查询。

另一种选择是将数据存储在 EBS 中并将其保留在那里。完成爬网后,拍摄快照以将卷推送到 S3 并停用卷和 EC2 实例。然后,当您准备好进行分析时,只需从快照创建一个卷。

这种方法的好处是它是所有文件访问(没有正式的数据存储),这对您来说可能更容易。

就个人而言,我可能会将数据推送到 Redshift。:-)

- 克里斯

于 2013-05-04T00:07:31.670 回答
0

如果您的分析不会立即进行,那么您可以采用以下两种方法之一

方法1)Amazon EC2爬虫->存储在EBS磁盘中-经常将它们移动到Amazon S3->定期存档到冰川。您可以将最近 X 天的数据存储在 Amazon S3 中,并将其用于临时处理。

方法 2) Amazon EC2 爬虫 -> 存储在 EBS 磁盘中 - 经常将它们移动到 Amazon Glacier。需要时检索并在 EMR 或其他处理工具上进行处理

如果需要频繁分析:

方法3)Amazon EC2爬虫->存储在EBS磁盘中-经常将它们移动到Amazon S3->通过EMR或其他工具分析并将处理后的结果存储在S3/DB/MPP中并将原始文件移动到冰川

方法 4)如果您的数据是结构化的,则 Amazon EC2 爬虫 -> 存储在 EBS 磁盘中并将它们移动到 Amazon RedShift 并将原始文件移动到冰川

附加提示:如果您可以再次(从源)检索数据,那么您可以为您的爬虫使用临时磁盘而不是 EBS

亚马逊推出了数据管道服务,检查它是否符合您对数据移动的需求。

于 2013-05-23T06:24:13.557 回答