如何通过SQL将数据上传到Amazon Redshift?

时间:2017-09-07 23:57:25

标签: amazon-web-services amazon-s3 amazon-redshift

我创建了一个集群并通过SQL Workbench连接到数据库,但是如何通过SQL将数据上传到Amazon Redshift?

我想我必须使用Amazon S3,但我找不到能够很好地描述它的示例视频或文字。

1 个答案:

答案 0 :(得分:1)

有两种方法可以将信息插入Amazon Redshift:

  • 通过COPY命令
  • 通过INSERT声明

不推荐使用INSERT语句,因为它们对大数据量无效。它们可以用于执行ETL类型的过程,例如在表之间复制数据,但作为一般规则,数据应该通过COPY加载。

根据Using a COPY Command to Load DataCOPY命令可以从以下位置加载数据:

  • Amazon S3(推荐,高度并行)
  • Amazon EMR(Hadoop)
  • Amazon DynamoDB
  • 通过SSH远程主机

Amazon S3的负载在所有节点上并行执行 ,是加载数据的最有效方式。

Amazon Redshift COPY command可以读取多种文件格式:

  • 分隔(例如CSV)
  • 固定宽度
  • AVRO
  • JS​​ON
  • 这些格式也可以压缩(例如gzip)

底线:以兼容格式将数据导入Amazon S3,然后使用COPY加载。

另外,请尝试了解DISTKEYSORTKEY以获得Redshift的全部性能优势。 绝对阅读手册 - 它将为您节省比阅读时间更长的时间!