红移光谱:如何仅导入某些文件

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 存储桶进行任何更改? (不添加清单文件)。

以上是关于红移光谱:如何仅导入某些文件的主要内容,如果未能解决你的问题,请参考以下文章

如何为红移光谱中的嵌套 Parquet 类型创建外部表

如何在红移光谱表中加载正确的数据?

我使用红移光谱查询 S3 数据,但遇到保留字冲突问题

无法在红移光谱外部模式中创建视图

使用胶水数据目录中定义的外部表红移光谱

红移定律