Redshift UNLOAD操作的parquet文件大小

0

【以下的问题经过翻译处理】 我的客户有一个由2-4个dc2.8xlarge节点组成的 Redshift集群。他们想要通过设置选项(MAXFILESIZE AS 1GB),将数据以Parquet 格式,并以约为1GB的平均文件大小导出。但是引擎却以5MB到25MB的平均文件大小,导出了总共500MB的数据,共计64个文件。

我的问题:

  1. 我们如何控制每个parquet文件的大小?
  2. Redshift如何确定最佳文件大小?
profile picture
专家
已提问 5 个月前6 查看次数
1 回答
0

【以下的回答经过翻译处理】 在默认配置下,UNLOAD命令导出与片数相等的文件数量。对于一个DC2.8xlarge 4个节点的集群,片数为64(4个节点*每个节点16个片)。这是默认行为,能使所有片段并行导出。当以Parquet格式导出时,Redshift试图使用32MB行组的块大小。这对于数据量较小的情况,32MB块大小已经足够,它会生成更小的文件。多个文件比单个文件更有效,因为对于单个文件,Redshift将来自表的数据组合,然后生成一个单个文件-无法发挥并行计算的优势。

生成固定大小的文件的一个解决方案是设置UNLOAD命令选项:PARALLEL OFF和MAXFILESIZE 1GB。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则