如何从 EC2 运行 Redshift 复制命令

Posted

技术标签:

【中文标题】如何从 EC2 运行 Redshift 复制命令【英文标题】:How to run Redshift copy command from EC2 【发布时间】:2016-07-17 15:27:12 【问题描述】:

我在 EC2 实例上有我的日志文件,并希望将其加载到 Redshift。两个问题:

    在继续之前我必须将此日志文件复制到 S3,还是可以直接从我的 EBS 卷复制。

    我可以看到我可以使用 SQL Workbench 或 Data Pipeline 中的复制命令。但是我可以从我的 EC2 实例本身使用它吗?我需要安装哪个 AWS CLI?

http://docs.aws.amazon.com/cli/latest/reference/redshift/ 确实 不列出复制命令

【问题讨论】:

【参考方案1】:
    并非如此。 Redshift 允许您从远程主机copy,在您的情况下,这将是您的 EC2 实例。文档here。 您提到的链接提供了集群管理命令。要在集群上运行 SQL 查询,您可以使用 psql 工具。文档here。

【讨论】:

【参考方案2】:
    您可以直接从 EC2 复制数据,但我的建议是先将其保存在 S3 上,同时作为备份

【讨论】:

我已经在 S3 上备份了原始日志文件。这是一个转换后的日志文件。如何直接从 EC2 实例复制? 如何直接从 EC2 复制?【参考方案3】:

所有在线可用的文档都让我感到困惑。最后的解决方案是我用 DriverManager.getConnection() 编写了一个简单的 Java 文件,并通过 stmt.executeUpdate() 调用复制命令,它可以无缝运行。只有 executeUpdate() 没有返回我插入的记录数。

【讨论】:

以上是关于如何从 EC2 运行 Redshift 复制命令的主要内容,如果未能解决你的问题,请参考以下文章

如何将 redshift 数据库连接到在 ec2 实例上运行的 bash 脚本

如何从我的 Amazon EC2 实例中连接到 Amazon Redshift 集群

如何从 SQL 脚本执行 AWS S3 到 Redshift Copy 命令?

如何使用从 s3 到 redshift db 的复制命令解决语法错误

将 csv 文件从 s3 复制到 redshift 的问题

复制命令 Amazon Redshift