Databricks/Spark:File Pruning与File Skipping有何区别?
Delta Lake中File Skipping与File Pruning的区别与关联
这两个术语在Delta Lake的语境下核心逻辑一致,日常使用中常被互换,但严格来说存在细微的侧重点差异:
核心逻辑完全相同
两者都是依赖文件的列统计信息(比如列的最小值、最大值、空值数量等),判断某份文件是否可能包含查询所需的数据,一旦确定无匹配就直接跳过读取该文件,以此减少不必要的I/O开销,提升查询性能。术语侧重点不同
- File Skipping:更偏向描述最终动作结果——直白点说就是“跳过文件”这个行为本身,是对优化效果的直接表述。
- File Pruning:更偏向描述背后的筛选过程——强调系统如何通过统计信息“修剪”掉无关文件的机制,聚焦的是筛选逻辑。
实际使用场景
在Delta Lake官方文档和技术社区的讨论里,这两个术语基本可以混用,比如提到“基于列统计实现File Skipping/File Pruning”,不会产生理解歧义。只有在非常精细的技术拆解场景下,才会特意区分两者的侧重点,日常开发或讨论中完全可以互换使用。
内容的提问来源于stack exchange,提问作者Ashwin
相关产品推荐
相关产品推荐

