【问题标题】:Can we use sqoop to export data from Hadoop (Hive) to Amazon Redshift我们可以使用 sqoop 将数据从 Hadoop (Hive) 导出到 Amazon Redshift
【发布时间】:2016-09-23 03:52:42
【问题描述】:

我有一个本地 Hadoop 集群,想将数据加载到 Amazon Redshift。考虑到成本,Informatica/Talend 不是一个选项,所以我们可以利用 Sqoop 将表从 Hive 直接导出到 Redshift 吗? Sqoop 是否连接到 Redshift?

【问题讨论】:

    标签: amazon-web-services hadoop etl sqoop


    【解决方案1】:

    将数据加载到 Amazon Redshift 的最有效的方法是将数据放入 Amazon S3,然后在 Redshift 中发出 COPY 命令。这会在所有 Redshift 节点上执行并行数据加载。

    虽然 Sqoop 可能能够使用传统的INSERT SQL 命令将数据插入 Redshift,但这并不是将数据插入 Redshift 的好方法。

    首选方法是:

    • 将数据以 CSV 格式(最好是 .gz 或 .bzip 格式)导出到 Amazon S3
    • 在 Redshift 中触发 COPY 命令

    您应该能够通过将数据复制到 CSV 格式的 Hive 外部表来将数据导出到 S3。

    另外,Redshift 可以从 HDFS 加载数据。它需要一些额外的设置来授予对 EMR 集群的 Redshift 访问权限。请参阅 Redshift 文档:Loading Data from Amazon EMR

    【讨论】:

      【解决方案2】:

      不支持 upsert 的复制命令只是简单地加载你提到的多次并最终得到重复的数据,所以更好的方法是使用胶水作业并修改它以进行更新,否则插入或使用 lambda 插入到 redshift 中

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-27
        • 2016-03-17
        • 2016-07-26
        • 2023-03-13
        • 2017-03-07
        相关资源
        最近更新 更多