【发布时间】:2016-09-23 03:52:42
【问题描述】:
我有一个本地 Hadoop 集群,想将数据加载到 Amazon Redshift。考虑到成本,Informatica/Talend 不是一个选项,所以我们可以利用 Sqoop 将表从 Hive 直接导出到 Redshift 吗? Sqoop 是否连接到 Redshift?
【问题讨论】:
标签: amazon-web-services hadoop etl sqoop
我有一个本地 Hadoop 集群,想将数据加载到 Amazon Redshift。考虑到成本,Informatica/Talend 不是一个选项,所以我们可以利用 Sqoop 将表从 Hive 直接导出到 Redshift 吗? Sqoop 是否连接到 Redshift?
【问题讨论】:
标签: amazon-web-services hadoop etl sqoop
将数据加载到 Amazon Redshift 的最有效的方法是将数据放入 Amazon S3,然后在 Redshift 中发出 COPY 命令。这会在所有 Redshift 节点上执行并行数据加载。
虽然 Sqoop 可能能够使用传统的INSERT SQL 命令将数据插入 Redshift,但这并不是将数据插入 Redshift 的好方法。
首选方法是:
COPY 命令您应该能够通过将数据复制到 CSV 格式的 Hive 外部表来将数据导出到 S3。
另外,Redshift 可以从 HDFS 加载数据。它需要一些额外的设置来授予对 EMR 集群的 Redshift 访问权限。请参阅 Redshift 文档:Loading Data from Amazon EMR
【讨论】:
不支持 upsert 的复制命令只是简单地加载你提到的多次并最终得到重复的数据,所以更好的方法是使用胶水作业并修改它以进行更新,否则插入或使用 lambda 插入到 redshift 中
【讨论】: