为什么Redshift COPY查询会为带有排序键的表使用(更多)磁盘空间

Eva*_*van 7 amazon-redshift

我在S3上有大量的数据,其形式为几百个CSV文件,总共约1.7 TB(未压缩).我试图将它复制到Redshift集群上的空表.

群集为空(没有其他表)并且有10个dw2.large节点.如果我在表上设置了排序键,则复制命令会占用大约25%的所有可用磁盘空间,并中止.如果没有排序键,则副本成功完成,并且永远不会使用超过45%的可用磁盘空间.无论我是否也设置分发密钥,此行为都是一致的.

我真的不知道为什么会发生这种情况,或者它是否是预期的.有没有人见过这种行为?如果是这样,你对如何绕过它有任何建议吗?一个想法是尝试单独导入每个文件,但我很想找到一种方法让Redshift处理该部分本身并在一个查询中完成所有操作.

Eva*_*van 9

从Redshift团队得到了答案.群集需要至少为传入数据大小2.5倍的可用空间,以用作排序的临时空间.您可以升迁群集,复制数据并将其重新调整大小.