我正在使用Amazon Redshift JDBC驱动程序连接到SQL Workbench / J上的Redshift。
我希望得到一个大型数据集查询结果(数百万行)。
WbExport乍一看似乎有答案(http://www.sql-workbench.net/manual/command-export.html)。
但是,它似乎想在将整个结果集导入文件之前将整个结果集加载到内存中,给我一个内存警告并在没有创建输出文件的情况下中止查询,所以这种方法似乎没有工作
是否有更好的方法不涉及放弃SQL Workbench和JDBC连接?如果没有,那么建议可行的替代方案是什么,可以最大限度地减少新工具或访问所需的数量?
答案 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下载数据。