在redshift上使用jdbc下载大型数据集

时间:2017-11-13 22:39:31

标签: jdbc amazon-redshift sql-workbench-j

我正在使用Amazon Redshift JDBC驱动程序连接到SQL Workbench / J上的Redshift。

我希望得到一个大型数据集查询结果(数百万行)。

WbExport乍一看似乎有答案(http://www.sql-workbench.net/manual/command-export.html)。

但是,它似乎想在将整个结果集导入文件之前将整个结果集加载到内存中,给我一个内存警告并在没有创建输出文件的情况下中止查询,所以这种方法似乎没有工作

是否有更好的方法不涉及放弃SQL Workbench和JDBC连接?如果没有,那么建议可行的替代方案是什么,可以最大限度地减少新工具或访问所需的数量?

3 个答案:

答案 0 :(得分:0)

强烈建议您尝试从Redshift中检索数百万行作为查询结果。这是非常低效的,它会在运行时减慢集群的速度。

而是使用UNLOAD查询并行地将数据提取到S3。 UNLOAD将快100倍-1000倍。 https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD.html

答案 1 :(得分:0)

尽管红移效率不是很高,但是如果您确实需要它,则应该能够为工作台http://www.sql-workbench.net/manual/profiles.html设置fetchsize。

有关相同https://docs.aws.amazon.com/redshift/latest/dg/queries-troubleshooting.html#set-the-JDBC-fetch-size-parameter的AWS Redshift文档

答案 2 :(得分:-1)

您可以使用最快的方法。 1.将数据卸载到S3。 2.然后从S3下载数据。