Daily Tech Briefing
AI 科技速览

每天 5 分钟内学习 AI。获取最新的人工智能新闻,理解其重要性,并学习如何将其应用于您的工作。

AI 快讯
InfoQ AI · 2026/7/28 17:00:00
Hardwood:承诺无强制依赖的高速JVM Apache Parquet处理

Hardwood:承诺无强制依赖的高速JVM Apache Parquet处理

AI 中文解读
1. 核心亮点:一个叫Hardwood的开源新工具,让Java程序读取大数据文件的速度飙升到每秒一千多万行,而且完全不用安装任何额外依赖。 2. 通俗解读:大数据文件就像一本厚厚的电话本,传统方法只能一页一页翻,速度很慢。Hardwood把电话本撕成很多小页,让好几个翻页员同时工作,效率瞬间提升。更贴心的是,它不需要你提前装一堆“字体库”“插件包”,拿来就能直接用,既安全又省心。 3. 实际影响:对普通用户来说,你用到的大数据分析应用、推荐系统、报表工具会变得更快更流畅。对程序员而言,他们写代码时不用再为“依赖冲突”头疼,开发周期缩短,成本降低。未来更多实时数据处理服务(比如实时物流追踪、在线广告竞价)都能跑得更顺。
开源库 Hardwood 发布,该库旨在优化在 JVM 环境中读取 Apache Parquet 文件的性能。本项目由 Gunnar Morling 启动,目标是为传统的 Apache Parquet Java 实现提供一个更快、更轻量的替代方案,后者通常会带来较重的依赖开销并依赖单线程的核心读取器。Hardwood 通过几乎零强制依赖的实现与多线程页面解码来充分利用 CPU,减少序列化页面处理带来的延迟。自 2026 年初启动以来,项目已经发布了 1.0 版本,当前仅提供了读取能力,对写入的支持列入了后续计划中。Hardwood 的设计强调模块化的数据访问。它提供了两套针对不同需求的 API:适用于通用记录访问的结构化 Row Reader API 与面向高吞吐分析型工作负载的批量化 Column Reader API。与按顺序处理数据的传统实现不同,Hardwood 将 Parque 页面解码分散到可用的所有 CPU 核心上,从而降低与串行解码相关的延迟。Row Reader 示例:try (ParquetFileReader fileReader = ParquetFileReader.open( InputFile.of(path)); RowReader rowReader = fileReader.rowReader()) { while (rowReader.hasNext()) { rowReader.next(); long id = rowReader.getLong("id"); String name = rowReader.getString("name"); LocalDate birthDate = rowReader.getDate("birth_date"); Instant createdAt = rowReader.getTimestamp("created_at"); }}复制代码该库采用零强制依赖策略,以实现供应链攻击风险和类路径冲突的最小化。为此,它使用自 Java 9 起提供的最小日志抽象,从而避免引入外部的日志依赖。对特定压缩算法(比如,LZ4、GZip)或对象存储(比如,S3)的支持则通过可选依赖提供,用户按需引入即可。Hardwood 还实现了优化的谓词评估(predicate evaluation)。在过滤扫描时采用无分支、按批次评估的方法,以尽量减少因分支预测失败带来的 CPU 开销,这在现代分析型数据处理场景中对性能尤为关键。项目同时提供了面向开发者与数据工程师的命令行工具(CLI)。该 CLI 包含交互式的文本用户界面(TUI),允许用户在无需编写模版代码或引入重量级数据处理框架的情况下,检查 Parquet 文件的 schema 与元数据,作为开发周期中验证文件完整性与结构的诊断工具。基准测试结果显示,相较于常规模块,Hardwood 在吞吐量上实现了显著提升。在使用 8 个虚拟 CPU 的扁平数据集扫描中,读取器了达到每秒 1650 万行的吞吐量。性能优势主要源自库能够随硬件规模线性扩展。在单线程配置下,性能受限于序列化解码,而多线程方案能更有效地饱和使用主机的 I/O 与 CPU 带宽。Hardwood 以其模块化设计、高性能、多线程解码与零强制依赖的特性,为 JVM 场景带来了实质性收益并简化了依赖管理。除发起人 Gunnar Morling 外,项目已经吸引了约 20 名开源贡献者参与,其中包括 Java 领域的资深贡献者,如 Andres Almiray 与 Bruno Borges。社区反馈总体是正面的,潜在用户普遍期待加入 Parquet 的写入能力,该项改进已列入路线图并预计很快推出。Hardwood 1.0 在短短五个月内从构思到发布首个稳定版本,标志着 JVM 高性能数据处理领域的重要进展。项目在开发中使用了 AI 协助编码,但设计与代码评审仍由人类主导。凭借零依赖架构与创新的多线程解码引擎,Hardwood 为寻求在分析型工作负载中最大化资源效率的数据工程师提供了轻量而强大的替代方案。随着模块化设计与写入能力的明确路线图,Hardwood 有望成为 JVM 环境中重要的基础工具。查看英文原文:Hardwood Promises High-Speed JVM Apache Parquet Processing with Zero Mandatory Dependencies
分享
阅读原文