红移光谱:如何仅导入某些文件
Posted
技术标签:
【中文标题】红移光谱:如何仅导入某些文件【英文标题】:Redshift spectrum : how to import only certain files 【发布时间】:2019-08-03 10:58:09 【问题描述】:当使用红移光谱时,您似乎只能导入提供位置的数据,直到一个文件夹,它会导入文件夹内的所有文件。
有没有办法从包含许多文件的文件夹中只导入一个文件。当提供带有 filename 的完整路径时,我认为它会将文件视为清单文件并给出错误:清单太大或不支持 JSON。
还有其他方法吗?
【问题讨论】:
【参考方案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 存储桶进行任何更改? (不添加清单文件)。以上是关于红移光谱:如何仅导入某些文件的主要内容,如果未能解决你的问题,请参考以下文章