【问题标题】:Redshift copy command recursive scanRedshift 复制命令递归扫描
【发布时间】:2016-04-13 11:34:09
【问题描述】:
是否可以复制根目录/bucket下的所有文件
示例文件夹结构:
/2016/01/file.json
/2016/02/file.json
/2016/03/file.json
...
我已尝试使用以下命令:
copy mytable
FROM 's3://mybucket/2016/*'
CREDENTIALS 'aws_access_key_id=<>;aws_secret_access_key=<>'
json 's3://mybucket/jsonpaths.json'
【问题讨论】:
标签:
amazon-web-services
amazon-s3
amazon-redshift
【解决方案1】:
为加载指定一个前缀,所有具有该前缀的 Amazon S3 对象都将(并行)加载到 Amazon Redshift。
例子:
copy mytable
FROM 's3://mybucket/2016/'
将加载存储在:mybucket/2016/*中的所有对象
copy mytable
FROM 's3://mybucket/2016/02'
将加载存储在:mybucket/2016/02/*中的所有对象
copy mytable
FROM 's3://mybucket/2016/1'
将加载存储在:mybucket/2016/1*(例如 10、11、12)中的所有对象
基本上,它只是确保对象以给定的字符串开始(包括完整路径)。
【解决方案2】:
显然这很简单,只需将源网址更改为s3://mybucket/2016/,不需要通配符。