Redshift 复制命令递归扫描
Posted
技术标签:
【中文标题】Redshift 复制命令递归扫描【英文标题】:Redshift copy command recursive scan 【发布时间】: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'
【问题讨论】:
【参考方案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/
,不需要通配符。
【讨论】:
以上是关于Redshift 复制命令递归扫描的主要内容,如果未能解决你的问题,请参考以下文章