我正在使用复制命令从s3使用manifest加载红移表。
要求加载多个文件(跨不同文件夹),例如
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},
]
}
但是我得到一个错误:
Manifest不包含文件列表。
From Using 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
的使用。
我也怀疑使用通配符是不允许的.