S3 中的最佳最大 Parquet 文件大小

Posted

技术标签:

【中文标题】S3 中的最佳最大 Parquet 文件大小【英文标题】:Optimal maximum Parquet file size in S3 【发布时间】:2019-03-07 00:30:29 【问题描述】:

我正在尝试计算在 S3 上对 Parquet 数据进行分区时的最佳文件大小。 AWS 推荐avoiding having files less than 128MB。但是还有推荐的最大文件大小吗?

Databricks 推荐 files should be around 1GB,但我不清楚这是否仅适用于 HDFS。我知道最佳文件大小取决于 HDFS 块大小。但是,S3 没有块大小的概念。

有什么想法吗?

【问题讨论】:

【参考方案1】:

你应该考虑两件事:

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/

【讨论】:

以上是关于S3 中的最佳最大 Parquet 文件大小的主要内容,如果未能解决你的问题,请参考以下文章

上传到 AWS S3 时,Java 中的最大文件上传大小是多少?

使用存储在 s3 中的 parquet 文件在 Greenplum 中创建外部表

S3 Select 会加速 Parquet 文件的 Spark 分析吗?

在 PySpark 中指定最大 Parquet 块大小

使用 AWS Lambda (Python 3) 读取存储在 S3 中的 Parquet 文件

读取 PySpark 中的所有分区 parquet 文件