【问题标题】:How to upload data via SQL to Amazon Redshift?如何通过 SQL 将数据上传到 Amazon Redshift?
【发布时间】:2017-09-07 23:57:25
【问题描述】:

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

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

【问题讨论】:

  • 你的意思是把数据放到 Redshift 中?是的,您需要使用 S3 并执行 COPY 命令。有几个文档可用。
  • @JonEkiz 没有别的办法吗?

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


【解决方案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
  • JSON
  • 而且这些格式也可以压缩(例如gzip)

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

此外,请尝试了解 DISTKEYSORTKEY 以充分利用 Redshift 的性能优势。 一定要阅读手册——它会比阅读节省更多的时间!

【讨论】:

  • 嗯,我有一个5GB的sql文件。据我了解,我们先把这个文件放到S3,然后用copy的方法从S3取数据。
  • “sql 文件”是什么意思?文件中数据的格式是什么?是的,您将数据放在 S3 存储桶中,然后在 Redshift 中运行 COPY 命令来导入数据。如果您是 Redshift 新手,请尝试Introduction to Amazon Redshift self-paced lab(免费)。
猜你喜欢
  • 1970-01-01
  • 2016-05-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-22
  • 2021-05-22
  • 2020-02-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多