我有一个本地hadoop集群,想将数据加载到amazonredshift中。考虑到成本,informatica/talend不是一个选项,所以我们可以利用sqoop将表从hive直接导出到redshift吗?sqoop是否连接到redshift?
68bkxrlz1#
将数据加载到amazonredshift中最有效的方法是将数据放入amazons3,然后发出 COPY 红移命令。这将在所有红移节点上执行并行数据加载。而sqoop可能可以通过使用传统的 INSERT 在sql命令中,将数据插入redshift不是一个好方法。首选方法是:将数据以csv格式导出到amazons3中(最好是.gz或.bzip格式)触发a COPY 红移命令通过将数据复制到csv格式的配置单元外部表中,您应该能够将数据导出到s3。或者,红移可以从hdfs加载数据。它需要一些额外的设置来授予对emr集群的红移访问。请参阅红移文档:从amazon emr加载数据
COPY
INSERT
suzh9iv82#
copy命令不支持upsert它只是简单地加载您提到的次数,并以重复的数据结束,所以更好的方法是使用glue job并修改它以更新else insert或使用lambda upsert到redshift
2条答案
按热度按时间68bkxrlz1#
将数据加载到amazonredshift中最有效的方法是将数据放入amazons3,然后发出
COPY
红移命令。这将在所有红移节点上执行并行数据加载。而sqoop可能可以通过使用传统的
INSERT
在sql命令中,将数据插入redshift不是一个好方法。首选方法是:
将数据以csv格式导出到amazons3中(最好是.gz或.bzip格式)
触发a
COPY
红移命令通过将数据复制到csv格式的配置单元外部表中,您应该能够将数据导出到s3。
或者,红移可以从hdfs加载数据。它需要一些额外的设置来授予对emr集群的红移访问。请参阅红移文档:从amazon emr加载数据
suzh9iv82#
copy命令不支持upsert它只是简单地加载您提到的次数,并以重复的数据结束,所以更好的方法是使用glue job并修改它以更新else insert或使用lambda upsert到redshift