如何在红移光谱中创建一个外部表,其中文件位置每天都会改变?

Posted

技术标签:

【中文标题】如何在红移光谱中创建一个外部表,其中文件位置每天都会改变?【英文标题】:How to creating an external table in redshift spectrum, where file location will change everyday? 【发布时间】:2019-03-12 08:58:05 【问题描述】:

我们计划使用 AWS 红移频谱从另一个 AWS 账户的 S3 获取数据。但 Source 告知桶密钥每天都会更改,并且最新数据将在桶密钥位置以最新时间戳提供。 谁能建议创建此外部表的最佳方法是什么?

【问题讨论】:

您好!欢迎来到 ***!请阅读Help Center中的How do I ask a good question?。 我认为您需要每天重新创建光谱表。 【参考方案1】:

Spectrum 中的外部表可以配置为指向 S3 中的前缀(类似于普通文件系统中的文件夹),或者您可以使用清单文件来指定该表应包含的文件的确切列表(它们可以甚至驻留在不同的 s3 存储桶中)。

因此,您必须每天创建表格并将其指向正确的位置。如果所有文件都以相同的 s3 前缀结尾,则必须使用清单文件来指定当前文件。

与问题没有直接关系的提示: 您还可以做的是每天创建名称中带有时间戳的表,并且每天创建一个指向最新表的视图。这样就可以很容易地查看历史数据,或者您将这些数据用于例如。机器学习 - 将输入固定到不可变的数据版本,以便您可以可重复地获取训练数据 - 但这当然取决于您的要求。

【讨论】:

谢谢,我已经开始实现你在提示部分提到的选项了:)

以上是关于如何在红移光谱中创建一个外部表,其中文件位置每天都会改变?的主要内容,如果未能解决你的问题,请参考以下文章

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

反正有没有在红移表中只保留一周的数据

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

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

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

如何在红移中进行动态正则表达式匹配?