【问题标题】:Redshift spectrum : how to import only certain files红移光谱:如何仅导入某些文件
【发布时间】:2019-08-03 10:58:09
【问题描述】:

当使用红移光谱时,您似乎只能导入提供位置的数据,直到一个文件夹,它会导入文件夹内的所有文件。

有没有办法从包含许多文件的文件夹中只导入一个文件。当提供带有 filename 的完整路径时,我认为它会将文件视为清单文件并给出错误:清单太大或不支持 JSON。

还有其他方法吗?

【问题讨论】:

    标签: sql amazon-redshift amazon-redshift-spectrum


    【解决方案1】:

    您无意中回答了自己的问题:使用清单文件

    来自CREATE EXTERNAL TABLE - Amazon Redshift

    LOCATION { 's3://bucket/folder/' | 's3://bucket/manifest_file' }

    包含数据文件的 Amazon S3 存储桶或文件夹的路径或包含 Amazon S3 对象路径列表的清单文件。存储桶必须与 Amazon Redshift 集群位于同一 AWS 区域。

    如果路径指定了清单文件,s3://bucket/manifest_file 参数必须明确引用单个文件,例如“s3://mybucket/manifest.txt”。它不能引用键前缀。

    清单是 JSON 格式的文本文件,列出要从 Amazon S3 加载的每个文件的 URL 以及文件的大小(以字节为单位)。 URL 包括文件的存储桶名称和完整对象路径。清单中指定的文件可以位于不同的存储桶中,但所有存储桶都必须与 Amazon Redshift 集群位于同一 AWS 区域中。

    我不确定为什么它需要每个文件的长度。它可用于在多个节点之间分配工作负载。

    【讨论】:

    • 有没有什么方法可以导入单个文件而不对 s3 存储桶进行任何更改? (不添加清单文件)。
    猜你喜欢
    • 1970-01-01
    • 2020-02-01
    • 2020-01-04
    • 2023-03-22
    • 1970-01-01
    • 2019-10-31
    • 2013-11-16
    • 2018-11-14
    • 1970-01-01
    相关资源
    最近更新 更多