使用清单从多个 s3 文件夹加载红移表
Posted
技术标签:
【中文标题】使用清单从多个 s3 文件夹加载红移表【英文标题】:Loading redshift table from multiple s3 folder using manifest 【发布时间】:2021-03-03 21:32:16 【问题描述】:我正在使用复制命令使用清单从 s3 加载 Redshift 表。
要求是加载多个文件(跨多个文件夹),例如
Path1 : s3://bucket_name/folder_name/folder_1/folder/part*.parquet
Path2 : s3://bucket_name/folder_name/folder_2/folder/part*.parquet
Path3 : s3://bucket_name/folder_name/folder_3/folder/part*.parquet
每个路径将有 ~1000 个文件
如何创建清单来加载它?
我创建了如下清单:
"fileLocations": [
"url":"s3://bucket_name/folder_name/folder_1/folder/part*.parquet", "mandatory":false,
"url":"s3://bucket_name/folder_name/folder_3/folder/part*.parquet", "mandatory":false,
"url":"s3://bucket_name/folder_name/folder_2/folder/part*.parquet", "mandatory":false,
]
但我收到一个错误:
清单不包含文件列表。
【问题讨论】:
您是否有任何文档表明清单文件中允许使用通配符? 【参考方案1】:来自Using a manifest to specify data files - Amazon Redshift:
以下示例显示了从不同存储桶加载文件的 JSON 文件,文件名以日期戳开头:
"entries": [
"url":"s3://mybucket-alpha/2013-10-04-custdata", "mandatory":true,
"url":"s3://mybucket-alpha/2013-10-05-custdata", "mandatory":true,
"url":"s3://mybucket-beta/2013-10-04-custdata", "mandatory":true,
"url":"s3://mybucket-beta/2013-10-05-custdata", "mandatory":true
]
问题可能是您对fileLocations
与entries
的使用。
我也怀疑不允许使用通配符。
【讨论】:
以上是关于使用清单从多个 s3 文件夹加载红移表的主要内容,如果未能解决你的问题,请参考以下文章
我可以直接查询以镶木地板格式存储在 s3 中的数据的红移表吗