【问题标题】:Loading redshift table from multiple s3 folder using manifest使用清单从多个 s3 文件夹加载红移表
【发布时间】: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},

 ]
}

但我收到一个错误:

清单不包含文件列表。

【问题讨论】:

  • 您是否有任何文档表明清单文件中允许使用通配符?

标签: amazon-web-services amazon-s3 amazon-redshift manifest


【解决方案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}
  ]
}

问题可能是您对fileLocationsentries 的使用。

我也怀疑不允许使用通配符

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-17
    • 2018-09-21
    • 2018-05-12
    • 2023-03-30
    • 2013-08-15
    • 2020-07-27
    相关资源
    最近更新 更多