Redshift COPY 命令无法从 S3 加载数据
Posted
技术标签:
【中文标题】Redshift COPY 命令无法从 S3 加载数据【英文标题】:Redshift COPY command failing to Load Data from S3 【发布时间】:2018-11-02 12:12:56 【问题描述】:当我们尝试从 S3 存储桶加载一个巨大的 zip 文件以从 EC2 实例甚至 aginity 进行红移时,我们遇到了错误。真正的问题是什么?
据我们检查,这可能是因为 VPC NACL 规则,但不确定。
错误: 错误:连接在 50000 毫秒后超时
【问题讨论】:
【参考方案1】:我认为您是正确的,可能是因为存储桶访问规则或秘密/访问密钥。
如果上述方法不起作用,这里有一些提示可以进一步调试。
创建一个小 zip 文件,然后再试一次,如果它是因为大小的问题(但我认为这不可能。)
将您的 zip 文件拆分为多个 zip 文件并创建 Manifest 文件用于加载而不是单个文件。
我希望你会觉得这很有用。
【讨论】:
【参考方案2】:您应该创建一个授权 Amazon Redshift 代表您访问 S3 等其他 AWS 服务的 IAM 角色,您必须先将该角色与 Amazon Redshift 集群关联,然后才能使用该角色加载或卸载数据。
查看以下链接以设置 IAM 角色:
https://docs.aws.amazon.com/redshift/latest/mgmt/copy-unload-iam-role.html
【讨论】:
【参考方案3】:当 Redshift 集群启用了增强型 VPC 路由,但 S3 的路由表中没有路由时,我收到此错误。添加 S3 端点解决了这个问题。 Link to docs.
【讨论】:
【参考方案4】:我也收到此错误,并且启用了增强型 VPC 路由,请检查从 Redshift 集群到 S3 的路由。
有几种方法可以让 Redshift 集群到达 S3 ,可以看下面的链接:
https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-routing.html
我通过为我的 Redshift 集群使用的私有子网设置 NAT 解决了这个错误。
【讨论】:
以上是关于Redshift COPY 命令无法从 S3 加载数据的主要内容,如果未能解决你的问题,请参考以下文章
如果我使用 COPY 命令将数据从 S3 加载到 Redshift,它会遵循我的 dist 样式和键吗?