如何从一个账户访问 s3 存储桶中的数据以在另一个账户中使用 redshift 处理数据?
Posted
技术标签:
【中文标题】如何从一个账户访问 s3 存储桶中的数据以在另一个账户中使用 redshift 处理数据?【英文标题】:How can I access data in s3 bucket from one account to process the data using redshift in another account? 【发布时间】:2018-09-28 08:53:09 【问题描述】:我的一个 AWS 账户在 S3 Bucket 中有大量数据,我想使用 Redshift 处理另一个 AWS 账户中的数据,我想节省数据传输和存储的成本,因为我已经先拥有了数据帐户。
Redshift 是否提供此功能来处理来自共享 S3 存储桶的数据?
提前致谢。
【问题讨论】:
【参考方案1】:我还没有实际测试过自己,但是您可以在将数据复制到/从S3
从/到Redshift
或从Redshift
复制或卸载数据时引用任何帐户的任何 S3 存储桶。您只需提供准确的IAM
角色或S3
凭据。
查看复制或卸载语法,它只要求提供 ACCESSKEY/SECRET,没有帐户信息。
COPY sales FROM 's3://s3-path/to/data/data.csv' CREDENTIALS 'aws_access_key_id=**********;aws_secret_access_key=*******' FORMAT as CSV;
同样的卸载命令需要同样的东西,
unload ('SELECT * FROM example') TO 's3://path/to/S3/' credentials'aws_access_key_id=XXXXXXXXXX;aws_secret_access_key=XXXXXXXXXXXXXX' delimiter '|' NULL AS '\\N' escape;
【讨论】:
以上是关于如何从一个账户访问 s3 存储桶中的数据以在另一个账户中使用 redshift 处理数据?的主要内容,如果未能解决你的问题,请参考以下文章
授予 Redshift Cluster 对另一个账户拥有的 S3 存储桶的访问权限
如何从 Elastic Beanstalk 实例访问 S3 存储桶中的 docker 配置文件