我正在尝试计算在 S3 上对 Parquet 数据进行分区时的最佳文件大小。AWS 建议避免文件小于 128MB。但是否也有建议的最大文件大小?
Databricks 建议文件大小应在 1GB 左右,但我不清楚这是否仅适用于 HDFS。我知道最佳文件大小取决于 HDFS 块大小。然而,S3 没有任何块大小的概念。
有什么想法吗?
您可能应该考虑两件事:
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-亚马逊雅典娜性能调整技巧/
归档时间: |
|
查看次数: |
6729 次 |
最近记录: |