将数据从S3复制到Redshift

时间:2015-10-03 06:58:47

标签: postgresql amazon-s3 amazon-redshift navicat

我觉得这应该比它对我更容易。

copy table
from 's3://s3-us-west-1.amazonaws.com/bucketname/filename.csv'
CREDENTIALS 'aws_access_key_id=my-access;aws_secret_access_key=my-secret'
REGION 'us-west-1';

注意我在遇到问题后添加了REGION部分但没有做任何事情。

我感到困惑的是,在存储桶属性中只有https://path/to/the/file.csv。我只能假设我读过的所有文档都要求以s3://开头的路径...我只是将https改为s3,就像我的例子中所示。

但是我收到了这个错误:

"Error : 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"

我正在使用navicat for PostgreSQL连接到Redshift并且我在Mac上运行。

2 个答案:

答案 0 :(得分:3)

S3路径应为's3://bucketname/filename.csv'。试试这个。

答案 1 :(得分:1)

是的,它应该更容易: - )

当您的S3存储桶不符合美国标准时,我才看到此错误。在这种情况下,您需要使用基于端点的地址,例如http://s3-eu-west-1.amazonaws.com/mybucket/myfile.txt

您可以在此文档页面中找到您所在地区的端点, http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region