最近几天,我一直在尝试将数据加载到Redshift
中,但没有成功。我已经为群集提供了正确的IAM
角色,已经授予了S3
的访问权限,我正在使用COPY
凭据或{{1 }}角色,到目前为止没有成功。这可能是什么原因?到了我没有太多选择的余地。
所以代码很基本,没有花哨的地方。见下文:
AWS
我没有输入任何错误消息,因为没有错误消息。该代码只是挂起,我已经将其运行了40分钟以上,没有任何结果。如果我进入Redshift的“查询”部分,则看不到任何异常。我正在使用Aginity和SQL Workbench运行查询。
我还尝试在Redshift中手动插入查询,并且似乎可行。 COPY和UNLOAD不起作用,即使我创建了具有对S3的访问权限并与群集关联的角色,我仍然遇到此问题。
有想法吗?
编辑:已找到解决方案。基本上,这是我们VPC中的连接问题。必须创建一个VPC端点并将其与Redshift使用的子网关联。
答案 0 :(得分:0)
我同意约翰·罗滕斯坦(JohnRotenstein)的观点,那里需要更多信息来提供答案。我建议您采取简单的数据点和简单的表格。 这是分步解决方案,希望这样做,您应该能够解决您的问题。
假设这里是您的表结构。
在这里,我正在处理大多数数据类型以证明我的观点。 创建表销售( salesid整数, 佣金十进制(8,2), 销售日期, 说明varchar(255), created_at时间戳默认系统日期, 时间戳);
为了简单起见,这是您的数据文件驻留在S3中。
CSV(sales-example.txt)中的内容
salesid,commission,saledate,description,created_at,updated_at
1|3.55|2018-12-10|Test description|2018-05-17 23:54:51|2018-05-17 23:54:51
2|6.55|2018-01-01|Test description|2018-05-17 23:54:51|2018-05-17 23:54:51
4|7.55|2018-02-10|Test description|2018-05-17 23:54:51|2018-05-17 23:54:51
5|3.55||Test description|2018-05-17 23:54:51|2018-05-17 23:54:51
7|3.50|2018-10-10|Test description|2018-05-17 23:54:51|2018-05-17 23:54:51
使用psql终端或任何sql连接器运行以下两个命令。确保还运行第二个命令。
copy sales(salesid,commission,saledate,description,created_at,updated_at) from 's3://example-bucket/foo/bar/sales-example.txt' credentials 'aws_access_key_id=************;aws_secret_access_key=***********' IGNOREHEADER 1;
commit;
我希望这可以帮助您调试问题。