将压缩文件插入RedShift

Dan*_*SFT 6 amazon-redshift

我在s3中有一个压缩文件.我想将其插入RedShift数据库.我的研究发现这样做的唯一方法是启动ec2实例.将文件移动到那里,解压缩并将其发送回S3.然后将其插入我的RedShift表.但我试图从外部机器上从JavaSDK完成这一切,并且不想使用Ec2实例.有没有办法让EMR作业解压缩文件?或者将压缩文件直接插入RedShift?

文件是.zip而不是.gzip

Joe*_*ris 10

根据Guy的评论,您无法直接将压缩文件插入Redshift.

假设这不是一次性任务,我建议使用AWS Data Pipeline来执行此项工作.请参阅S3存储桶之间的复制数据示例.修改示例以解压缩然后gzip您的数据而不是简单地复制它.

使用ShellCommandActivity执行shell脚本来执行工作.如果您选择并将AMI作为EC2资源(YMMV),我会假设此脚本可以调用Java.

Data Pipeline对于此类工作非常高效,因为它将自动启动和终止EC2资源,而且您不必担心在脚本中发现新实例的名称.