Redshift UNLOAD操作的parquet文件大小

0

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

我的问题:

  1. 我们如何控制每个parquet文件的大小?
  2. Redshift如何确定最佳文件大小?
profile picture
EXPERTE
gefragt vor 6 Monaten12 Aufrufe
1 Antwort
0

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

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

profile picture
EXPERTE
beantwortet vor 6 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen