将文件(带有特定后缀)从 S3 复制到 Redshift

Posted

技术标签:

【中文标题】将文件(带有特定后缀)从 S3 复制到 Redshift【英文标题】:Copy files (with specific suffix) from S3 to Redshift 【发布时间】:2017-10-02 18:30:01 【问题描述】:

我正在尝试将 CSV 文件从 S3 导入 Redshift 集群。我的存储桶的输出文件夹中有两种类型的文件:1. jobid_output.csv 和 jobid_maps.zip。我只想将 output.csv 文件从 S3 复制到 RS。

这是我的命令:

copy mytable from 's3://mybucket/output/*output.csv' credentials 'aws_access_key_id=xxxxxxx;aws_secret_access_key=xxxxxxxx' region 'us-west-2' ignoreheader 1 fillrecord timeformat 'auto' dateformat 'auto' csv;

这是我得到的错误: 错误:XX000:指定的 S3 前缀 'output/*output.csv' 不存在

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

谢谢

【问题讨论】:

【参考方案1】:

S3 不支持通配符。星号是 S3 密钥名称空间中的有效字符。星号不是推荐字符,但您可以使用它。您必须在自己的代码中实现更高级别的目录搜索。

【讨论】:

以上是关于将文件(带有特定后缀)从 S3 复制到 Redshift的主要内容,如果未能解决你的问题,请参考以下文章

Python 将数据从 Redshift 加载到 S3

如何在创建实例时将文件夹从 S3 复制到弹性 beanstalk 实例

将 s3 文件复制到带有 IDENTITY 列且不带 EXPLICIT_IDS 的 Redshift 表

有没有办法使用 RedShiftCopyActivity 仅将特定列从 RedShift 复制到 S3?

从一个文件中读取字符串并添加到另一个带有后缀的文件以使其唯一

使用 COPY 功能自动将数据加载到 Redshift