【问题标题】:Performance comparison between Filename Matching Vs. Partition Pruning文件名匹配与文件名匹配之间的性能比较。分区修剪
【发布时间】:2019-03-31 17:24:16
【问题描述】:

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

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

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

Athena Optimizations

【问题讨论】:

    标签: optimization hive amazon-athena presto


    【解决方案1】:

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

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

    还要注意,拥有大量小分区可能会导致代码的某些区域出现性能问题(没有具体说明,但过去碰巧不止一次出现问题)。因此,无论如何您可能都希望拥有更大的分区。

    【讨论】:

    • 1.是的,除了 $path,我没有别的东西。 2. 我计划每月归档数据,即Insert into archive_table Select * from datat_able,然后可能会以某种方式识别并从源文件系统中删除文件。
    猜你喜欢
    • 1970-01-01
    • 2011-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 2020-04-30
    相关资源
    最近更新 更多