如何从一个账户访问 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 配置文件

从 pyspark 访问 S3 存储桶中的文件

Amazon S3 在另一个账户中触发另一个 Lambda 函数

允许搜寻器访问其他帐户中的Amazon S3存储桶

AWS CloudFormation 更新 Lambda 代码以在 S3 存储桶中使用最新版本