Redshift 卸载命令是否保证使用排序依据子句对数据进行排序?



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

Redshift 文档状态有关卸载:

一个选择查询。将卸载查询的结果。在大多数情况下,通过在查询中指定 ORDER BY 子句来按排序顺序卸载数据是值得的;此方法节省了在重新加载数据时对数据进行排序所需的时间。

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

搜索了很多之后,我找到了答案。

根据Redshift文档:

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

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

最新更新