用两个 csv 在 redshift 中填充相同的条目
Posted
技术标签:
【中文标题】用两个 csv 在 redshift 中填充相同的条目【英文标题】:Populate in redshift the same entry with two csv 【发布时间】:2017-07-14 13:05:11 【问题描述】:例子:
CSV 1:键、d1、d2、d3
CSV 2:键、d4、d5
预计红移:key, d1, d2, d3, d4, d5
这可能吗?如果您知道该怎么做,请告诉我,但我最关心的是是否可以开始。
【问题讨论】:
【参考方案1】:这样的直接复制是不可能的,你有以下选择:
1) 使用 Redshift Spectrum 服务 - 创建外部模式并使用连接查询它,以在 Redshift 中获取所需的数据结构。缺点是它是按次付费的服务。
2) 使用 Python 或 Athena 处理 CSV,将它们组合成所需的数据结构,然后复制它。
3) 将它们分别导入到两个临时表中,然后连接到最终表中。缺点是,如果您的数据很大,保留 2x 空间(一个用于暂存表,另一个用于结果表)可能会有问题,但您可以简单地使用连接创建视图。
【讨论】:
谢谢,我试图避免第二个并尝试做第三个。现在我知道了,我会稍微研究一下频谱服务。【参考方案2】:直接,不,但您可以在原始 ETL 流程中加入对象,或者在 Redshift 中使用暂存表,然后将其具体化并删除暂存表。
【讨论】:
谢谢,我想我现在可以弄清楚怎么做,基本上我想知道我是否可以避免通过整个 ETL 过程来做到这一点,并在红移方面解决它。这样我就不必将数据移动到 EMR 以进行内部连接并稍后加载。 只需在 redshift 中进行连接,创建一个新的连接输出表,然后将其输入 EMR以上是关于用两个 csv 在 redshift 中填充相同的条目的主要内容,如果未能解决你的问题,请参考以下文章