如何从 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 命令?