【发布时间】:2019-01-17 17:45:17
【问题描述】:
我需要将数据从本地移动到 AWS redshift(region1)。最快的方法是什么?
1) 使用 AWS snowball 将本地迁移到 s3 (region1),然后使用 Redshift 的 SQL COPY cmd 将数据从 s3 复制到 redshift。
2) 使用 AWS Datapipeline(注意 region1 中还没有 AWS Datapipeline。所以我将在最接近 region1 的 region2 中设置一个 Datapipeline)将本地数据移动到 s3(region1)和另一个 AWS DataPipeline(region2) ) 使用 AWS 提供的模板将数据从 s3 (region1) 复制到 redshift (region1)(此模板使用 RedshiftCopyActivity 将数据从 s3 复制到 redshift)?
以上哪个解决方案更快?还是有其他解决方案?此外,RedshiftCopyActivity 会比直接运行 redshift 的 COPY cmd 更快吗?
注意这是一次移动,所以我不需要 AWS 数据管道的调度功能。
这是 AWS Datapipeline 的链接: AWS Data Pipeline。它说:AWS Data Pipeline 是一种 Web 服务,可帮助您在不同的 AWS 计算和存储服务以及本地数据源之间可靠地处理和移动数据......
【问题讨论】:
-
多少TB的数据?为什么您认为 aws 数据管道而不是简单的(aws cli)上传到 s3?我不知道数据管道服务在这方面做得很好。你能指出一个显示这个的网页吗?
-
乔恩斯科特:我添加了链接。它说:AWS Data Pipeline 是一种 Web 服务,可帮助您在不同的 AWS 计算和存储服务以及本地数据源之间可靠地处理和移动数据
-
肯定会选择将数据加载到 s3,而不是使用数据管道。从那里您可以灵活地使用胶水/雅典娜/reddshift load/emr 等。您可以在加载数据之前对数据进行 gzip 压缩,并在可行的情况下以高效和有效的方式组织它。 (您可能需要专业的帮助)。您可以通过 Internet 手动加载数据(可以压缩 1TB 左右),或者如果您有更多数据,则使用雪球。
-
乔恩斯科特:谢谢你的回答。看起来 AWS DataPipeline 仅适用于每日同步等计划移动。在内部它调用 s3 cp 或 redshift LOAD 与我可以手动执行的操作相同。所以它不会使运动更快,只是使运动“流水线”。
-
我对数据管道的问题是它有点“脆弱”——与大多数 AWS 产品不同。我已经将它与几个客户一起使用过,一段时间后不得不中止其他方法。如果你不断地在很多桌子上使用它,它也可能会贵很多。
标签: amazon-web-services amazon-redshift amazon-data-pipeline