我正在尝试在S3上对Parquet数据进行分区时最佳文件大小。 AWS建议avoiding having files less than 128MB。但是还有建议的最大文件大小吗?
Databricks建议使用files should be around 1GB,但我不清楚这是否仅适用于HDFS。我知道最佳文件大小取决于HDFS块大小。但是,S3没有任何块大小的概念。
有什么想法吗?
答案 0 :(得分:0)
您可能应该考虑两件事:
1)对于纯对象存储(例如s3),在s3端,块大小是什么都没关系-您不需要对齐任何内容。
2)更重要的是您将如何以及用什么方式读取数据? 考虑分区,修剪,行组和谓词下推-以及如何加入此过程?
例如:Presto(Athena)倾向于使用超过128Mb的文件,但是太大会导致并行性差-我通常针对1-2gb的文件
Redshift倾向于大规模并行化,例如4个节点,160个文件会比4个节点4个文件更好:)
建议阅读: https://www.upsolver.com/blog/aws-athena-performance-best-practices-performance-tuning-tips https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-tips-for-amazon-athena/