文件名匹配与Vs之间的性能比较。分区修剪

时间:2018-10-26 23:18:44

标签: optimization hive amazon-athena presto

我有一个问题,每15分钟创建一次文件,因此一个月内我将有2880个文件。一年后,我将拥有35,000个文件!压缩可能是一种选择,这意味着我每小时有1个实木复合地板文件= 8760个文件!

但是我想知道使用"$path"比较文件名与使用分区有何不同?分区修剪是在单个线程中完成的,并且不会分布在Hadoop群集上。因此,如果我将35,000个文件分别划分为year = ???? / day = 365 / hour = 24/4个文件,那么比较文件名的性能是否与使用分区修剪的性能相同?

PS:我知道我可以存档较旧的文件。

Athena Optimizations

1 个答案:

答案 0 :(得分:0)

处理拆分有相当大的开销,因此实际上最好在协调器上将其过滤掉。出于同样的原因,您想避免大量的小文件(不过,我不知道您每15分钟的文件是否很小)。

现在,分区修剪和"$path"条件都在协调器上进行评估(如果可能,例如"$path"条件不使用其他列,等等),因此它们的行为应相同。

还请注意,拥有大量小分区可能会在代码的某些区域导致性能问题(没有具体说明,但在过去碰到的问题不止一次)。因此,您可能还是要拥有更大的分区。