我有一个问题,每15分钟创建一次文件,因此一个月内我将有2880个文件。一年后,我将拥有35,000个文件!压缩可能是一种选择,这意味着我每小时有1个实木复合地板文件= 8760个文件!
但是我想知道使用"$path"
的比较文件名与使用分区有何不同?分区修剪是在单个线程中完成的,并且不会分布在Hadoop群集上。因此,如果我将35,000个文件分别划分为year = ???? / day = 365 / hour = 24/4个文件,那么比较文件名的性能是否与使用分区修剪的性能相同? >
PS:我知道我可以存档较旧的文件。
答案 0 :(得分:0)
处理拆分有相当大的开销,因此实际上最好在协调器上将其过滤掉。出于同样的原因,您想避免大量的小文件(不过,我不知道您每15分钟的文件是否很小)。
现在,分区修剪和"$path"
条件都在协调器上进行评估(如果可能,例如"$path"
条件不使用其他列,等等),因此它们的行为应相同。
还请注意,拥有大量小分区可能会在代码的某些区域导致性能问题(没有具体说明,但在过去碰到的问题不止一次)。因此,您可能还是要拥有更大的分区。