2014-02-13 57 views
1

我在红移运行以下命令:卸载从红移到S3失败

myDB=> unload ('select * from (select * from myTable limit 2147483647);') 
     to 's3://myBucket/' 
     credentials 'aws_access_key_id=***;aws_secret_access_key=***'; 

这是我得到的结果:

ERROR: S3ServiceException:The bucket you are attempting to access must be addressed 
     using the specified endpoint. Please send all future requests to this 
     endpoint.,Status 301,Error PermanentRedirect,Rid 85ACD9FFAFC5CE8F, 
     ExtRid vsz4/0NdOAYbaJ48WYCnrYBCvuuL0cBTdcEN 

DETAIL: 
----------------------------------------------- 
error: S3ServiceException:The bucket you are attempting to access must be addressed 
     using the specified endpoint. Please send all future requests to this 
     endpoint.,Status 301,Error PermanentRedirect,Rid 85ACD9FFAFC5CE8F, 
     ExtRid vsz4/0NdOAYbaJ48WYCnrYBCvuuL0cBTdcEN 
code:  8001 
context: Listing bucket=myBucket prefix= 
query:  0 
location: s3_unloader.cpp:181 
process: padbmaster [pid=19100] 
----------------------------------------------- 

有什么想法?或者,也许想法如何将数据从Redshift转储到MySQL或类似的东西?

回答

4

在非美国存储桶中使用类似语法的路径时,将返回错误消息。在与您的Redshift群集相同的区域创建一个新的存储桶,并且所有内容都应该可以工作。

+2

重新修改一下:Redshift集群和S3存储桶必须位于同一区域:) – eistrati

-1

您缺少文件名的前缀部分。尝试使用s3:// myBucket/myPrefix

+0

它不适用于myPrefix。 – eistrati

+0

文档还声明:Amazon Redshift将写入输出文件的Amazon S3存储桶必须位于与群集相同的区域中。 –

+0

使用非US s3存储桶时使用类似语法的语法时会返回错误消息。在与您的Redshift群集相同的区域创建一个新的存储桶,然后一切都应该工作。 –