【ORC】ORC 的索引机制有哪几种?行索引(Row Index)、布隆过滤器(Bloom Filter)和统计信息(Statistics)分别用于什么场景?

📅 2026/8/10 12:53:55
【ORC】ORC 的索引机制有哪几种?行索引(Row Index)、布隆过滤器(Bloom Filter)和统计信息(Statistics)分别用于什么场景?
ORC 三级索引机制深度解析:Row Index、Bloom Filter 与 Statistics 的协同作战问题原文:“ORC 的索引机制有哪几种?行索引(Row Index)、布隆过滤器(Bloom Filter)和统计信息(Statistics)分别用于什么场景?”本文将面向具备 8 年大数据开发经验但尚未深入 ORC 的工程师,系统性地剖析 Apache ORC 2.3.0 的三级索引体系。我们将超越简单的功能描述,深入其在谓词下推引擎中的协同工作流程,并通过源码、工具验证与金融风控规则特征表场景,揭示这三种索引如何像一支特种部队,在毫秒级内完成对 PB 级数据的精准筛选。一、问题引入:一次因索引配置不当导致的风控延迟事故在某大型互联网金融公司的实时反欺诈系统中,我们维护着一张名为risk_features的 ORC 表,路径为/data/risk/features-20260409.orc。这张表存储了数亿用户的数百个风险特征,是所有风控规则决策的核心依据。某次上线后,一个关键规则IF user_id IN (blacklist) THEN BLOCK的执行延迟从50ms暴涨至3s+。经过紧急排查