Redshift卸载命令并行使用order by子句来保证排序数据吗?

时间:2017-04-17 13:31:31

标签: amazon-s3 amazon-redshift

我目前没有足够的数据来测试该方案,但我需要知道带有unload的Redshift parallel on命令是否将已排序的数据卸载到s3上的多部分文件中,如果我使用命令带有unload查询的by子句?我知道如果使用parallel off,我可以在每个部分上以6.2 GB的顺序将已排序的数据卸载到s3。

Redshift文档说明了unload

  

SELECT查询。查询结果已卸载。在大多数情况下,通过在查询中指定ORDER BY子句,以排序顺序卸载数据是值得的;这种方法可以节省重新加载数据时对数据进行排序所需的时间。

与此主题相关的任何链接都会有所帮助。

1 个答案:

答案 0 :(得分:1)

经过大量搜索,我找到了答案。

根据Redshift docs

  

默认情况下,UNLOAD根据群集中的切片数将数据并行写入多个文件。要将数据写入单个文件,请指定PARALLEL OFF。 UNLOAD按顺序写入数据,根据ORDER BY子句绝对排序(如果使用的话)。数据文件的最大大小为6.2 GB。如果数据大小大于最大值,UNLOAD将创建其他文件,每个文件最多6.2 GB。

因此,如果需要排序数据,则需要使用parallel off