如何构建用于复制到Redshift的S3 URL?

时间:2015-09-28 14:47:56

标签: amazon-s3 amazon-redshift

我正在尝试将CS​​V文件导入Redshift群集。我已成功完成http://pastie.org/10450352。现在我正在尝试从我自己的CSV文件中复制。

这是我的命令:

copy frontend_chemical from 's3://awssampledb/mybucket/myfile.CSV'
credentials 'aws_access_key_id=xxxxx;aws_secret_access_key=xxxxx'
delimiter ',';

这是我看到的错误:

An error occurred when executing the SQL command:
copy frontend_chemical from 's3://awssampledb/mybucket/myfile.CSV'
credentials 'aws_access_key_id=XXXX...'

[Amazon](500310) Invalid operation: The specified S3 prefix 'mybucket/myfile.CSV' does not exist
Details: 
 -----------------------------------------------
  error:  The specified S3 prefix 'mybucket/myfile.CSV' does not exist
  code:      8001
  context:   
  query:     3573
  location:  s3_utility.cpp:539
  process:   padbmaster [pid=2432]
  -----------------------------------------------;

Execution time: 0.7s
1 statement failed.

我认为我构建错误的S3网址,但我应该怎么做?

我的Redshift集群位于美国东部(弗吉尼亚北部)地区。

1 个答案:

答案 0 :(得分:0)

Amazon Redshift COPY命令可用于并行加载多个文件。

例如:

  • Bucket = mybucket
  • 这些文件位于路径data
  • 下的存储桶中

然后将内容称为:

s3://mybucket/data

例如:

COPY frontend_chemical
FROM 's3://mybucket/data'
CREDENTIALS 'aws_access_key_id=xxxxx;aws_secret_access_key=xxxxx'
DELIMITER ',';

这将加载data目录中的所有文件。您还可以通过将其包含在路径中来引用特定文件,例如s3://mybucket/data/file.csv